We are looking for a developer with experience developing n-tier backend applications in Java. As a backend developer, you will be building and maintaining multiple services that integrate with our product platform. This is an intermediate position, reporting directly to the team manager. To be successful in this role, you will need to have a strong academic record with experience in software development, with exposure to design, estimating, development, and testing. We understand you may not be an expert at everything, so you should be interested and willing to quickly learn new skills and be dedicated to continuous improvement of processes, applications and services, and be comfortable / willing to attend meetings and visit our office to participate in planning discussions.
Designing and developing high-volume, low-latency features and improvements for a content management system
Ensuring all designs and coding comply to documented user stories, security best practices, and performance guidelines
Building, maintaining, and executing tests and test frameworks for the application
Resolving application and service problems, as well as fixing bugs during the development life cycle, or as part of maintenance
Participating and sharing status in daily stand-ups and team planning sessions as part of our Kanban development methodology
You must possess the following qualifications to be considered for this position.
- At least three years of software development using Java
- Understanding of language-specific concepts such as inheritance, scoping, type-coercing, etc.
- Database Knowledge – Relational (MySQL) and/or NoSQL (MongoDB)
- Experience with test automation and willingness to cover your code with automated tests
Competency in the following areas will help you excel in this position.
- RESTful services
- OpenAPI standard
- Java Spring framework
- Test frameworks – Mocha, Chai, Pact
- JSON data interchange format / XML
- Amazon Web Services and technologies (ECS, EC2, Lambda, S3, etc.)
- Git and trunk-based development in a team environment (merge requests, branching, push, and pulls)