What you will learn

The Missing README teaches you the software engineering skills that your manager wants you to know, but are rarely taught in school.

How to work with old code

Leave code cleaner than you found it with the legacy code change algorithm.

Write production-grade software

Learn to write operable code with logging, metrics, configuration, and defensive programming

How to test effectively

The Missing README will show you how to write effective tests that run deterministically.

How to work with your manager

Understand standard management practices and how to work with your manager.

Code review strategies

Submit code reviews and give constructive feedback on other people’s code.

The technical design process

Learn the design process, including experimentation, problem definition, documentation, and collaboration

How to evolve software safely

Change production software without breaking production or your teammates' code.

Agile development processes

Get familiar with sprint planning, stand-ups, and retrospectives

Who This Book Is For

The Missing README isn't just for new engineers.

Bootcamp Graduates

Bootcampers starting their first engineering job.


Engineers looking to brush up on their skills.


Students and new college graduates entering the workforce

What Others Are Saying

Chapters we've covered

Chapters explain what to expect when you begin your career, expand on your technical education, and cover planning and interpersonal skills.

Chapter 1 The Journey Ahead

A tour of the book and the beginning of your career.

Chapter 2 Getting to Conscious Competence

Skills to learn on the job and what to expect from yourself.

Chapter 3 Working with Code

Working with legacy code and how to prevent technical debt.

Chapter 4 Writing Operable Code

Use metrics, logging, configuration, and write tools to make your software easy to run.

Chapter 5 Managing Dependencies

Versioning strategies, transitive dependencies, and how to avoid dependency hell.

Chapter 6 Testing

Testing philosophies and how to write safe, fast, predictable tests.

Download This Chapter For Free!

Chapter 7 Code Reviews

Learn to make code reviews helpful instead of a nuisance.

Chapter 8 Delivering Software

Continuous integration and deployment strategies including blue/green deploys, dark launches, and more.

Chapter 9 Going On-Call

How to go enter your team's on-call cycle and deal with production incidents.

Chapter 10 Technical Design Process

The technical design process, including experiments, problem definition, documentation, and collaboration.

Chapter 11 Creating Evolvable Architectures

Build evolvable software using architectural best practices like YAGNI and by learning to maintain compatibility.

Chapter 12 Agile Planning

Learn to participate in Agile development practices like sprint planning, stand-ups, and retrospectives.

Chapter 13 Working with Managers

Build a healthy relationship with your manaager and learn to work with common management practices like 1:1s.

Chapter 14 Navigating Your Career

Position yourself to grow into senior or staff and staff roles, and learn to navigate the promotion process.

Chris Riccomini

Chris Riccomini is a software engineer, startup investor, and advisor with more than a decade of experience at major tech companies such as PayPal, LinkedIn, and WePay. He has been involved in open source throughout his career and is the author of Apache Samza.

Dmitriy Ryaboy

Dmitriy Ryaboy is a software engineer and engineering manager. He’s worked at a variety of companies and organizations, including Lawrence Berkeley National Laboratory, Cloudera, and Twitter. He helped create and grow multiple open-source projects, including Apache Parquet. Dmitriy is currently the Vice President of software engineering at Zymergen.

Subscribe now

Get updates about the book