Next up: Compilers (theory and practice) and reflecting on fatherhood

November 8, 2019 | minutes read

For next semester, Spring 2020, I enrolled in what I expect to be one of the most difficult (yet rewarding) courses: compilers – theory and practice. I’m stoked and at the same time, feeling very nervous.

I’m stoked for several reasons. First, according to the previous semester’s syllabus, I’ll be learning a ton of theory: Automata, finite state machines, grammars, predictive parsers. Many of these concepts I’ve learned on my own with my self directed education.

The second reason that I’m elated is that I’ll be given the opportunity of building an entire compiler, from the ground up! No existing code base, all from scratch. That in itself strikes fear in me.

And third, Steve Yegge’s executive summary (on his post on compilers) — “If you don’t know how compilers work, then you don’t know how computers work” — motivates me, making me want to prove (to myself) that I know how computers work.

So with all that good stuff, why am I feeling nervous?

Normally, taking a master’s course while working is manageable. I often carve out about an hour (or sometimes 90 minutes) of my early morning, studying while eating an avocado toast and sipping a ginger tea, headphones wrapped around my head while people are buzzing in the background at a near by café. In addition to the early mornings, I will leverage my one hour lunches, again watching lectures or banging out code for a (school) project.

But my life has changed.

Although my previous routines and rituals worked well for me for the last several years, my life has changed in significant ways. Most obvious is the arrival of my (first) child, Elliott. With Elliott now here (and no longer just an abstract creature curled up in my wife’s belly), I want to make sure that I’m present for her: not just for the big moments (like her first vaccinations) but for the little, day to day moments (in fact, I had one of the weirdest feelings when I stepped into the office this past Monday, my first day back in the office after 4 weeks off of paternity. while staring into the wide screen monitor pinned up against the wall of my not too shabby cubicle, I wanted to be at home, changing Elliott’s dirty diaper).

Elliott with her thinking hat on

On top of all of this, omscentral reviews (the unofficial review website for courses offered by online master’s program at Georgia Tech) suggest that the course demands anywhere between 15-25 hours per week. Those extra 10 hours gotta come from somewhere. But from where? Sacrifice it from hanging out with my life? Or strumming my guitar? Or singing? Or writing music? Or exercising at the gym? Or playing with my dogs? Or spending time with other friends and family?

You see, there’s only so much time (you already knew that) and all the decisions (small and large) are trade offs. These choice reflect our ethos. The sum of where and how we spend our time essentially defines who we are and what we believe in.

Okay. Rant over.

Back to studying (information security and computer networks) on my day off of work — thank you Amazon for offering a ramp back period, allowing me to work 50% (of course my salary is pro rated) and allowing me to pitch in with my family on Thursdays and Fridays.

I’m Matt Chung. I’m a software engineer, seasoned technology leader, and father currently based in Seattle and London. I love to share what I know. I write about topic developing scalable & fail-safe software running in the AWS cloud, digital organization as a mechanism for unlocking your creativity, and maximizing our full potentials with personal development habits.

View all articles