Java Developer
Start date: as soon as possible
Contract duration: 12 month contract
Location: Remote
Number of positions: 1
Language skills: Strong communication skills in English are required; French is an asset.
Benefits: Work with cutting-edge technology using sophisticated AI, as part of a passionate and dedicated team that thrives on meaningful innovation in a rapidly growing industry. If you commute to the office, you will have the opportunity to work in a beautiful downtown location overlooking the city right by the metro, coffee bar, team-oriented environment, showers if you cycle to work.
Main tasks and responsibilities:
Participate in the technical aspects of the software solution throughout the complete development lifecycle, including requirements, design, implementation, testing, documentation, maintenance, training and support
Design and develop new features and key software modules of the software solution
Share ownership of one or more major software components (back-end)
Write Java and/or Python code and unit tests to implement the solution
Conduct design and code reviews to ensure high-quality finished products.
Promote and adhere to software development best practices
Participate in daily scrums, as well as sprint planning/review/retro-meetings and grooming meetings
Collaborate with the Dev Ops team to deploy production workloads to private or public clouds
Perform tasks related to securing and maintaining the products, tools and processes you are responsible for securing
Education: Bachelor's degree in engineering or computer science
Years of work experience: 5 years
Required skills:
5 years of experience working with Java
Experience building and shipping complex professional software
Experience developing scalable, standards-compliant, reusable quality code, unit testing and setting standards for the rest of the team.
Good experience in OO design and design patterns
Experience with ElasticSearch or Solr.
Ability to take relevant initiative to effectively resolve assigned problems.
Motivation for knowledge and good adaptability.
Knowledge of software version control management (e.g. git) and continuous integration practices (e.g. Bamboo, Jenkins)
Knowledge of microservices and its “container ecosystem” (e.g. Kubernetes, Docker)
Demonstrated ability to concentrate and complete tasks on time
Be a strong team player
Demonstrate flexibility in changing conditions
Ability to analyze and solve complex problems quickly and creatively
An insatiable desire to learn new technologies
Excellent oral and written communication skills
Self-taught, motivated, autonomous and self-reliant
Knowledge of CI/DC practice, e.g. code organization (code, unit test or integration test, mocking practice)