Job Title: Java Application Developer Location: Montreal (Day 1 onboarding onsite / in office presence 3x week)
Market Risk Technology is seeking a strong Java application developer with experience in developing distributed systems, capable of processing very high volumes of data. The ideal candidate will have extensive experience in Java development, a strong understanding of software engineering principles, and the ability to work collaboratively in a fast-paced environment.
Responsibilities:
Design, develop, and maintain high-quality Java SPARK applications.
Collaborate with cross-functional teams to define, design, and ship new features.
Write clean, maintainable, and efficient code.
Troubleshoot and debug applications to ensure optimal performance.
Stay up-to-date with the latest industry trends and technologies.
Design and implement data lineage solutions to track data flow across various systems.
Develop and maintain data lineage documentation and metadata repositories.
Requirements:
6+ Years hands-on experience with Core Java and related technologies.
3+ Year of experience working with SQL and database design.
2+ Year of hands-on experience with SPARK based processing.
Strong object oriented design and development skills using core Java and Spring, Data Structures and algorithms and design patterns.
A good understanding of how to build multi-threaded applications utilizing a service oriented architecture.
A culture of incorporating unit test cases when designing systems using Junit/BDD.
Experience with development of event based system orchestration.
Experience with development of rule based system.
Strength in querying large relational databases in an optimized manner.
Ability to write scripts in Shell/Python- Excellent analytical ability.
Strong collaboration and communication skills.
Experience with Agile methodologies and DEVOPS automation.
Preferred Qualifications:
Risk/Financial Systems development experience.
Understanding of massive parallel processing (MPP) architecture to support high volume data processing.
Knowledge of Python syntax and experience with relevant libraries such as NumPy, Pandas etc.