Overview

Location: Candidates from any geography within UTC-10 to UTC-5 time zones (roughly the Americas plus Hawaii). Heroku headquarters are in San Francisco, but more than half of our team works remotely.

This posting is for a server-side developer position with the Heroku Core Services engineering team. Our team is responsible for the master control logic inside Heroku – the business logic that drives our platform. When anyone accesses the Heroku API (including users of the Heroku web dashboard which itself uses the API) they are talking to our systems. We are looking for a dedicated software engineer to add to this critical team.

Most of our services are written in Ruby, but we are increasingly writing new services in Go. That said, we aren’t necessarily looking for Ruby or Go experts – just really good developers. We manage a lot of complex business logic inside a service that operates at high scale. We operate all of our services in production and everyone participates in the on-call rotation. Our team does a mix of new feature development and sustaining engineering. We also collaborate heavily with many other engineering and product teams on their projects.

Heroku has a relatively flat engineering structure. We are composed of a large number of small, largely autonomous teams (kinda like that new microservices architecture you may be working on!). This means we strongly value the ability of individuals to prioritize their work and connect it to our overall engineering goals. It also means we rely on lots of peer-to-peer communication for collaboration rather than leaning on hierarchy and process.

The key attributes for being a strong contributor on our team include:

  • A commitment to engineering excellence. We care about our code, our interfaces and abstractions, our tests, our continuous delivery pipelines, and our metrics and monitoring. We strive for the highest level of software engineering discipline.
  • Desire and ability to learn new things – architecture, technology, languages and features are constantly evolving. It’s a good sign if you regularly seek to learn new tools or techniques.
  • Good ability to troubleshoot complex systems – you’re not afraid to dive in, read the logs, ask for help, follow the stack traces wherever they go…
  • Good collaboration skills – a desire and ability to collaborate well both with other engineers and non-engineering stakeholders.
  • An interest in distributed systems and application scaling.
  • Ability to work and prioritize in an ambiguous environment. We have many simultaneous projects, teams, interrupts and priorities. The ability to understand our key drivers and use those to help prioritize your efforts is critical.

Relevant Experience

  • Experience writing server-side code and APIs.
  • Experience working with complex application logic.
  • Experience with relational databases.

What’s a typical day look like

  • Team standup
  • Working on a story off the tracker board…
  • Setup an hour pairing with a collegue (doesn’t happen all the time)
  • 30 mins reviewing a PR sent by another team
  • Uh oh – team is responding to an incident – drop into another chat room to help out
  • Incident is resolved – back to the story

Some days there are design meetings, or meetings to talk about projects with other teams. Some days are heads down coding – some days get eaten up by lots of interrupts.

What we offer

  • A chance to work with a great group of people on a large set of interesting problems.
  • Opportunity and support to learn more and grow as a developer.
  • Opportunity and support to grow your skills outside the office (speaking, conferences, etc…)
  • Chances to work and collaborate with engineers on other Heroku teams who are tackling other hard and interesting problems.
  • A commitment to equal pay (https://www.salesforce.com/campaign/equality/equal-pay/)
  • A culture that values diverse backgrounds and viewpoints (this is something we are still working on improving!)
  • Great benefits.
  • Commitment to working remotely. Many of our teams are more than 50% remote and we strive to make the “remote worker” experience as good as being in the office.

About Heroku

Heroku is a thriving business unit of Salesforce. We are based in a beautiful office in SOMA, San Francisco and have remote employees on four continents and thirteen countries. Our work environment is fun, flexible, and collaborative. We are focused on technical and operational excellence and customer success. Together we are changing the way web application development and deployment happens.

It's about the makers

We love what we do and we’re delivering the creative results to prove it. Our work is our craft and we delight in building and shipping things that make our users happy and productive. Working at Heroku will push you to do your best, providing endless opportunity for personal and professional growth.

Make developers' lives awesome

We’re on a mission to deliver a great developer experience. Our goal is for Heroku to be a joy to use — a platform that enables the focus and flow developers require to build great apps. We pay attention to every detail, applying thoughtful design to the app lifecycle and every new feature.

Heroku’s culture is vibrant, whether you’re online or in the office, we’re working together in an environment that is friendly and productive.

This is an exciting opportunity to join a cross-functional team tasked with delivering the next major version of the Heroku product. We’re developing a cohesive set of features and capabilities that will serve as the core of a new Heroku offering aimed at applications with demanding security, compliance and runtime requirements.