Design, develop, and maintain software solutions: Build robust, maintainable, and scalable applications using object-oriented programming principles, applying sound engineering judgment and established software development best practices.
Drive architectural improvements: Contribute to technical strategy, facilitate architecture discussions, design scalable systems, and modernize legacy applications through thoughtful abstractions and maintainable design patterns.
Leverage AI-assisted engineering: Integrate AI coding and review assistants into daily workflows, critically evaluating generated output and identifying responsible opportunities to automate code reviews, documentation, issue triage, and other repetitive engineering tasks.
Own messaging and event infrastructure: Design, maintain, and evolve reliable messaging systems using Apache Kafka and other message-bus technologies to support downstream services and event-driven architectures.
Build and manage cloud infrastructure: Develop and support cloud-based solutions using AWS services, including Fargate, Bedrock, EC2, ECS, SNS/SQS, RDS, and Elasticsearch.
Strengthen DevOps and deployment practices: Work with Docker, Kubernetes, Terraform, and deployment automation tools to improve infrastructure reliability, scalability, and operational efficiency.
Manage data systems: Apply SQL and NoSQL expertise to build and maintain efficient data solutions that support application performance, scalability, and reliability.
Ensure production reliability: Participate in and lead rotational on-call responsibilities, implement proactive monitoring, investigate incidents, and continuously improve system resilience and operational practices.
Collaborate across teams: Partner with engineering, internal tooling, and cross-functional teams to shape technical roadmaps, improve developer experience, share practical feedback, and influence the evolution of AI-driven engineering tools.
Promote documentation and knowledge sharing: Maintain clear technical documentation and architectural decision records, contribute to code reviews, and encourage consistent engineering standards across teams.
Mentor and develop engineers: Coach teammates, share technical expertise, and foster a collaborative culture focused on continuous improvement, curiosity, and high-quality delivery.
Requirements
Extensive software engineering experience: At least 9 years of professional software development experience, with strong commercial expertise in object-oriented programming.
Strong programming skills: Advanced proficiency in Java and experience with at least one additional programming language, preferably C#.
Distributed systems expertise: Hands-on experience with Apache Kafka or comparable messaging systems, microservices architectures, and event-driven application design.
System design and architecture: A strong understanding of scalable system design, architectural patterns, software maintainability, and modern engineering principles.
Cloud technology experience: Practical experience with AWS services and cloud-native application development. Familiarity with services such as Fargate, Bedrock, EC2, ECS, SNS/SQS, RDS, and Elasticsearch is advantageous.
DevOps and infrastructure skills: Experience with containerization, particularly Docker and Kubernetes, infrastructure as code using Terraform, and automated deployment processes.
Database expertise: Confidence working with both relational SQL databases and NoSQL technologies, including the ability to design efficient and scalable data solutions.
AI-augmented development experience: Regular, hands-on use of AI-powered coding or code-review assistants, with the ability to assess their output critically, validate results, and make informed decisions about when to adopt or reject suggestions.