How GitHub’s CTO Architects Engineering Teams That Scale
More than a dozen impactful tips + critical do’s and don’ts
Jason Warner is the CTO of GitHub, the world’s leading open-source platform with 40M users. He is responsible for GitHub’s product, engineering, support, and security departments. Prior to GitHub, Jason was VP of Engineering at Heroku, one of the largest cloud computing providers in the world. And before that, Jason worked to make Linux accessible to everyone by leading product engineering for Ubuntu Desktop and Ubuntu Phone at Canonical.
If building a high-powered engineering team is hard, successfully scaling it through hypergrowth is near impossible. So we were thrilled to welcome Jason Warner, CTO of GitHub, to speak at our Annual CTO Summit earlier this year where he shared more than a dozen discrete tips on architecting engineering teams that scale.
1. Understand what culture really means
Developing a highly productive culture is top of mind for many executives, but the idea of culture is often misinterpreted. So often culture is simplified to having the right drinks in the fridge or getting a foosball table. Organizations end up spending money to make people feel comfortable, but it actually doesn’t do anything. Culture isn’t just about the “feels;” it’s about accountability and behavior. Whatever you do as a leader and whatever you tolerate becomes the standard for your entire organization.
2. Don’t get trapped by technology
Technology can be an incredible tool for powering your business, but it should never hold you back or keep you from doing something. Technology needs to serve you, not the other way around.
“If you ever find yourself beholden to the technology that you wrote, you’re in for a world of hurt in the next 18 months,” claims Warner. “If things are breaking at the technology layer, it will stop you from organizing your team how you want.”
3. Establish a mission and vision
One of the first things leadership should do is establish a mission and a vision for the company, which should then be broadcast to employees. Everyone at the organization should know why they’re at the company, what they’re building and for whom; and they should be able to understand and tell that story in a consistent way.
4. Create principles and practices
Warner puts principles and practices on his list of non-negotiables, insisting that every leader take the time to put these in place in order to build a successful team.
“When I enter an organization that doesn’t have these, I ask how they have any standards whatsoever if people don’t know what they’re being held to. Your company’s principles state what you value, and the practices are the tactical implementation for those. If you can write that down, you give people anchors around which they can build and navigate their days.”
5. Understand context
When it comes to setting up principles and practices, Warner suggests creating just enough processes to have a structured organization without creating too many limitations. But he adds in the caveat of context. As you’re reading about best practices and ways in which other organizations have been successful, note the size of the organization, how new it is and how they operate. What works for one company might not work for you in the same way.
6. Set expectations for your employees
Rather than thinking of expectations as rules your employees need to follow, think of expectations as the point where culture and implementation meet.
“If I say, ‘We’re going to deliver x on y, but we’re going to burn people out to get there,’ that matters to my employees,” explains Warner. “But if we’re never going to deliver something because we don’t want to burn people out, that also matters to my team. You need to find the right balance between what you do and how you do it in order to keep your employees around long-term.”
Rather than thinking of expectations as rules that employees must follow, think of them as the point where culture and implementation meet.
7. Measure everything
You’re never going to get better at something unless you actually measure it. Even more importantly, you’ll never know if you’re succeeding if you don’t measure anything. And this is where technology and data become your friends.
“This is an incredibly significant piece that most organizations, particularly early ones miss,” states Warner. “They don’t know if they’re succeeding and a lot of them aren’t because they’re not measuring anything. Therefore, they don’t know how to identify and correct it. You should be setting up experiments that run for minutes, hours or days, so you’ll have information and knowledge that will allow you to course-correct.”
8. Be authentic
One of the most effective ways to build trust as a leader is to be authentic and vulnerable. By admitting that you have struggles, worries, and fears, you’ll get a lot more leeway and credit from your team and colleagues. But if a person tries to be perfect or unbreakable, a single misstep or crack in the armor will bring everything crashing down.
9. Find the balance between the people and the organization
Warner notes that if leaders can only do one thing, it should be to understand exactly what they want to get out of an organization and make sure they remain hypervigilant on both the people and delivery sides of the equation. In their day-to-day operations, leaders need to employ one of two modes:
- The sociologist mode: When it’s time to make the best decision for the company, leaders should be in sociologist mode.
- The psychologist mode: When working through problems one-on-one with an employee, leaders should be in psychologist mode.
“There’s a constant balance that needs to be struck and you should be explicit in which one of these modes you’re in at any given moment in time,” says Warner. “Too often I see leaders at large organizations not understand which mode they should be operating in and that confusion trickles down to employees.”
10. Make purposeful hiring choices
If you’re going to bring something into the organization, know that something else will fall by the wayside either tacitly or explicitly. If you’re bringing in more people, responsibilities will get diffused. So, if you’re going to bring someone in, bring him or her in for a good reason.
Warner also believes that most organizations should focus on hiring highly initiated individuals. That means you should always be looking for the person who asks, “How can I making something better today?” rather than the person who sits and waits to be told what to do.
11. Find the right org structure for you *right now*
No organization structure is ever going to work 100% of the time. When coming up with an org structure, you need to think about what you’re optimizing for at this moment in time and for the next set of deliverables. Then organize around that. You’re never going to have the perfect structure — something is going to feel wonky and you’re going to have to be okay with that.
12. Trust your gut
Despite all the data and analytics, most of leadership and creating successful products is art. And making the right call relies heavily on intuition. The more experience you have, the more times you’re going to be able to make the right decision, so trust your gut.
Quick-Hit Dos and Don’ts
As he wrapped up his talk, Warner hit on a few key “dos and don’ts” when it comes to building an engineering team that scales.
- Worry about too many programming languages and frameworks. Multiple build systems are okay, but you don’t want 14 different programming languages. Pick one compiled language and one dynamic language and stick to them.
- Think about your company’s market reputation. Warner notes that he likes talking to recruiters because they often know his company’s reputation better than he does. They know what candidates are saying and they know which of his employees are leaving and why.
- Redirect complaints into solutions. Whenever you hear feedback, make sure you’re asking questions about how you can do better. Turn feedback and criticism into learnings.
- Make it a goal to improve every day. At the start of your day, pick one thing you want to push forward and write it down. Then work to share and accomplish that goal throughout the day.
- Take a human-centered approach to the people you’re working with. Everybody has a way in which they can engage with people more productively. If you’re engaging with somebody, it will be a net positive or net negative conversation, but it’s unlikely to be a neutral exchange. Aim to make every conversation a positive and friendly one, even when you’re disagreeing on something.
- Worry about duplication of tooling. You can fix it in post.
- Get sucked into the hype. Avoid the hype cycles at all costs. Understand your north star and stay true to it.
- Keep people with “not my job” mentality. If someone saw that a train coming down the tracks was about to hit someone and said, “someone else will take care of it,” they’ve failed. If you see something coming, do something about it.
FirstMark’s Annual CTO Summit is a private conference that gathers global tech & product leaders from across the FirstMark family to learn from each other and from accomplished tech leaders from breakout companies like Looker, Slack, GitHub, Upwork, Grubhub, Cloudera, and more. Click here to learn more about the FirstMark Platform, which connects our founders with talent, customers, and expertise.