Sr. Software Development Engineer, Data Plane, Compute

Toronto, Remote (Canada-Wide)

Our Client is looking for a talented Senior Software Engineer to join the team. You'll need both excellent people and technical skills. You’ll use your know-how to provide technical guidance and pragmatic results at the code, server, and architecture level.

 

The Compute Team owns multiple significant components that are responsible for deploying and managing on-demand virtual machines as well as the underlying hosting infrastructure, in over a dozen global data centers. We also own monitoring components which provide insights into the performance of our cloud systems. We support ESXi and PowerVM hypervisors as part of our cloud offering. 

 

Representative projects include building customer-facing features, gathering metrics to improve and optimize self-healing systems, creating new monitoring frameworks, automation improvements, bug fixes, and internal technical improvements. We use a lot of Python, Git, Mercurial, InfluxDB, MySQL, Kapacitor, etc. (You don’t need to know all these technologies to apply!) our Client has a deep technical stack, so in this role you’ll have plenty of opportunity to learn new things.

 

The team is a diverse collection of engineers who collaborate to ensure the overall team is effective. We own our services end to end, and are responsible for the architectural design, quality assurance, and operation of the service in development, test, and production.

You will be responsible for:

  • Building new features and adapting existing systems to meet requirements

  • Collaborating with engineers and product managers to define the details and personally build the product    

  • Designing and implementing core back-end components of our cloud computing service

  • Defining and meeting scalability, availability, security, and performance goals

  • Rapidly building and evolving major features in collaboration with product management

  • Resolving major customer technical issues

  • Researching and experimenting with key technologies, architectures, and standards

  • Testing your work!

  • Writing elegant, succinct Python code

  • Working with managers and technical experts to influence the roadmap and coordinate lifecycle planning 

  • Contributing to on-call rotation

  • This list isn't exhaustive, so you'll be perceptive and thoughtful, identifying latent problems and finding solutions.

You are someone with:

  • Experience in designing and implementing distributed systems

  • Deep knowledge of concurrency control, data structures, algorithms, and scale-out software architectures

  • Deep knowledge of database systems and transaction management

  • Skill in analyzing, measuring, and optimizing scalability and performance

  • Experience using hypervisors is a plus