Intermediate Software Java Engineer / Developer (Vancouver)

Are you keen to have large scale impact in the work that you do? Are you eager to learn and develop your career in software development and systems engineering? Do you want to work with experienced engineers who are delivering leading-edge technical solutions? Are you interested in developing next-generation systems using Agile software development methodology and current software development tooling? Come and show us that you can be a strong contributor to MDA&rsquo s Land Administration team!

If you do, we would be thrilled to have the opportunity to discuss why you should consider MDA to launch your career or bring your past experiences to a new level and impact. The Land Administration team builds large solutions for the land administration domain, such as for the management and provision of land and property ownership information. Our customers are worldwide, but include a strong presence in BC. The systems being developed have a client/server architecture and will be used by both back-office staff and directly by customers via a customer web portal.

Our systems are high-availability production systems with large-scale client/server architectures. Usability, reliability, performance and client productivity are key. Our development methodology is based on the &lsquo Agile&rsquo approach. We&rsquo re using the latest Java technologies (especially open source) and frameworks including: Spring, Hibernate, Bootstrap, Angular, Eclipse RCP, XML, Spring-MVC, and both ReST and SOAP based Web Services.

We are looking for highly motivated and capable Intermediate Software Developers for our Vancouver, BC office (Relocation will be provided) this is your opportunity to join a team where you can increase your knowledge and experience in a variety of areas. You will work in a structured process project-based environment using Agile development methodologies.

Responsibilities

As a full stack Intermediate Software developer, you shall participate in the full software development life-cycle, including planning work, providing development estimates and following through with architecture, implementation and deployment. Your talents will be recognized and rewarded with opportunities for career and personal growth in an organization dedicated to success in a team environment. This shall include:

Creating solutions that are attractive to customers, technically competitive, cost-effective, supportable and maintainable.

Working from requirements and mock-ups to develop or modify very complex software applications.

Design, code, test, debug and document high quality web applications.

Participating in integration, testing and deployment of software applications

Assisting in troubleshooting problems in the production environments.

Identify and incorporate new technology in line with long-term goals

Following established development process and corporate technical quality standards.

Contribute to the continual improvement of our development processes

Taking pride and ownership in every line of code you write

Requirements (experience/skills)

Successful candidates will have some combination of the following capabilities, experience and skills:

A University Degree from an accredited institution in Computer Science, Software Engineering or other relevant discipline, or an equivalent combination of education and experience

6+ years of experience in software development

Software development experience in a web environment using Java, JavaScript and JSON creating production strength software that has been used by hundreds or thousands of users

Experience with modern Java design patterns and the JEE framework

Experience with RESTful web APIs and endpoints

Experience with Behavior Driven Development and Domain-Driven Design

Experience with Service Oriented Architecture (SOA) for both macro and micro services

Experience with database design, development and implementation (SQL Server, DB2 or PostgreSQL)

Experience with integrating different software technologies into large software systems