About the Role
Responsibilities
Contributing to strategic initiatives that automate and manage Tower’s global production environment.
Building products and automation solutions across web applications (frontend and backend), stream processing, microservices, and databases.
Collaborating with cross-functional technical teams to design, implement, and enhance solutions for trading infrastructure and operational challenges.
Participating in the developer on-call rotation to support SEFO-provided solutions and ensure production reliability.
Developing technical documentation, defining specifications, and contributing to architectural decisions to continuously evolve platform capabilities.
Qualifications
A bachelor’s degree (or equivalent) in computer science or a related field, with at least 3 years of experience in software engineering; a degree from a top Canadian institution is preferred.
Expertise in software engineering fundamentals, including strong programming and computer science principles, with proficiency in Rust (required) and experience with Golang and/or Python.
Experience with Linux systems, shell scripting, relational and non-relational databases, web technologies, full-stack development, bare metal environments, automation, and independently deploying and managing applications, including DevOps responsibilities.
Experience with distributed systems and modern infrastructure, including Kafka, data pipelines, microservices, infrastructure-as-code concepts, and engineering solutions that support large-scale, 24/7 production environments.
Strong communication, stakeholder management, and interpersonal skills, with a demonstrated product-focused mindset, a stable career history, and the ability to take ownership of software components and work autonomously within a collaborative team.
The ability to relocate and work from the office at least three days per week.
Requirements
Software Engineering Fundamentals
Expertise in programming and computer science principles.
Proficiency in Rust
Strong knowledge and experience in Rust programming.
Experience with Linux Systems
Familiarity with Linux systems and shell scripting.
Full-Stack Development
Experience in developing both frontend and backend applications.
Distributed Systems Knowledge
Understanding of distributed systems and modern infrastructure.
Nice to Have
Familiarity with Golang programming language.
Experience with Python for software development.