Overview

Say it takes 650 seconds to walk to your bus stop. Now, imagine leaving your house 649 seconds before your bus “should” arrive. You walk your normal pace, you turn the last corner, and just as you reach the stop—your bus pulls in.

It sounds amazing. Unlikely. Too good to be true. But thanks to our real-time data engineers, we’re closer than ever. Transit supports vehicle tracking in all major cities: we pull real-time data from agency servers, add some special sauce, then share those departure times with millions of riders. Will they have time for one more cup of coffee? Or will they have to sprint to the stop?

That’s for you to say: you’ll be unifying messy APIs, extracting relevant data, and linking it together with our static transit info. You’ll be scaling and refining our in-house prediction tools and algorithms. You’ll be merging agency real-time with crowdsourced data from millions of users. The fruits of your labour? Reliable real-time, no missed trips, and millions of happy riders. The extra coffee probably helped ;)

📝 Responsibilities
Merge hundreds of third-party APIs in various formats (some clean as a whistle, others plain nasty) into a single, scalable, elegant API
Develop strategies and tools that allow multiple sets of data to be cross-matched and merged if necessary
Build services that scale efficiently with fluctuations of the data
Process vehicle location data in real time in order to warn users when there is a detour on their trip

✅ Requirements
A minimum of 2 years or equivalent of Node.JS/TypeScript or Python
Knowledge of object-oriented & functional programming
Experience building backend server systems that process big amounts of data
Experience dealing with REST APIs (JSON, XML, GET, POST, etc.)
Satisfactory communication skills in English and/or French

💯 Would be nice if…
Polyglot! The more languages you can speak, write and understand, the better
Knowledge of both Node.JS and Python, regexp, bash (bonus points for C++)
Expertise with Rust
Comfortable with Kubernetes and Cloud deployments
Used to work with Git and GitHub
Passionate about cities, urbanism, public transit, design, technology, or all the above
Experience dealing with multiple sources of data and different APIs
Familiarity with transportation data formats like GTFS, GTFS-rt, NEPTUNE, TransitXChange…

Don’t feel like all the requirements apply to you but you still think you’d be a great fit for Transit? Don’t hesitate to apply!

💰 Compensation and benefits

$70,000 CAD – $120,000 CAD per year

Stock options
Comprehensive medical and dental coverage
5 weeks vacation
Four-day work week for everyone
Apple laptop and equipment
$1,500 annual mobility allowance. STM? BIXI? Uber? E-bike? Scooter? Going car-free is free at Transit.
A training and development budget
Generous maternal/paternal/parental leave policy. Gotta fill out our tandem bicycles somehow!
Flexible work hours
Spend your days surrounded by first-rate teammates and the best view of Montreal and/or [insert exotic Zoom background]
When you’re in the office: you’ll be in urbanist heaven, surrounded by Mile End’s urban gardens, bike paths, BIXI docks, bus stops, a metro station, and limitless restaurants… cafés… bars… concert halls… bagel boutiques…
Communal lunch-and-learn with free food in the office each week

👨‍💻 A note on diversity
Public transit is used by overwhelmingly more women and people of colour than other modes of transportation. We try to make sure the diversity of our users is reflected in the team that serves them. Because when we include people of all races, genders, sexual orientations, ages, and identities — we end up building a better app for everyone who uses Transit.

We encourage candidates of all ages, genders, origins and orientations to apply. If you’d like to specify which pronouns you’d like to be referred to, feel free to include that in your application email.

And if your lived experience has given you a unique perspective on all things transportation, mobility, accessibility, urbanism? Let us know, and we’ll make sure your application gets the attention it merits.

📬 How to apply
Send your resume, GitHub account and other relevant info to [email protected].

PS: When you apply, let us know how you heard about the position! Whispers, grapevines, middle-of-the-night Google searches? We’re dying to know.