JAV-012 Software Developer

Toronto

About The Client: Our client provides brokerage services to clients in over 65 markets around the world. Through its advanced suite of electronic trading strategies, experienced high-touch trading group, top-ranked Commission Management services, award-winning desktop trading platform, and unparalleled access to insightful analytics, content and unique liquidity, they help institutions lower overall trading costs and ultimately improve investment performance. In the US, our client also offers a boutique-model Equity Research offering to assist their clients in the pursuit of alpha generation in a changing landscape. Over the course of its 50-year history, they have introduced a range of now industry-standard trading technologies, and has been an innovator at the forefront of the market's evolution.

Job description The Developer 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 service-oriented architecture and launching data services/micro-services from the ground up, as well as building systems interacting with our trading cores.

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 and cloud-based development

Key Responsibilities

  • Work on full-stack analytical applications
  • Responsible for developing highly performant and scalable components that are able to handle large amounts of financial data
  • Help develop distributed systems with concurrent access and usage patterns
  • 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.
  • 4+ 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.