The Challenge
We're looking for a talented and passionate Principal Software Engineer to join a geographically distributed agile product team. Principal Software Engineers are responsible for developing and contributing to decisions related to the design and architecture of new software application development and integration work, including modification and optimization of code with a focus on performance and quality.
Your Mission
The Principal Software Engineer is responsible for supporting the development of a modern backend coding structure that is progressive and responsive.
- Development
- Design, develop and unit test applications deployed to MS Azure and assist with cloud application architecture using Core Java, REST, and the Spring ecosystem.
- Experience in building reusable Components/Libraries.
- Achieve at least the defined code coverage for backend.
- Build quality directly into the engineering processes and solutions through automated testing and test-driven development.
- Collaboration
- Lead and participate in the architectural design of features early in the development cycle.
- Work with Product Owners to translate the roadmap features into management components/tasks, estimate timings and resources, suggest solutions, and identify possible risks.
- Support the team to ensure all committed stories for the sprint are completed per the sprint goal.
- Code Review
- Conduct peer reviews to improve code quality.
- Help junior developers follow development testing, exploratory testing, AI testing and/or test automation.
- Support
- Own your code in production, responding to incidents as they occur and participating in retros to determine how to improve in the future.
- Work towards reducing the total number of defects in the module/product to industry standards by catching and fixing issues early in development.
- Resolve all critical and high-priority security defects in-sprint, or by the guidelines set by the SecOps team.
- Lead
- Help build high-performing teams, grow and mentor the technical skills within the team, and create development opportunities for them.
- Recommend new technologies, coding methodologies, and best practices that can help increase productivity and innovate products.
You Are
You are someone who understands the benefits of microservices, but also understands the challenges while collaborating closely with Product Managers and Designers. You are able to accomplish multiple sophisticated software development tasks and remain engaged with the latest technology trends and understand operational challenges to continually evolve the application delivery process and platform components.
Your Experience Includes:
- Bachelor's or Master’s degree in Computer Science, Engineering, or related technical fields.
- 8+ years of full software development lifecycle experience, with experience in Agile development (Scrum, XP, Pair Programming).
- Strong programming skills in Java, Spring Boot or Spring Cloud, Hibernate.
- Highly proficient at writing robust software for large-scale web/API applications in a dynamic environment with rapid release cycles and web services (e.g., RESTful services).
- Experience in building reusable Components/Libraries.
- Hands-on experience of cloud-native microservices architecture and serverless.
- Experience with Event Driven Architecture and hands-on experience with event-based platforms like Kafka, Rabbit MQ, AMQ, etc.
- Experience with cloud application development (Microsoft Azure, Google Cloud Platform, or Amazon Web Services).
- Hands-on experience with SQL, NoSQL (MongoDB or Azure Cosmos).
- Excellent at debugging, troubleshooting, and performance tuning.
- Proficient in using test automation frameworks, code quality tools, and performance analysis tools.
- Strong verbal and written communication skills.
- Ability to collaborate in a team environment, and able to adapt effectively and quickly to a rapidly changing environment.
- Experience or comfort working in a dynamic environment.
Nice to have:
- Python
- Workflow engine
- Test automation and shift left
- Performance tuning
- SRE