Develop high-quality code that is readable, testable, and robust against edge cases and error conditions.
Implement automated tests following the testing pyramid, including unit tests and higher-level integration tests, with guidance from senior engineers.
Systematically debug issues within a single service, using structured approaches to identify and resolve problems.
Design software components that align with the overall service architecture and contribute to maintainable systems.
Break down work into manageable tasks suitable for continuous integration and incremental delivery, collaborating with teammates and managers as needed.
Take ownership of delivery commitments, communicating clearly about priorities, urgency, blockers, and delays, and escalating issues promptly.
Collaborate with teammates, offering support to overcome obstacles and sharing credit for achievements.
Contribute to process improvement by reflecting on team practices and suggesting enhancements.
Requirements
Bachelor’s degree in computer science, Software Engineering, or a related field is required.
Advanced degrees or certifications in software architecture, cloud technologies, or agile methodologies are considered an asset.
Relevant experience in software development, depending on the level of the role.
Demonstrated success in delivering software systems in a collaborative team environment.
Strong experience with Python and/or Typescript for backend development.
Proficiency React for building responsive, user-friendly interfaces.
Solid understanding of relational (PostgreSQL) and non-relational (MongoDB) database systems, including schema design and query optimization.
Experience designing and consuming RESTful APIs; familiarity with GraphQL is a plus.
Hands-on experience deploying and managing applications in AWS, including services like EC2, S3, RDS, Lambda, and CloudWatch.
Practical knowledge of Terraform for provisioning and managing cloud resources.
Proficient with Git and collaborative workflows (e.g., pull requests, code reviews).
Experience with unit, integration, and end-to-end testing frameworks.
Familiarity with automated build and deployment pipelines using tools like GitHub Actions, Jenkins, or similar.
Awareness of secure coding practices and performance optimization techniques.