Senior Software Engineer
Toronto, Ontario, Canada | Realtime Engineering
As an entrepreneurial backend / systems engineer, you’re caught between two worlds. You probably work at (or have thought about working at) one of the many big software engineering companies out there. You know they have more than enough interesting problems to keep you engaged, but you have a nagging feeling that you’ll be just another cog in a multi-thousand engineer machine. You want to work at a startup, but the thought of building yet another social-this or game-mechanics-that doesn’t really appeal to you.
At PagerDuty, we’re building an alerting and incident tracking system to help IT operations groups detect and respond to issues. Startups, Fortune 500 companies, and everything in between rely on us to alert them quickly when they have operational troubles. We’ve got interesting technical problems in spades, but we’re still very much a startup. We’re looking for a senior engineer to help build out our real-time backend alerting systems, both adding features and helping us maintain our high uptime record as we continue to acquire new customers and scale out our systems.
- Scale out our alerting platform to support a rapidly growing customer base.
- Design resilient services and systems that can withstand multiple failures without a sweat.
- Work with the rest of the team to design new features to address customer requirements.
- Build things quickly while maintaining the high level of reliability our users have come to rely on.
- Cultivate best practices within the engineering group.
- Participate in the hiring process and mentor junior engineers.
- You’ve designed and implemented distributed and highly available systems. You’ve had experience with different system architectures, and have opinions about what works and what doesn’t. Concepts like consistency, availability, real-time dispatching, and distributed queueing aren’t merely buzzwords for you.
- You know about CAP, but also know that it is very easy to misinterpret. The world isn’t as black-and-white as the one in the theorem. You know how to make the appropriate tradeoffs when designing a system, and that the “right choice” will often differ based on requirements, not on dogma.
- You’re a polyglot. You have experience writing idiomatic object-oriented and functional code. Bonus points for familiarity with Scala.
- You know your way around a RDBMS - you can design schemas, write queries, and debug index problems.
- You’re familiar with many NoSQL technologies, and can discuss the pros and cons of different solutions. Bonus points for familiarity with Cassandra or Zookeeper.
- You have a broad background in Computer Science fundamentals backed by years of experience in designing, developing, and debugging software.
We don’t hire based on experience with a handful of tools. Instead, we want smart, capable, and experienced people who can learn our tools quickly (and suggest new ones!) as needed. Experience with our stack is just a bonus.
Here’s what we use:
- Ruby / Rails
- Percona Xtradb Cluster
- Linux (Ubuntu)
- Amazon AWS (EC2, EBS, S3)
- HAProxy, NGinx
- Enough money to pay your bills and buy cool stuff
- Dental and Vision coverage
- 3 weeks paid time off your first year, 4 weeks afterwards
- Catered lunch, EVERY DAY
- Snacks and a beer fridge along with occasional foosball matches!