Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
What will you find in this book?
Part I: Products Part II: Technologies Part III: Teams
Key ideas
Startups are about people Great companies are the result of evolution Speed wins
This book covers a lot of ground Who should read this book? Conventions used in this book Safari® Books Online How to contact us Acknowledgments Interviews
I. Products 1. Why Startups
The age of the tech startup What is a tech startup? Why you should work at a startup
More opportunity More ownership More fun
Why you shouldn’t work at a startup
It’s not glamorous It’s a sacrifice You probably won’t get rich Joining versus founding a startup
Recap
2. Startup Ideas
Where ideas come from
Knowledge
Experts Generalists
Generating ideas Environment for creativity
Give yourself plenty of time Keep an idea journal Work on the problem Get away from work Add constraints Look for pain points Talk to others
Stealth mode Idea versus execution
Validation
Speed Wins Customer development Validate the problem
Market sizing Talking to real customers Feasibility
Recap
3. Product Design
Design
Design is iterative User-centered design
User stories Personas Emotional design Simplicity Usability testing
Visual Design
Copywriting Design reuse Layout Typography Contrast and repetition Colors
A quick review of visual design
The MVP
Types of MVPs Focus on the differentiators Buy the MVP Do things that don’t scale
Recap
4. Data and Distribution
Data
What metrics to track
Acquisition Activation Retention Referral Revenue The magic number
Data-driven development
Incorporating data into the product development process Data-driven development through controlled experiments Data-driven development strengths and weaknesses
Distribution
Word of mouth
Build a better product Provide great customer service Build viral loops into your product
Marketing
Advertising PR and media Email SEO Social media Inbound marketing
Sales Branding
Recap
II. Technologies 5. Choosing a Tech Stack
Thinking about tech stacks Evolving the tech stack Build in-house, buy commercial, or use open source?
Build in-house Buy a commercial product Use open source Technologies you should never build yourself Build in-house, buy commercial, or use open source summary?
Choosing a programming language
Programming paradigms
Object-oriented programming Functional programming Static typing Automatic memory management
Problem fit Performance Productivity Final thoughts on choosing a programming language
Choosing a server-side framework
Problem fit Data Layer View layer
Built-in view helpers Server-side versus client-side Logic versus logic-less templates
Testing Scalability
I/O bound CPU/memory bound
Deployment Security
Authentication CSRF attacks Code injection attacks Advisories
Final thoughts on choosing a server-side framework
Choosing a database
Relational Databases NoSQL databases
Key-value stores Document stores Column-oriented databases Graph databases
Reading data Writing data Schemas Scalability
Replication Partitioning
Failure modes Maturity Final thoughts on choosing a database
Recap
6. Clean Code
Code is for people Code layout Naming
Answer all the big questions Be precise Be thorough Reveal intent Follow conventions Naming is hard
Error handling Don’t Repeat Yourself (DRY) Single Responsibility Principle (SRP) Functional programming
Immutable data Higher-order functions Pure functions
Loose coupling
Internal implementation dependencies System dependencies Library dependencies Global variables
High cohesion Comments Refactoring Recap
7. Scalability
Scaling a startup Scaling coding practices
Automated Tests
A primer on automated testing Types of automated tests Test doubles Test-driven development (TDD) What should you test? Automated testing best practices
Split up the code
Interfaces and modules Versioned artifacts Services
Code reviews
Design reviews Pair programming Pre-commit reviews Static analysis Code review best practices
Documentation
Written documentation Code documentation Community documentation Readme-driven development (RDD)
Scaling performance
Measure Optimize
Recap
8. Software Delivery
Done means delivered Manual delivery: a horror story Build
Version control
Write good commit messages Commit early and often
Build tool Continuous Integration
Trunk-based development Branch by abstraction Feature toggles
Deployment
Hosting Configuration Management
Application configuration Virtual machines Containers Orchestration tools Deployment automation
Continuous Delivery
Rollback Backward compatibility
Monitoring
Logging
Log names Log levels Log formatting Log aggregation
Metrics
Availability level Business level Application level Process level Code level Server level
Alerting
Recap
III. Teams 9. Startup Culture
Actions, not words Core Ideology
Mission
Concise Clear Timeless Inspiring
Core Values
Organizational design
Management-driven hierarchy Distributed organization
Hiring and promotions
The Peter Principle Management as a promotion
Motivation
Autonomy Mastery Purpose
The office
A place where you can work with others A place where you can do focused work alone A place where you can get away from work A way to customize the office for your personal needs
Remote work
Benefits Drawbacks Best practices
Communication
Internal communication External communication
Process
Use good judgment Software methodologies
Recap
10. Getting a Job at a Startup
Finding a startup job
Use your network Grow your network
Meetup groups and conferences Hackathons and competitions Talks, blog posts, open source
Build an online identity Online job search
Nailing the interview
Coding on a whiteboard Thinking out loud Know thyself Know the company Short, repetitive CS 101 problems
How to evaluate and negotiate a job offer
Salary Equity
What is stock? How do employees get stock? What is vesting? What are stock options? How do you sell your stock? How is stock taxed? Short-term versus long-term capital gains Gotchas with exercising stock options Do your research How much are my stock options worth? Salary versus equity
Benefits Negotiating
Should I tell them my salary? What if they promise a raise later on? What can you negotiate for? How to negotiate Competing offers
Recap
11. Hiring for Your Startup
Startups are about people Who to hire
Co-founders Early hires Later hires 10x developers What to look for
Smart/gets things done Culture fit Good communication skills I would be OK reporting to them
Finding great candidates
Referrals Employer branding Searching online Recruiters Premature optimization
Typos Poor targeting College degrees Avoiding premature optimization
The interview
The interview process
Step 1: Connect Step 2: Phone screens Step 3: On-site interview
Interview questions
Ask the candidate to teach you something Give the candidate a chance to learn something Have the candidate demonstrate their technical skills
Making an offer
What should you offer?
The opportunity Compensation Benefits
Follow-up and negotiation
Recap
12. Learning
Principles of learning
Choose your skills wisely Dedicate time to learning Make learning part of your job
Learning techniques
Study Build Share
Why you should share What you should and shouldn’t share
Lessons learned Recap
A. Recommended Reading and References
Recommended reading Reference list
Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion