JAV-009 Application Architect/ Principal Engineer/ Lead Developer

Toronto

The Application Architect is a critical part of our Engineering organization. As a member of an experienced engineering team in financial services, you will need to be able to cross boundaries easily and work collegially with highly effective individuals across the data services organization. You will be part of teams working at the forefront of trading applications technology, which include on-premise deployments as well as migration to AWS, big-data ingestion and analytics, distributed systems and algorithmic complexity.

This role is expected to contribute to all parts of the software development and deployment life cycle, including design, development, documentation, testing and operations. You will be working towards a SaaS service-oriented architecture, launching data services/micro-services from the ground up, as well as building systems interacting with our trading cores.

As an architect and leader of a team, you will be the designer, and lead implementer of large systems, processing market, transaction, and reference data on massive scales. You will be leveraging message brokers and CEP to apply rules and distribute data to systems, front end applications, and workflows. The team will also work on processing data in place with systems like Apache Spark, creating data pipelines and data services integrating with global systems throughout the firm.

The following skill sets provide a good foundation for a quick ramp up to being productive in our environment: Algorithms, design patterns, data structures, Java, Linux, cloud-based development

Key Responsibilities The following duties include, but are not limited to:

  • Work on full-stack analytical applications as a leader and mentor to the development team, and liaison to the product owners
  • Responsible for developing highly performant and scalable components that are able to handle large amounts of financial data with minimal latencies
  • Help develop distributed systems with concurrent access and usage patterns
  • Architect, conduct proofs of concept, design consequent architectures, and champion the implementation, being hand on as required to ensure successful project completion.
  • Work closely with our product team and engineering teams to understand the needs of our clients

Qualifications Required

  • Bachelor's Degree in Computer Science, or another quantitative field. Ideally a Master’s degree or above.
  • 7+ years’ experience delivering highly scalable, fault tolerant, supportable and well architected solutions
  • Strong fundamental knowledge of computer science algorithms, data structures and design patterns
  • Significant cloud platform experience, preferably with AWS
  • Strong Java or C++
  • Strong Unix and scripting skills
  • Expert knowledge of database systems; relational, NoSQL
  • Experience designing distributed systems at scale handling large data sets leveraging Apache Spark, Kafka, Kinesis, and Hadoop toolsets.