Previous Job
Senior Java Developer
Ref No.: 18-02913
Location: Montreal, Quebec
Global Financial Firm in Montreal, QC
12+ Months Contract
Job title: Senior Java Developer

Job Description:
The Firm-wide model control system is the cornerstone of the Firm's model risk management, used by front-office, control and oversight functions. With increased regulatory attention to model risk management, the system was largely re-written using the latest technologies. This is a high-profile system, with visibility at the highest levels of the Firm. While a lot of work has been completed, there is a number of related systems still need to be redesigned and connected. We are also planning to continue extending the core system.

We are looking for an experienced, hands-on senior Java developer to work in a team of 8-10 people. Members on our team have access to the business unit and have direct input into software design. Therefore the candidate needs to be a self-starter, smart, and a highly motivated team player with clear communication skills. In addition, the candidate must value producing quality software and have a solid grounding in computer science fundamentals. We would prefer someone who can assume responsibility for a number of subcomponents and lead, oversee and mentor other developers working in these areas. The right candidate should enjoy working in a highly collaborative environment that values team work and offers a lot of flexibility as long as productivity and quality is there.

Required skills:
- Very strong analytical and problem solving abilities
- Very strong knowledge of software design principles: MVC, data structures, graph data, algorithms, design patterns, multithreading, caching, recursion
- Strong knowledge of core Java: class loading, garbage collection, Java collections API, Reflections API, Java 8 Streams and Functional Programming
- Strong knowledge of Object Relation Mapping technologies: JPA/Hibernate- Strong knowledge of common Java frameworks (Spring, JSR-303, Logback, Junit, Apache Commons)
- Strong Knowledge of Relational Databases and SQL

Good to have:
- Strong knowledge of BDD (behavior-driven development) with jBehave
- Experience with TDD (test driven development)
- Strong knowledge of GIT source code management
- Knowledge of Gradle, Jenkins automated build processes
- Strong knowledge of Representation state transfer (RESTful Web services)
- Strong knowledge of enterprise Java: JAX-RS, JTA, Jetty/Tomcat
- Knowledge of HTTP, XML, JSON - Knowledge of Unix/Linux
- Knowledge of Liquibase database schema management