When you learn a new programming language, the traditional first step is to go through a "Hello, World" tutorial that teaches you everything you need to know to get a basic program working, such as one that prints the text "Hello, World" to the screen. This book is the "Hello, World" tutorial for building products, technologies, and teams in a startup environment. To see what's inside, check out the outline and interviews.
Hello, Startup is a practical, actionable, how-to guide to startups. The book consists of three parts: Products, Technologies, and Teams. Although at its core, this is a book for programmers, by programmers, only Part II, Technologies, is significantly technical. Parts I and III should be accessible to technical and non-technical audiences alike. Below is the list of chapters in each part, and under each chapter, a sampling of the concrete techniques, tools, and skills you will learn from reading it.
Part I: Products
- Why Startups
- Why today, more than any other time in history, startups are your best opportunity to build products that touch millions of lives; what is a startup; why you should work at a startup; why you shouldn't work at a startup.
- Startup Ideas
- How to come up with startup ideas; idea journals, constraints, and pain points; ideas vs. execution; Boyd's Law; how to use the customer development process to quickly and cheaply validate your ideas.
- Product Design
- Design skills everyone should learn; how to design a user interface that doesn't make users feel stupid; principles of user-centered design, including personas, emotional design, simplicity, and usability testing; principles of visual design, including copywriting, reuse, layout, typography, contrast and repetition, and colors; how to design a Minimum Viable Product (MVP).
- Data and Distribution
- Metrics every startup should measure; data-driven product development; A/B testing; why the best product doesn't always win; marketing, viral growth, and sales strategies for startups.
Part II: Technologies
- Picking a Tech Stack
- How to decide between building software in-house, buying a commercial product, and using open source; how to pick the initial tech stack; how to evolve a tech stack and rewrites; how to evaluate programming languages, frameworks, and databases.
- Clean Code
- Why a programmer's job is not to write code, but to understand it; how code layout, naming, error handling, Don't Repeat Yourself (DRY), the Single Responsibility Principle (SRP), loose coupling, and high cohesion lead to code that's easier to understand; why functional programming leads to code that's easier to reuse; why refactoring is the essence of writing code well.
- How to scale a startup to more users and more developers; how to make changes to your code without being afraid; how Test Driven Development (TDD) leads to better code; how to introduce design reviews, pair coding, and code reviews at your startup; why the Readme is the most important file in your code base; if you can't measure it, you can't fix it; how to do back-of-the-envelope calculations to reason about performance.
- Software Delivery
- What happens to the code after you write it; why you should use source control, an open source build system, and continuous integration; how to set up configuration management, automated deployment, and continuous delivery; how to instrument your code with logging, monitoring, and alerting.
Part III: Teams
- Startup Culture
- Why you should define your company's mission and values; trade-offs between a management-driven hierarchy and a flat organization; the role of culture in hiring, promotions, and motivation; how to design the ideal office for programmers; trade-offs with working remotely; communication policies and process at a startup.
- Getting a Job at a Startup
- How to find a startup job using your network; how to get your resume noticed; how to get good at interviews, whiteboard coding, and asking good questions; how to evaluate a job offer; how to think about salary and equity; how to negotiate a job offer.
- Hiring for your Startup
- Why people are the most important part of a startup; who to hire, including co-founders, early hires, generalists, and specialists; how to find great candidates and engineering branding; why whiteboard coding is terrible and what to do about it; how to make an offer they can't refuse.
- The most interesting software developer in the world; why you should write blog posts, articles, papers, and books; why you should talk at meetup groups, tech talks, and conferences; why you should open source almost all of your code; why you should share almost everything you know.
Part of the research for Hello, Startup included interviews with programmers from some of the most successful startups of the last decade, including early employees of Google, Facebook, LinkedIn, Twitter, GitHub, Stripe, Instagram, AdMob, Pinterest, and many others. You can find their profiles below.
Brian LarsonStaff Software Engineer at Google, Principle Software Engineer at Twitter
Daniel KimSoftware Engineer at Facebook, Engineering Manager at Instagram
Dean ThompsonCo-Founder and CTO of mSpoke, Director of Engineering at LinkedIn, CTO of NoWait
Florina Xhabija GrosskurthWeb Developer, Product Specialist, and Manager at LinkedIn, Director of People Operations at Wealthfront
Gayle Laakmann McDowellFounder and CEO of CareerCup, Founder and Co-President of Seattle Anti-Freeze
Jonas BonérCo-founder and CTO of Triental AB, Founder and CEO of Scalable Solutions AB, Co-founder and CTO of Typesafe
Jorge OrtizFounder at Joberator, Software Engineer at LinkedIn, Server Engineer at Foursquare, Hacker at Stripe
Julia GraceCo-Founder and CTO at WeddingLovely, CTO at Tindie
Kevin ScottSVP Engineering and Operations at LinkedIn, VP Engineering/Operations at AdMob, Sr. Director at Google
Martin KleppmannCo-founder of Go Test It and Rapportive, Senior Software Engineer at LinkedIn
Mat ClaytonCo-founder and CTO of Mixcloud
Matthew ShoupSenior Hacker in Residence at LinkedIn, Principal Nerd at NerdWallet
Nick DellamaggiorePrincipal Staff Engineer at LinkedIn, Infrastructure Lead at Coursera
Philip JacobFounder and CTO StyleFeeder, Engineering at Stackdriver, Staff Software Engineer and TLM at Google
Steven ConineCTO and Co-founder at Spinners, Founder of Wayfair
Tracy ChouSoftware Engineer at Quora, Software Engineer at Pinterest
Vikram RangnekarCo-founder at Voiceroute, Co-founder at Socialwok, Senior Software Engineer at LinkedIn
Zach HolmanOne of the first engineering hires at GitHub
Add the book
Add Hello, Startup on your favorite book sites:
Here is what people are saying about Hello, Startup:
"An easy to read book about everything involved in building a startup. Must read for anyone thinking of starting a company or joining an early stage startup." — Dmitriy, Software Engineer
"I am not aware of a better book that accurately covers so much, to this depth, while being readable." — Bill Boz, Developer
"This is the kind of great book that comes once in a while such as 'Business Model Generation' or 'The Startup Owner's Manual'" — Jeocentric, Architect, Developer
There is a huge gap between a good CS education and what is considered "common knowledge" in start-up engineering teams. Most of us had to learn this stuff through blogs, coworkers, and, of course, the school of hard knocks. But Hello, Startup finally collects a lot of this wisdom into one place. I wish I'd had a book like this when I was getting my start in the industry.
Jim will give you a guided and well-informed look at what it takes to build a software startup. There is no jargon or fluff—just practical, simple, and proven advice, presented in an easily readable book. If you’ve ever wondered, "How do I come up with startup ideas?" or "What technology should I use for this project?" or "How do I get awesome startups to hire me?" then Hello, Startup is for you.
As a startup founder, you are expected to learn an unbelievable amount of knowledge from an incredibly diverse set of disciplines in a very short period of time. While I treasure the experience of beating my head against the wall and eventually figuring things out, I wish I had this guide when I first got started.
With the exploding interest in technology startups, Hello Startup is a uniquely practical and entertaining book on how-to develop startups. I wish I had this resource at the start of my entrepreneurial journey.
Like Jim, I started my career working for big, established companies. I'm now the co-founder of my own company, prismic.io, and this experience is teaching me a lot every single day. This book captures a lot of these learnings and explains not only how, but also why a startup can be a great way to unleash your true potential.
If every computer science department gave out this book as a graduation gift, two good things would happen across the tech industry. The worst tech companies would go out of business, and the good ones would become dramatically more productive.
Check back regularly for the latest updates, talks, and resources, or just subscribe to the newsletter!
Check out Yevgeniy Brikman's podcast interview with Software Engineering Radio on Infrastructure as Code best practices. The discussion covers similarities and differences between conventional software engineering and code-driven infrastructure; factoring code into modules; layering; terraform code organization for micro-services; releases and tagging; code reviews; unit testing infrastructure; deployment of infrastructure; ownership and code structure models; and open source and re-usable libraries.
"Terraform: Up & Running," 2nd edition, has been published
October 3, 2019
"Terraform: Up & Running," 2nd edition, has been published! It's nearly double the length of the 1st edition (~160 more pages), including two completely new chapters (Production-grade Terraform Code and How to Test Terraform Code), and major changes to all the original chapters and code examples (everything is now updated through Terraform 0.12).
Learn the three key lessons that helped Gruntwork get to $1 million in annual recurring revenue with $0 in investment and $0 in debt.
The 10:1 rule of writing and programming
August 12, 2018
Writing prose and writing code have a lot in common, but perhaps the biggest similarity is that neither writers nor programmers can get things done on time. Writers are notorious for missing deadlines. Programmers are notorious for being wildly off with estimates. The question is, why?
The story of how we built Gruntwork.
“Successful startups are all alike; every unsuccessful startup is unsuccessful in its own way.” These are my personal observations on a few of the most important traits that make startups successful.
The Truth About Startups
April 7, 2017
This is the talk I gave at the MIT Martin Center for Entrepreneurship and the Trinity College Blackstone Launchpad. It's a talk I wish someone gave me when I was in college to help me think about the role of entrepreneurship and startups in my career.
"Terraform: Up & Running" is now available as an early release!
November 17, 2016
I wrote another book! This book is the fastest way to get up and running with Terraform, an open source tool that allows you to manage your infrastructure as code across a variety of cloud providers. It's now available in the O'Reilly Store as an early release.
Gruntwork Infrastructure Packages: world-class infrastructure, all of the control, none of the work.
July 26, 2016
An Infrastructure Package is a reusable, battle-tested, documented, configurable, best-practices definition of a piece of infrastructure. We think it’s a better way to build and manage infrastructure. And today, we’re unveiling the full list of Gruntwork Infrastructure Packages and releasing the documentation as open source so previous customers can find info from a Google search and future customers can explore our packages directly.
Why do so many software companies and developers give away so much of their work in the form of open source, writing, and speaking? Why would they invest thousands of hours and millions of dollars into a project and then release it for free to everyone, even their competitors? In this blog post on Y Combinator's The Macro, I dive into the key reasons why the best companies and developers share almost everything they do, discuss some of the common objections to sharing, and by the end, I hope to convince you and your company to start sharing too.
May 3, 2016
My company, Atomic Squirrel, has merged with Phoenix DevOps to create a new company called Gruntwork. We can get you up and running on AWS with DevOps best practices and world-class infrastructure in about 2 weeks. You focus on your product. We'll take care of the grunt work.
A Minimum Viable Product Is Not a Product, It's a Process
January 22, 2016
I published a blog post on The Macro, Y Combinator's blog, that discusses one of the most common causes of startup failure.
Introducing Atomic Squirrel and The Startup Checklist
September 21, 2015
For the last few months, I've been working on a new project: founding a company. It's called Atomic Squirrel, and our goal is to help you launch your startup. Check out our Startup Checklist, which contains a comprehensive list of tasks for launching your own company.
All chapters are now available in the early release!
April 17, 2015
All the chapters of Hello, Startup are now available as part of the Early Release program. The new additions include "Startup Ideas", "Product Design", "Data & Distribution", "Scalability", and "Learning". Check it out and send me your feedback!
Based on the contents of Hello, Startup, here is a list of tools, links, and checklists to help you build a startup. These resources are a work in a progress. They are also open source, so you can add your contributions by submitting a pull request to the Hello, Startup GitHub Repository. To see how these resources fit into the bigger picture, check out the The Startup Checklist, which is a comprehensive collection of everything you need to do to launch a startup.
How to come up with startup ideas; how to be more creative; a list of links to ready-made ideas you can use.
Images, photos, graphics, clip art, icons, and image editors you can use in your startup.
Quick and cheap ways to do some market research to find out if you have a big idea or a complete bust.
Help users find your startup through marketing, viral marketing, advertising, email, SEO, PR, and sales.
Everything you need to design a user experience for your startup, including templates, fonts, wireframing tools, community resources, checklists, and further reading.
Startup business models; information on IPO's and acquisitions; resources such as ads, payments, subscriptions, lead gen, etc.
How to define a minimum viable product (MVP); how to build prototypes quickly and cheaply.
Learn how to keep track all of your server metrics, business metrics, and alerts.
Instead of deploying code manually, learn about tools such as Terraform, Chef, Puppet, Ansible, and Docker.
How and why to setup a code review process at your startup, including design reviews, pre-commit reviews, and static analysis.
Compare racking your own servers versus using services such as Amazon EC2, Heroku, Rackspace, and Digital Ocean.
Learn how to scale your tech stack to handle more users, more traffic, and more data.
This is a list of websites where a candidate can find a startup job or a startup can find a candidate.
How to figure out if you're being paid a fair salary.
Can't find what you need on hello-startup.net? Check out these other lists of startup resources.
Other books, articles, and talks you should check out to learn about startups.
Tools that help your team work together productively, such as GitHub, Slack, Google Docs, and DropBox.
How does equity work? How much are your stock options worth? Use these resources to figure it out.