Introduction

We’ve made a dent into the 21st century and software has been eating the world. Suspenseful tech dramas play out in the news, boot camps churn out entry-level developers in a matter of months, and there’s even an HBO show dedicated to Silicon Valley. In the midst of these trends lies a severe lack of attention to the daily life of the developer—the day-to-day reality that surrounds each line of code. There are plenty of resources available to help the budding developer learn how to code, but what about everything else?

My name is Dave Xiang. I grew up in suburban Massachusetts. My extra time went into playing Starcraft and leveling up Everquest characters. My extra money went into playing Dance Dance Revolution at the local arcade. I majored in Electrical/Computer Engineering (ECE) at Carnegie Mellon (CMU), got a job straight out of college as a firmware developer, and transitioned into full software-mode a few years later. Though I am no veteran developer, I’ve been through the paces in my eight years as a professional and have held a number of distinct developer roles.

Let me give you some backstory. This all began with a video I uploaded to YouTube way back in 2013. Like every Millennial, I wanted to do something. It started off with an embarrassing vlog, a couple breakdancing demo reels, and then I uploaded a video explaining the basics of RAM. I didn’t think much of it at the time, but it was well received. The video didn’t go viral exactly, but it gave me an idea, a hint of potential.

A few years and a bunch of uploads later, and I’ve built a decent fan base of ~40K subscribers. My content reflects all that I’ve learned throughout my career, packing significant personal experiences into short, vlog-style videos. My aim was to create a space where people could come learn about new technologies and get a better understanding of life as a professional programmer. The many positive comments online I’ve received have kept me motivated.

I am not an illustrious coder—I haven’t created my own programming language, and I don’t have a white wizard’s beard. I’ve held a handful of cookie-cutter software jobs and have a knack for story-telling. As such, this book aims to help students, new professionals, and anyone looking for a sneak peek inside the world of software.

With respect to my content, the analytics never lie. My softer content consistently gets more watch time than my technical videos. The stuff about daily life, interview rejections, and “How to be a Better Programmer” have always resonated more with viewers.

Throughout this book I have drawn on personal experiences, but it is also filled with many perspectives and unique stories from my friends. I went around and interviewed everyone I know that is, or has ever worked with, a software developer. Everyone has a special story to tell and a wealth of advice to share. Their names may have been changed but their stories never will.

This book consists of 40 chapters. Each chapter is influenced by someone’s experience in the tech world. I’ve included a mix of concrete advice, abstract meta-principles, and entertaining stories. Each chapter belongs to one of five categories:

Career

Learning

Coding

Daily Life

Stories

This book is a highlight reel of software development life. Enjoy!