Transit isn’t magic. But for millions of our riders, it sure feels that way!
For the last decade our data scientists have come up with increasingly elaborate ways to blow riders’ minds off their hinges - whether by improving their ETA predictions with statistical modelling, or crowdsourcing the location of underground trains using the motion sensors on their phones.
These days, Transit is relied upon as the gold standard of transit data by riders and agencies alike. We’re looking for a senior developer who can bring a mix of analytical rigour and a 1000W creative spark to show us whole new possibilities of what can be done with transit data in our 1100+ supported cities.
You’ll join our team as a two-way player. You’ll guard the pipelines and backend services which ferry data between transit servers and riders’ phones, and you’ll also dream up data experiments and perform exploratory analysis, statistical modelling, and pattern extraction. Ideally you’ve either (1) operated in this sort of hybrid working arrangement before; or (2) are a senior data engineer currently yearning for the (metaphorical) white lab coat that will let you conduct lots of “data science-y” experiments as part of your day-to-day.
By joining our team, you’ll help shape commuting patterns in over 40 countries, with each basis point of added precision resulting in fewer missed buses and trains. If you succeed in your mission? You’ll restore riders’ confidence in their local transit service, and help cities fulfill their potential by getting more of those pesky cars off the road!
Here’s what we’ll need on your end:
📝 Responsibilities
- Own data products and features end-to-end: from problem framing and exploratory data analysis (EDA), through statistical modelling and pattern extraction, into pipelines, deployment, monitoring, and iteration
- Using your battle-tested wisdom and analytical chops, help us design, build, deploy and monitor scalable backend services and data pipelines on Google Cloud Platform (BigQuery, Airflow, Pub/Sub, Cloud Run)
- Run complex EDA and statistical analysis on Transit’s most interesting datasets (GPS traces, GTFS and GTFS-Realtime feeds, ridership signals, rider behaviour) and turn what you find into models, heuristics, and product improvements that get used in the app
- Build production-grade machine learning systems for problems like ETA prediction, demand forecasting, and anomaly detection on real-time feeds
- Own the full ML lifecycle from training through monitoring and retraining
- Partner closely with our data scientists, product engineers, and DevOps folks and act as the bridge between research-grade ideas and rider-grade systems
- Mentor newer developers on software craft and statistical thinking
- Lead design reviews and help us maintain a culture of impeccable craftsmanship, reliability, and ingenuity
- Champion engineering standards (testing, observability, DevOps, CI/CD) across our data and ML systems
- Keep up-to-date with what’s happening on the frontier. We’re living in exciting times!
✅ Requirements
Regardless of whether you’re a hybrid data engineer-slash-scientist or a senior data engineer eager to cannonball into the data science side of things, to succeed in this role you’ll need to be a researcher at heart with strong engineering fundamentals. Our ideal candidate will have:
- 4+ years of professional experience as a data engineer or in a hybrid data engineering and data science role
- Strong skills in Python (and ideally TypeScript), with a track record of owning backend systems and data pipelines end-to-end
- Hands-on experience with cloud platforms, ideally GCP, with services like BigQuery, Pub/Sub, Cloud Run, and Dataflow
- Solid foundations in statistics, EDA, and data modelling on large, messy, real-world datasets. You don’t need to have shipped advanced ML models, but you should already be analytically literate and clearly motivated to deepen this side of your craft
- A demonstrated interest in data science work (share some notebooks!)
- Comfort with relational and non-relational databases (PostgreSQL, Redis, etc.) at scale
- Familiarity with Docker, Kubernetes, and modern CI/CD
- You remember to include “Rage Against The Lachine” in the subject line of your email
- Strong communication and collaboration skills across engineers, data scientists, product, and biz folks. You should be the kind of senior who makes the people around them better
💯 Would be nice if
- Experience taking machine learning models from prototype to reliable production service (training, evaluation, deployment, monitoring, retraining)
- Experience with feature stores, model registries, or modern MLOps tooling
- Familiar with Airflow and other workflow orchestration tools
- Geospatial, time-series, or streaming data experience at scale
- Familiarity with public transit data standards (GTFS, GTFS-Realtime) or other mobility datasets
- Background in experimental design (A/B testing, causal inference, robust evaluation)
- Open-source contributions, conference talks, or technical writing - send us links, we want to see your thinking!
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
$90,000 - $125,000 CAD per year, based on experience
- Stock options
- RRSP/FHSA contributions
- Comprehensive medical and dental coverage
- 5 weeks vacation
- Four-day work week at full-time salary (yes, you read that right)
- Apple laptop and equipment
- $1,600 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 use, 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
Must be located in Montreal, or willing to relocate.
Shoot us an email at jobs+hybriddata@transitapp.com with:
- Your resume
- A quick summary of who you are and why you’re interested in the role
- Some analysis you’ve done in the past (GitHub, Jupyter notebook, blog post, PDF, paper, whatever) that shows us how you think and what you can do
We look forward to meeting you!
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.
PPS: Unfortunately, we don't accept in-person applications or singing telegrams. Make your application sing instead!