You are previewing Hello, Startup.
O'Reilly logo
Hello, Startup

Book Description

This book is the "Hello, World" tutorial for building products, technologies, and teams in a startup environment. It's based on the experiences of the author, Yevgeniy (Jim) Brikman, as well as interviews with programmers from some of the most successful startups of the last decade, including Google, Facebook, LinkedIn, Twitter, GitHub, Stripe, Instagram, AdMob, Pinterest, and many others.

Table of Contents

  1. Preface
    1. What will you find in this book?
      1. Part I: Products
      2. Part II: Technologies
      3. Part III: Teams
    2. Key ideas
      1. Startups are about people
      2. Great companies are the result of evolution
      3. Speed wins
    3. This book covers a lot of ground
    4. Who should read this book?
    5. Conventions used in this book
    6. Safari® Books Online
    7. How to contact us
    8. Acknowledgments
    9. Interviews
  2. I. Products
  3. 1. Why Startups
    1. The age of the tech startup
    2. What is a tech startup?
    3. Why you should work at a startup
      1. More opportunity
      2. More ownership
      3. More fun
    4. Why you shouldn’t work at a startup
      1. It’s not glamorous
      2. It’s a sacrifice
      3. You probably won’t get rich
      4. Joining versus founding a startup
    5. Recap
  4. 2. Startup Ideas
    1. Where ideas come from
      1. Knowledge
      2. Generating ideas
      3. Environment for creativity
      4. Stealth mode
      5. Idea versus execution
    2. Validation
      1. Speed Wins
      2. Customer development
      3. Validate the problem
    3. Recap
  5. 3. Product Design
    1. Design
      1. Design is iterative
      2. User-centered design
      3. Visual Design
      4. A quick review of visual design
    2. The MVP
      1. Types of MVPs
      2. Focus on the differentiators
      3. Buy the MVP
      4. Do things that don’t scale
    3. Recap
  6. 4. Data and Distribution
    1. Data
      1. What metrics to track
      2. Data-driven development
    2. Distribution
      1. Word of mouth
      2. Marketing
      3. Sales
      4. Branding
    3. Recap
  7. II. Technologies
  8. 5. Choosing a Tech Stack
    1. Thinking about tech stacks
    2. Evolving the tech stack
    3. Build in-house, buy commercial, or use open source?
      1. Build in-house
      2. Buy a commercial product
      3. Use open source
      4. Technologies you should never build yourself
      5. Build in-house, buy commercial, or use open source summary?
    4. Choosing a programming language
      1. Programming paradigms
      2. Problem fit
      3. Performance
      4. Productivity
      5. Final thoughts on choosing a programming language
    5. Choosing a server-side framework
      1. Problem fit
      2. Data Layer
      3. View layer
      4. Testing
      5. Scalability
      6. Deployment
      7. Security
      8. Final thoughts on choosing a server-side framework
    6. Choosing a database
      1. Relational Databases
      2. NoSQL databases
      3. Reading data
      4. Writing data
      5. Schemas
      6. Scalability
      7. Failure modes
      8. Maturity
      9. Final thoughts on choosing a database
    7. Recap
  9. 6. Clean Code
    1. Code is for people
    2. Code layout
    3. Naming
      1. Answer all the big questions
      2. Be precise
      3. Be thorough
      4. Reveal intent
      5. Follow conventions
      6. Naming is hard
    4. Error handling
    5. Don’t Repeat Yourself (DRY)
    6. Single Responsibility Principle (SRP)
    7. Functional programming
      1. Immutable data
      2. Higher-order functions
      3. Pure functions
    8. Loose coupling
      1. Internal implementation dependencies
      2. System dependencies
      3. Library dependencies
      4. Global variables
    9. High cohesion
    10. Comments
    11. Refactoring
    12. Recap
  10. 7. Scalability
    1. Scaling a startup
    2. Scaling coding practices
      1. Automated Tests
      2. Split up the code
      3. Code reviews
      4. Documentation
    3. Scaling performance
      1. Measure
      2. Optimize
    4. Recap
  11. 8. Software Delivery
    1. Done means delivered
    2. Manual delivery: a horror story
    3. Build
      1. Version control
      2. Build tool
      3. Continuous Integration
    4. Deployment
      1. Hosting
      2. Configuration Management
      3. Continuous Delivery
    5. Monitoring
      1. Logging
      2. Metrics
      3. Alerting
    6. Recap
  12. III. Teams
  13. 9. Startup Culture
    1. Actions, not words
    2. Core Ideology
      1. Mission
      2. Core Values
    3. Organizational design
      1. Management-driven hierarchy
      2. Distributed organization
    4. Hiring and promotions
      1. The Peter Principle
      2. Management as a promotion
    5. Motivation
      1. Autonomy
      2. Mastery
      3. Purpose
    6. The office
      1. A place where you can work with others
      2. A place where you can do focused work alone
      3. A place where you can get away from work
      4. A way to customize the office for your personal needs
    7. Remote work
      1. Benefits
      2. Drawbacks
      3. Best practices
    8. Communication
      1. Internal communication
      2. External communication
    9. Process
      1. Use good judgment
      2. Software methodologies
    10. Recap
  14. 10. Getting a Job at a Startup
    1. Finding a startup job
      1. Use your network
      2. Grow your network
      3. Build an online identity
      4. Online job search
    2. Nailing the interview
      1. Coding on a whiteboard
      2. Thinking out loud
      3. Know thyself
      4. Know the company
      5. Short, repetitive CS 101 problems
    3. How to evaluate and negotiate a job offer
      1. Salary
      2. Equity
      3. Benefits
      4. Negotiating
    4. Recap
  15. 11. Hiring for Your Startup
    1. Startups are about people
    2. Who to hire
      1. Co-founders
      2. Early hires
      3. Later hires
      4. 10x developers
      5. What to look for
    3. Finding great candidates
      1. Referrals
      2. Employer branding
      3. Searching online
      4. Recruiters
      5. Premature optimization
    4. The interview
      1. The interview process
      2. Interview questions
    5. Making an offer
      1. What should you offer?
      2. Follow-up and negotiation
    6. Recap
  16. 12. Learning
    1. Principles of learning
      1. Choose your skills wisely
      2. Dedicate time to learning
      3. Make learning part of your job
    2. Learning techniques
      1. Study
      2. Build
      3. Share
    3. Lessons learned
    4. Recap
  17. A. Recommended Reading and References
    1. Recommended reading
    2. Reference list
  18. Index