While most pairing takes place in-person in our Seattle office, we do have a few remote employees. You won’t be getting a personal computer, but rather using pairing stations to do your work. This ensures that you’ll always be working in an easy-to-use environment that everyone is comfortable with.
Pair programming has a number of benefits, including:
There are also social aspects to pairing we like:
Distributed Revision Control and Source Code Management
San Francisco, CA (HQ); Boulder, CO; Amsterdam; Tokyo; Remote (65%)
Especially on the tech side where we’re ~80% remote, pairing happens pretty frequently. We don’t enforce pair programming at GitHub and we’re not dogmatic about the practice, but because we’re largely remote, it helps to foster a sense of community and team building. Pairing culture varies quite a bit between teams (which also vary in size but are never larger than ~15), and people schedule their pairing sessions to accommodate each person’s timezone and schedule. Being a remote-first company means that we can hire the best people in the world because location requirements are less rigid. Part of the ethos behind GitHub as a product is that teams can collaborate productively and asynchronously. Our culture is a tangible manifestation of these two things.
Pair programming is one of our primary values—not only an integral part of our engineering process but a core part of our collaborative culture more broadly. To learn more about our commitment to pair programming and the benefits it brings to individuals, teams, and clients, read this article by one of our Engineering Leads. Here, Uzair describes how he went from being skeptical about pure pair-programming to becoming fully hooked.
Our engineering culture is built upon camaraderie and great ideas. We have dedicated pairing stations around the office to onboard new teammates and review code, demo days where we share our latest projects, and quarterly hackathons to dive into and ship new features.
Our interviews also involve pair-programming, where candidates partner with the interviewer on a practical programming task, often in our codebase. The interview helps us assess how the candidates might collaborate on our team.
21 Open Positions
Find awesome products designed by independent artists
San Francisco, CA and Melbourne, Australia
High collaboration means working together. Each morning during our stand up, we decide on pairs, either at random or continuing with the previous days pairs. Pairing is a daily practice, so team members are expected to be open to it and participate. At Redbubble, we see Pairing as a practice that encourages mentorship and development. Soloing happens some of the time, but typically on matters that wouldn’t require the most innovative solutions. That being said, it’s also okay for team members to say, “I’d like to solo today,” and everyone will respect that choice.
We believe the quality of code that pairing produces is worth the time and effort it takes to commit to this style of programming. Our process avoids things like code review by ensuring that the majority of code going into production has been seen by at least two developers. Very little code is written outside of pairing. We also rotate pairs daily to make sure we’re getting a good mix of work and collaboration with other team members.
Being excited about pairing is a requirement, and we consider it a disqualifier if you aren’t. Especially for our senior roles, we are looking to bring on engineers who will be the most senior pair, uplevel the others on our team, and yes, they should absolutely enjoy pairing. (We should note that there will be days when you’ll feel under the weather or just need some space, and we will of course respect that.)
1 Open Positions
This is strongly supported through our contracts by ensuring that we’re booked for 2 people during a client week. Pairing together helps us transfer knowledge, solve problems together, and catch mistakes quickly.
In addition, pairing supports many of our other values. It’s easier to maintain a high quality codebase when we encourage each other to write tests and documentation. Pairing helps us develop a safe environment to fail since we share our processes and outcomes with a co-worker. Pairing on all client projects helps us ensure that knowledge isn’t concentrated in a single individual and gives us flexibility when scheduling work.
Want to List Your Company?
Submit a team profile!
Select 8 Values
Contact me (Lynne 👋)
Qualify Your Values
Reach Thousands of Devs
Find Value-Aligned Candidates
Have Meaningful Initial Conversations
Don't Fill Roles, Hire Teammates
You can post as many job openings as you want.