A Comprehensive Guide to Success in the Software Industry
Dan Heller

#Software
#Engineering_Organization
#Engineering_Communication
Software engineering education has a problem: universities and bootcamps teach aspiring engineers to write code, but they leave graduates to teach themselves the countless supporting tools required to thrive in real software companies. Building a Career in Software is the solution, a comprehensive guide to the essential skills that instructors don't need and professionals never think to teach: landing jobs, choosing teams and projects, asking good questions, running meetings, going on-call, debugging production problems, technical writing, making the most of a mentor, and much more.
In over a decade building software at companies such as Apple and Uber, Daniel Heller has mentored and managed tens of engineers from a variety of training backgrounds, and those engineers inspired this book with their hundreds of questions about career issues and day-to-day problems. Designed for either random access or cover-to-cover reading, it offers concise treatments of virtually every non-technical challenge you will face in the first five years of your career―as well as a selection of industry-focused technical topics rarely covered in training. Whatever your education or technical specialty, Building a Career in Software can save you years of trial and error and help you succeed as a real-world software professional.
What You Will Learn
Who This Book is For
Software engineers either early in their careers or about to transition to the professional world; that is, all graduates of computer science or software engineering university programs and all software engineering boot camp participants.
Table of Contents
Part I: Career
Chapter 1: The Big Picture
Chapter 2: Landing Jobs
Chapter 3: Learning and Growing
Chapter 4: Changes
Part II: Day to Day at the Office
Chapter 5: Professional Skills
Chapter 6: Working with Humans
Chapter 7: Shining in an Engineering Organization
Chapter 8: Leading Others
Chapter 9: Adversity
Chapter 10: Professional Conduct
Part Ill: Communication
Chapter 11: A Holistic Look at Engineering Communication
Chapter 12: Technical Writing
Chapter 13: Effective Email
Chapter 14: Describing Problems and Asking Questions
Chapter 15: Public Speaking
Part IV: Technical Skills
Chapter 16: Professional-Grade Code
Chapter 17: Debugging
Chapter 18: Building for Reliability
Chapter 19: Mastering the Command Line
Chapter 20: Operating Real Software
Dan Heller is a Staff Software Engineer in Infrastructure at Uber. In earlier lives, he has led reliability efforts on Uber Eats, built monitoring systems at AppDynamics, helped port iOS to the ARM64 architecture as a Kernel Engineer at Apple, directed the responses to dozens of high-stakes production outages, and managed teams of up to 25 engineers.
Along the way, the author discovered a love of mentorship and had the good fortune to mentor tens of talented engineers. Those engineers inspired him with their hundreds of questions about career paths, technical tradeoffs, and day-to-day effectiveness; when a short blog post on those themes brought a riot ofresponses about maturing professionals' need for guidance, the author set out to fill the gap with this book.









