About the job Principal Software Engineer
Role Overview
The Principal Engineer plays a pivotal leadership role within our agile development squads, actively participating in software development, testing and release cycles. The role is also expected to lead by example towards instilling, maintaining, and improving best practices across the software development lifecycle, while collaborating across multiple squads and with software architects in co-piloting the technology roadmap and participating in the long-term technical audit of our products. This position requires a blend of strategic thinking and hands-on technical expertise to drive innovation and excellence from POCs to release shipment. As a Principal Engineer, you will lead a culture of technical excellence, collaboration, and continuous improvement, on a day-to-day basis ensuring the delivery of high quality, scalable, secure and reliable software products.
You will be responsible for architecting and designing complex systems, leveraging your deep understanding of software architecture patterns and design principles. You will solve challenging technical problems, balancing short-term goals with long-term vision and objectives. While this role may not have direct formal reports, mentorship is a key aspect in this capacity, as you will guide engineering teams to achieve engineering excellence and influence a culture of adherence to high standards.
With accountability for multiple technical initiatives, you will drive technical innovation by promoting best practices, fostering a culture of experimentation, and staying abreast of technology trends and emerging technologies. You will collaborate closely with cross-functional teams, including product managers, designers, and executive stakeholders, to validate technical solutions, iterate quickly, and deliver impactful results.
Essential Role Requirements
- 8+ years of hands-on experience in software development, with a proven track record of leading software development and pushing releases in an agile environment
- Bachelor's degree in computer science, engineering, or related field; advanced degree preferred.
- Expertise in a range of programming languages, frameworks, and technologies, with a good understanding of software architecture patterns and design principles.
- Lead the design and development of scalable, high-performance, and fault-tolerant software systems
- Ability to identify performance bottlenecks and optimize software systems for efficiency and scalability through performance profiling tools and techniques to analyze and improve system performance.
- Understanding of caching strategies, load balancing, and distributed computing concepts.
- Evaluate and recommend emerging technologies, frameworks, and tools that can enhance the efficiency and performance of our systems
- Knowledge secure coding standards, common vulnerabilities and experience in implementing security controls and measures to protect software systems from security threats and breaches.
- Identify opportunities to create right balance with system performance, scalability, and cost-effectiveness with clarity & articulation around trade-offs
- Create and maintain technical documentation, including design diagrams, system specifications, and uphold best practice guidelines for the entire team
- Strong leadership and collaboration skills, with the ability to influence and inspire engineering teams to deliver exceptional results.
- Extensive experience communicating technical concepts and solutions to diverse audiences, including executive leadership, product management, and at times external stakeholders.
- Execution-focused mindset with a strategic outlook, capable of balancing short-term goals with long-term vision and objectives.
- Hands-on experience in creating, presenting, and executing technical roadmaps aligned with business priorities and capacity constraints