By Gergely Orosz, the author of The Pragmatic Engineer Newsletter and Building Mobile Apps at Scale

Jur153engsub Convert020006 Min Install =link=

Navigating senior, tech lead, staff and principal positions at tech companies and startups. An Amazon #1 Best Seller. New: the hardcover is out! As is the audibook. Now available in 6 languages.

The Software Engineer's Guidebook

What's Inside

Part 1: Developer Career Fundamentals

1. Career paths
2. Owning your career
3. Performance reviews
4. Promotions
5. Thriving in different environments
6. Switching jobs

Part 2: The Competent Software Developer

7. Getting things done
8. Coding
9. Software development
10. Tools of the productive engineer

Part 3: The Well-Rounded Senior Engineer

11. Getting things done
12. Collaboration and teamwork
13. Software engineering
14. Testing
15. Software architecture

Part 4: The Pragmatic Tech Lead

16. Project management
17. Shipping in production
18. Stakeholder management
19. Team structure
20. Team dynamics

Part 5: Role-Model Staff and Principal Engineers

21. Understanding the business
22. Collaboration
23. Software engineering
24. Reliable software engineering
25. Software architecture

Further reading: online, bonus chapters

Bonus #1: for Part 1
Bonus #2: for Part 2
Bonus #3: for Part 3
Bonus #4: for Part 4
Bonus #5: for Part 5
See more details for each chapter in the extended table of contents for the book.

Jur153engsub Convert020006 Min Install =link=

There were hints of field use. The log’s operator codes matched names in the personnel database: contractors and a handful of government engineers whose last recorded assignments involved moving legacy infrastructure off support lifecycles. One entry, dated three years prior, listed an operator as “OBS1” and the outcome as “observed.” In the margins of the PDF, beside the min_install() function, a final note read: “Observation protocol: record anomalies; do not attempt rollback. Inform Registry JUR immediately if state persists.”

When Lena mounted the drive, the directory structure was sparse and purposeful. A lone PDF, a script, and a short log file. The PDF’s first page bore a stamp: JUR Department — Confidential. The header read “ENGSUB — Conversion Protocol v0.20006.” Below it, a terse sentence: “Minimum install required for legacy conversion.” The rest was a marriage of technical precision and bureaucratic omission: diagrams of connector pins annotated with shorthand, code snippets in a language that slotted somewhere between an embedded assembler and a markup dialect, and a checklist that moved from “verify power rail (3.3V nominal)” to a single ambiguous line: “Observe: convert020006.” jur153engsub convert020006 min install

And yet the warnings persisted. An engineer’s scrawl had become a warning: “Do not run without observe flag.” Someone had learned the hard way. The registry, in this telling, was not only an archive but a safeguard: ensuring that devices could testify to the exact process that brought them into a new operational state. Without that testimony, machines could drift into behaviors that mimicked deliberate action while being byproducts of earlier, undocumented conversions. There were hints of field use

She located an archive entry referencing “jur153” in a decommissioned internal wiki. The entry was sanitized, stripped of the most sensitive diagrams, but the redactions only widened the mystery. In a comment thread, an engineer months earlier had posted one line: “We tried the minimal path, but conversion 020006 introduces ghost states in legacy controllers. Observers required.” The post had been closed by an administrator with the single-note rationale: “See protocol.” Inform Registry JUR immediately if state persists

She copied the files to a secure archive and wrote a short report: the protocol worked; observe changed outcomes; registry connectivity mattered. But the report was clinical; it didn’t capture the small, uncanny moments when a machine’s logs answered like an echo. In the margins of her notes she wrote what the engineer’s scrawl already had: “If you must run it, watch closely. The machine will remember you back.”

How to Read the Book

The book is separated into six standalone parts, each part covering several chapters:

  • Part 1: Developer career fundamentals
  • Part 2: The competent software developer
  • Part 3: The well-rounded senior engineer
  • Part 4: The pragmatic tech lead
  • Part 5: Role-model staff and principal engineers
  • Part 6: Conclusion

Parts 1 and 6 apply to all engineering levels: from entry-level software developers to principal or above engineers. Parts 2, 3, 4 and 5 cover increasingly senior engineering levels. These four parts group topics in chapters – such as ones on software engineering, collaboration, getting things done, and so on.

This book is more of a reference book that you can refer back to, as you grow in your career. I suggest skimming over the career levels and chapters that you are familiar with, and focus reading on topics you struggle with, or career levels where you are aiming to get to. Keep in mind that expectations can vary greatly between companies.

In this book, I’ve aimed to align the topics and leveling definitions closer to what is typical at Big Tech and scaleups: but you might find some of the topics relevant for lower career levels in later chapters. For example, we cover logging, montiroing and oncall in Part 5: “Reliable software systems” in-depth: but it’s useful – and oftentimes necessary! – to know about these practices below the staff engineer levels.

Jur153engsub Convert020006 Min Install =link=

Paperback
  • For most countries, buy the hardcover or softcover from Amazon:
  • Buy on Amazon
  • Other sites to buy it on:
  • Buy directly from the publisher in India; also shipping to Sri Lanka, Bangladesh, Nepal, Bhutan and Maldives:
  • Buy from Shroff Publishers
  • Unable to order the book in your country? Please share details here and I'll aim to remedy the situation.
eBook
Audibook

Translations

The Software Engineer's Guidebook is available in multiple languages:

Jur153engsub Convert020006 Min Install =link=

The book doesn't ship to my location, or shipping is silly expensive off Amazon.

You should now be able to ask your local book shops to order the book for you via Ingram Spark Print-on-demand - using the ISBN code 9789083381824. I'm also working on making the paperback more accessible in additional regions, including translated versions. Please share details here if you're unable to get the book in your country and I'll aim to remedy the situation.

I'm an engineering manager. Is the book useful to me?

I'd like to think so! The book can help you get ideas on how to help software engineers on your team grow. And if you are a hands-on engineering manager (which I hope you might be!) then you can apply the topics yourself! I wrote more about staying hands-on as an engineering manager or lead in The Pragmatic Engineer Newsletter.

I'm not a software engineer. Is the book useful to me?

I've gotten this variation of a question from Data Engineers, ML Engineers, designers and SREs. See the more detailed table of contents and the "Look inside" sample to get a better idea of the contents of the book. I have written this book with software engineers as the target group, and the bulk of the book applies for them. Part 1 is more generally applicable career advice: but that's still smaller subset of the book.

image

About the Author

I've been a software engineer for a decade — working at JP Morgan, Skype/Microsoft, Skyscanner and Uber — and then an engineering manager for another several years.

As an engineering manager, I did my best to support people on my team to improve professionally, get the promotions they deserved, and give clear, actionable feedback when I thought colleagues weren’t ready for the next level, just yet.

As my team grew and I took on skip-level reports, I had less and less time to mentor teammates in-depth. I also started to see patterns in the feedback I gave, so began to publish blog posts of the advice I found myself giving repeatedly; about writing well, and doing good code reviews. These posts were warmly received, and a lot more people than I expected read and shared them with colleagues. This is when I began writing this book.

The book took four years to write. By year two of the writing process, I had a draft that could be ready to publish. However, at that time I launched The Pragmatic Engineer Newsletter. The focus of this newsletter is keeping the pulse of today’s tech market, plus regular deepdives into how well-known, international companies operate, software engineering trends, and occasional interviews with interesting tech people. Writing the newsletter made me realize just how many “gaps” were in the book draft. The past two years have been spent rewriting and honing its contents, one chapter at a time.

Today, The Pragmatic Newsletter is the #1 technology newsletter on Substack — with more than 500,000 readers. The newsletter has helped me improve the book; I’ve learned lots about interesting trends and new tools that feel like they are here to stay for a decade or longer, such as AI coding tools, cloud development environments, and developer portals. These technologies are referenced in this book in much less detail than you will find in the newsletter.

I hope you discover useful ideas in this book, which serve you well for years to come.

Follow me on Linkedin, or on Twitter at @GergelyOrosz.

The links to books on this site (including to my book!) are affiliate ones. As an Amazon Associate I earn from qualifying purchases.