At least seven years of experience designing, developing, and implementing large-scale software solutions in production environments.
Strong professional experience with Java and JavaScript or TypeScript.
Hands-on experience with Spring and Spring Boot.
Experience developing modern front-end applications using React.
Strong knowledge of object-oriented design principles and software engineering practices.
Experience designing REST APIs and integrating distributed systems.
Experience optimizing applications for performance, scalability, resiliency, and reliability.
Proficiency with Git and GitHub-based development workflows.
Experience with Agile methodologies, including Scrum.
Understanding of DevOps practices, continuous integration, and continuous deployment.
Ability to communicate technical concepts clearly through verbal communication, written documentation, code, and diagrams.
Strong collaboration skills and the ability to share responsibilities and influence outcomes across teams.
Preferred:
Experience in the airline or aviation industry; this is preferred but not required.
Experience with Kubernetes and Docker.
Experience building CI/CD pipelines with GitHub Actions.
Experience with PostgreSQL and Oracle.
Experience with GraphQL.
Experience with cloud platforms such as Microsoft Azure, AWS, or IBM Cloud.
Familiarity with Ext JS.
Experience with automated testing and code-quality tools such as JUnit, TestNG, Selenium, Cypress, Playwright, Cucumber, Postman, SonarQube, WireMock, or Mockito.
Responsibilities:
Design, develop, test, document, and maintain high-quality software in accordance with organizational standards and engineering best practices.
Build scalable applications, shared components, frameworks, and libraries that can be reused across product teams.
Design integrated systems that enable teams to deliver value with speed, scale, security, and reliability.
Anticipate performance, scalability, latency, resiliency, and durability challenges and guide teams in implementing effective solutions.
Conduct root-cause analyses, identify systemic issues, and lead corrective and preventive actions.
Evaluate technical risks and recommend practical mitigation strategies.
Manage technical debt and identify opportunities to reduce or eliminate it during ongoing development.
Partner with security teams to incorporate secure engineering practices throughout the software development lifecycle.
Improve system designs spanning multiple teams while supporting small, safe, and incremental releases.
Review code and technical designs, promoting simplicity, maintainability, performance, and reliability.
Coach and mentor junior engineers on software craftsmanship and engineering best practices.
Identify opportunities to reduce duplicated effort and increase reuse across teams.
Evaluate squad delivery practices, recommend improvements to leadership, and help implement those improvements.
Collaborate with product owners, engineers, architects, security professionals, and other stakeholders in an Agile environment.
Perform additional responsibilities as required, consistent with applicable legal and organizational obligations