Yevgeniy (Jim) Brikman is the co-founder of Gruntwork, a company that builds products and services that take the pain out of DevOps, and the author of Hello, Startup: A Programmer’s Guide to Building Products, Technologies, and Teams.
Here, Jim talks about lessons learned in launching a startup, the rewards of running his own business and the importance of building a great team. Read on:
Can you tell us about your experiences launching a startup?
My co-founder and I created our startup because we were, quite frankly, fed up with how painful it is to build and manage software. There are just so… many… moving… parts. You need to deploy app servers, databases and load balancers; you have to configure routing, health checks, monitoring and alerting; you have to fiddle with your build system, automated tests and dependencies; you need to set up a staging and production environment, manage log files, buy a domain name, figure out an automated backup and restore procedure, set up database failover, protect yourself against spam, phishing, and denial of service attacks, and you have to do all of this while keeping up with security updates and ensuring that everything you build is scalable, reliable, maintainable and fault tolerant.
It shouldn’t be this hard. No one of those tasks is particularly difficult. Launching a satellite that uses earth’s gravity as a slingshot to enter Jupiter’s orbit is a hard problem. Running a few servers in the cloud shouldn’t be. Just about any developer can become proficient in any of the long list of tasks above in a week or two. But when there are 100 such tasks, 100 times a week or two, it is an astonishingly large number.
This is the problem we set out to solve when we launched Gruntwork. Our mission is to make it an order of magnitude easier to understand, develop and deploy software. The first step in this direction is our “DevOps as a Service” platform, which consists of products and services that take the pain out of delivering software.
Working on this has been a blast. We’ve created a collection of Infrastructure Packages, which are reusable, battle-tested, and configurable pieces of infrastructure (e.g. a Docker cluster or a relational database), which a number of companies have used to get up and running on AWS in about a week. We now have a community around these packages and every time someone requests a new feature or fixes a bug, everyone in the community benefits from the improvement. This creates incredible leverage, as if all of these companies shared a single, massive DevOps team that was constantly improving their infrastructure.
What were some of the most important lessons you’ve learned in starting a business?
First, find the right problem. You should only start a company if you’re willing to spend the next decade of your life working on it. Startups take a long time and the only way you’ll be able to work that hard for that long is if you find a problem that you are extremely passionate about. If you can’t see yourself working on this problem for 10 straight years, don’t start a company around it.
Second, find the right people. Picking a co-founder is a big decision. You’ll be spending half your waking hours with this person over many, many years. Sometimes you’ll fight, sometimes you’ll laugh and always, you’ll need trust and respect. It’s a lot like marriage. Similarly, early employees are like adding DNA to your company. The first 10 people you hire are really the templates for the next 100 or 1,000.
Third, speed wins. Startups are all about trial-and-error, and in a trial-and-error world, the one who gets to errors faster will win. Or to put it another way, a minimum viable product is not a product, it’s a process.
What have been some of the biggest rewards of running a business?
If you want to be happy at your job, more than anything else, you need mastery, autonomy and purpose. I’ve found that running your own company maximizes all three.
Mastery: You will never learn so much, so quickly, in so many different areas, as you do when you start a company.
Autonomy: You have full control over where you work (e.g. since launching my company, I’ve lived in the U.S., Italy and Ireland), who you work with (e.g. I found an amazing co-founder), and how you work (e.g. we do all of our work remotely).
Purpose: You can ensure that you’re focusing on problems you really care about. I think software is the most transformational technology in human history and I’ve been obsessed with making it better most of my life. The fact that I’m now paid to do it full time makes it the best job I’ve ever had.
How important is building a great team to the success of a business?
There’s no such thing as a “business”. There are just people. If those people aren’t great, then nothing else matters. The product design, the marketing strategy and the tech stack are all irrelevant if you don’t have the right people to execute on them. This is why the best companies in the world are obsessed with hiring.
What have you learned makes for a great team? On the flip side, what elements seem to contribute to team dysfunction?
All great teams have two things in common: trust and purpose. Trust means the team members know they can depend on each other, take risks without fear of what the others might think and communicate openly. Purpose means all the team members are driving towards the exact same goal and that the goal is important to all of them.
If you have trust and purpose, you’ll be able to figure out all the other details (e.g. team structure, division of labor, skill sets) and accomplish remarkable things. If you don’t have trust and purpose, then none of the other details matter, as your team will be completely dysfunctional.
How do you approach hiring? What do you look for in your employees?
The best piece of advice on hiring for startups is: don’t do it. Or at least, don’t do it yet. Hiring more people means you burn through money faster, you have to deal with more complexity and overhead in running the business and your decision making becomes slower. The best startups do more with less. Be proud of being small and try to accomplish as much as possible with a tiny team. It will teach you to stay focused, make better trade-offs, and develop a passion for high leverage and efficiency.
How do you know it’s time to start hiring? The key question to ask is not “what could we do if we hired someone?” but “what couldn’t we do unless we hired someone?”
When we get to this stage, the main thing we look for is real-world evidence that the person can do the job. That means no artificial interviews. We don’t do brain teasers (“how many golf balls could you fit in a bus?”). We don’t do pointless HR questions (“what is your greatest weakness?”) And we don’t do whiteboard coding (“implement a binary tree”). I don’t know about you, but developers at my company need to solve real problems with real code, so we built an interview process that checks for exactly that.
For example, we might ask a candidate to spend a few hours contributing to one of our open source or proprietary projects. We keep the contribution short (e.g. max five hours), so it’s easy to do after work or on a day off, review the code with the candidate when they are done, and pay them for the time (even if we don’t hire them). This gives us a fairly accurate representation of what it would be like to work with this candidate in the real world (i.e. quality of their code, clarity of their communication, ability to learn). And it gives the candidate a chance to prove themselves in a normal, relatively low-stress environment (i.e. they work from their own home on their own computer) and to see what the job would really be like.
What are the unique challenges of hiring for IT positions?
The demand for good programmers massively outstrips supply. That means tiny startups have to compete with giants like Google and Facebook for the same talent. You can’t beat the giants in terms of salary, benefits, perks or job stability. But you can beat them in terms of autonomy, mastery and purpose.
If you are employee No. 10,000, you represent less than 0.01 percent of the company. Even if you’re an incredibly talented programmer, you most likely won’t be able to make a noticeable dent on the company as a whole.
If you are employee No. 4, you represent 25 percent of the company. Everything you do matters and every one of your actions has the potential to transform the entire company–and your career.
Whether you’re looking to work with a startup or a large corporation, make sure you know what you’re worth at Paysa.