Share this job
Consultant - Developer
Montreal, QC
Apply for this job

Risk Calculation Platform Development - many positions open


PRIMARY LOCATION : Canada-Montreal


JOB EMPLOYMENT TYPE: Consultant - Developer


JOB LEVEL: Senior 5+ years


Description: We build RICE (RIsk Calculation Environment) - a ground-breaking, highly integrated, functional Scala platform that powers the firm's fixed income risk management and the next generation of trading applications. Multiple teams collaborate on technologies including bitemporal object stores, asynchronous language semantics, compiler development, massively distributed computation, embedded query languages, and declarative reactive UIs.


Our focus on core platform development means that our primary clients are not the teams and individuals operating on the financial side, but their end-user application developers, who rely on the services and components we provide. More information and code examples can be found in these videos: an overview (https://youtu.be/V0jJvgiI_xs?t=1469) and an in-depth technical talk (https://skillsmatter.com/skillscasts/13108-monad-i-love-you-now-get-out-of-my-type-system).



We will interview candidates for these roles simultaneously and will consider their skills and their expressed interests when making offers.

? The Core Graph team is responsible for the concurrent compute engine and associated Scala compiler plugins and macros, which automatically transform application code to run asynchronously. They also develop the high-performance caches, reactive graph engine, debugging and profiling tools and various other components.

? The Data Access Layer (DAL) team builds the servers and clients for storage, access and global distribution of data within the platform. These integrate with MongoDB, PostgresSQL, Kafka and other open-source technologies, along with internal and external cloud platforms, to provide data to large compute grids as well as front office UI applications.

? The Distribution team is responsible for the development of proprietary grid computing and distributed caching technologies. These are highly scalable and fault-tolerant systems designed for efficient distribution, parallelization and memoization (caching) of calculations across large-scale compute clusters comprised of thousands of cores.

? The SDLC tooling team builds an efficient workflow for users by optimizing the IDE interactions, build/test cycle, and code review process. This includes management of Jenkins jobs, pull request standards, compilation, out-of-the-box workspace setup, and test configurations.


Role Profile:

? You should be a technically proficient and enthusiastic developer, with a desire to work across the full stack in order to help engineer new and existing components.

? You will work on new and existing components in Scala (which we can help you learn) in an agile team working around the globe.

? You will support and lead different phases of the product lifecycle including analysis, development and testing.

? You will suggest improvements to our systems and processes and over time, you will take ownership for some areas.

? You will collaborate closely with very experienced Scala developers and have the opportunity to learn and grow in this role.

? Your clients will be application developers and you will work with them to understand and deliver their requirements.

? The role is a great opportunity to work in a technically challenging environment on some large-scale problems core to the business.


QUALIFICATIONS Required Skills:

? Intermediate and Senior level developers

? The primary development language is Scala but we seek skilled technologists proficient in any of Java, .NET, C++, or similar languages, who are excited to work with Scala. ? Strong problem-solving, analytical skills and technical curiosity are essential

? Good understanding of core computer science concepts and code optimization techniques

? Understanding that testing and documentation is critical to delivering high quality solutions

? Natural inclination to dig beneath the surface to understand how things work, why they behave a certain way and what the design trade-offs were

? Degree in a STEM field or equivalent knowledge


Desired Skills:

? For the DAL roles, experience working with a variety of SQL and no-SQL data stores is helpful but not at all required

? For the Graph roles, experience working with compiler internals or Scala macros is helpful but not at all required

? For the Distribution roles, expertise in multi-threaded programming, knowledge of network protocols, and experience in building distributed systems are all helpful. ? For the SDLC roles, experience in user tools, Git, build systems, and compilers is helpful but not at all required. Prior experience in the financial industry is not required, but comfort working with large enterprise systems is beneficial.



Apply for this job
Powered by