Description
As a Principal Software Engineer, you will lead and implement technical decisions for the team while staying hands-on with coding, taking ownership of the main development work on critical features and systems. You will oversee and contribute to building high-quality software products and improving existing platforms.
You will also use AI tools to improve development speed, help solve complex problems, and support better software delivery. You may work independently or collaborate with other engineers in similar roles.
Your responsibilities will include:
- Overseeing the design, development, and implementation of new software systems and enhancements to existing systems
- Leading by example through hands-on coding, taking ownership of the main development work on critical features and core systems including contributing to problem definition and solution design in evolving requirements
- Fostering a creative and cohesive unit capable of delivering complex software projects
- Coordinating with scrum masters, project managers and other software engineers to plan, design, develop, test, and maintain cloud/web/mobile and desktop applications
- Ensuring all software engineering projects are delivered on time and to the agreed quality standards
- Utilizing AI tools where appropriate to support development, improve efficiency, and assist in debugging and validation of solutions
- Continuously improving technical knowledge and staying updated with emerging tools, including AI-assisted development practices, and sharing them with the team
- Maintaining high standards of software quality within the team by establishing good practices and habits
- Providing regular performance feedback, coaching, and career development to team members
- Facilitating root cause analysis of system issues and supporting resolution of production-related concerns when needed
Requirements
We’re looking for someone who is:
- Proactive, adaptable, and professional
- Strong collaborator and communicator, able to work effectively with cross-functional teams
- Strong problem-solver who can contribute to defining problems and identifying practical solutions
- Committed to continuous improvement and open to experimenting with new approaches
- Comfortable working in evolving requirements and contributing to clarity and direction
- Understands system-level considerations and how technical work supports business goals
Technical Requirements:
- Experience: 7+ years in software development, including 3+ years in leadership.
- Technical Skills: Proficient in multiple languages (Java, C++, C#, Python, JavaScript, etc.), full-stack development, modern architectures (microservices, event-driven), CI/CD, Docker, and Kubernetes.
- Software Development Practices: Strong in OOP, functional programming, scripting, UX best practices, unit testing, TDD/BDD, Agile/Scrum, and database management (SQL & NoSQL), with exposure to AI-assisted development tools
- Leadership & Project Management: Proven track record in managing software products, leading teams, and delivering solutions with a focus on quality and timeliness
- Communication & Collaboration: Excellent problem-solving, interpersonal, and client management skills, with the ability to explain technical concepts to non-technical audiences.
- Additional Skills: Experience with cloud platforms (AWS, Azure, GCP), version control (Git), testing frameworks, software security, and adapting to fast-changing environments.