Blog posts

  • Why I picked up the guitar

    Although I’ve been playing the ukulele for over a year, I decided to pick up the guitar four months ago, when I returned to Seattle after spending the Christmas holidays in sunny southern California. During my visit, my little 13 year old brother and I would occasionally jam. Me on my tenor ukulele strung with…

  • Wrapping up discrete mathematics course

    Last Friday, I took the final exam for my (distant learning) discrete mathematics course and just now I had logged into the student portal (i.e. Blackboard), surprised to find that my exam had not only been graded but my final grade had been posted as well. I finished the course with an 88%, a B,…

  • Graph theory and upcoming final exam

    I just scheduled my final exam for my discrete mathematics course, now that I submitted my homework for the final assignment covering graph theory. Throughout this assignment, I was introduced to a variety of concepts: Leonard Euler and his discovery of Euler paths and circuits, Hamiltonian paths and circuits, and a handful of graph related…

  • Career contentment

    Lately, I’m feeling very content with my career. For the majority of my life, I’ve been constantly searching for some job that would fulfill me. Like many others working in the tech industry, I had a tendency to hop around from company to company every two years, always switching it up, never allowing myself to…

  • Software and system ownership

    Although I sometimes find getting paged for operational issues enervating, I wouldn’t have it any other way. It’s well known that software engineers at Amazon (Web Services) own their systems, end to end. This means that we not only develop and maintain our software, but we operate the underlying system, complete ownership. From a software…

  • Where discrete mathematics meets an interview question

    Last week, I was sitting behind my desk at work, surfing hacker news and and at the top of the website floated an article by the co founder of “Daily Coding Program”, a small tech start up that e-mails daily newsletters with a programming question.  The article shared some of their insights over the past…

  • Blistered fingers

    When I first started playing ukulele, about six months ago, I would occasionally wince when lifting my fingers off of the nylon strings.  Because in the beginning, the flesh of my fingertips were fresh, no callouses. But slowly, over time, after repeatedly striking down on the strings, my fingers gave birth to a new layer…

  • Lessons learned coding the quicksort algorithm in assembly (i.e. MIPS)

    About six months ago, I enrolled myself in a computer organization (i.e. CS1410) course offered by University of Northern Iowa and I’m taking it remotely from Seattle, where I work full time as software engineer at Amazon (Web Services). I’ve completed about two thirds of the course, which consists of sixteen homework assignments and three…

  • Dog palace

    On Saturday, just before the sun began to rise, Jess and I began loading our luggage into black Mazda hatchback for our Christmas trip from Seattle to Los Angeles. Normally, when packing, we haphazardly shove our suit cases into the trunk and squeeze bags between the front and back seats. But this year, we decided…

  • Reading my first science fiction book

    I just finished reading my first science fiction book! Up until three years ago, I really only read non-fiction books (e.g. The Power of Habit, Outlier) with the single purpose of expanding my intellectual knowledge.  I read to increase my depth in a subject (e.g. programming) or read to pick learn about an entirely new…

  • Dog done run & pool party

    Last Saturday, I woke up at 06:00 AM (about 30 minutes later than I normally wake up on weekdays) and slipped into a striped, cotton t-shirt that my sister bought from target for my last birthday and my favorite knee length corduroy shorts, dressing myself in preparation for a 2 mile, dog friendly run in…

  • Practicing my ukulele

    Over the past month, I’ve been investing more time in learning the ukulele, sitting in the office area in the morning, strumming and picking my soprano ukulele for at least 30 minutes either in the early mornings or just before hitting the sack.  In addition to my daily routine, I’ve not only been taking weekly,…

  • Returning to social media?

    For the past year and a half, I’ve disconnected myself from all my social media accounts: Facebook, Twitter, Instagram.  Those platforms still presumably store my data (e.g. posts, images, chat logs) but I no longer log into the system, neither consuming or contributing any content. This disconnect was motivated by several reasons. First, I had…

  • A sneak peak of my wedding photos

    Although Jess and I legally married six months ago (February) in King County Court, a municipal court in Seattle, we threw our wedding ceremony just three weeks ago.  The Saturday ceremony was held in Malibu at Great Spirits Ranch, a ranch that overlooks the Pacific Ocean and Ojai mountains.  Most importantly, this venue was dog…

  • Caretaking

    Every Wednesday morning, I attend therapy. Not the physical kind, where one goes to rehabilitate some injury afflicted by blunt trauma. Rather, I sit in a cushy sofa chair that’s positioned six or so feet away from Roy, my psychotherapist, and I voice not only what I’ve been thinking—the primary focus of cognitive behavioral therapy—since the past…

  • Be a man

    He wears a mask, and his face grows to fit it – George Orwell Are you a masculine man? How does one even define masculinity?  By the American, western definition, a masculine man is someone who carries a heavy beard on his chiseled chin, speaks in a deep Clint-Eastwood voice, commands respect from those around…

  • Friday night in

    My wife (Jess) and I were both dead tired from yesterday—friends had come over to our house and cooked a Vietnamese meal the night before and we fell asleep around just before midnight, a little over two hours past our bedtime—and we had decided to spend the Friday night staying in doors, eating leftover, vegan…

  • A brief introduction to cache organization

    As a software programmer, I always had a vague understanding of how an operating system fetches data from memory.  At an abstract level, I understood that a processor requests data from the memory controller, sending a message (with the memory address encoded) across the bus. But I learned recently that in addition to the system’s…

  • Defusing a Binary Bomb (phase 1)

    http://blog.itsmemattchung.com/2017/02/28/csapp-defusing-the-bomb-phase-1/ I password protected the original post (email me for the password if you are interested in reading it).  When I posted the original link on reddit/r/compsci, multiple commenters suggested that I delete the article to avoid students from cheating (which was not my intention).  I then sent an e-mail to the professors (at CMU) and they kindly replied, asking me…

  • Protected: Defusing a Binary Bomb (phase 1)

    There is no excerpt because this is a protected post.

  • How does the modulus operator work?

    As a programmer, I’ve written a line or two of code that includes the modulus operator (i.e. “return x % 2“).  But, never have I paused to think: “How does the underlying system carry out this operation?” In this post, I limit “underneath the hood” to the lowest level (human readable) programming language: assembly. So, I’ll take…

  • Here’s some assembly instructions … now write the corresponding C code

    A wide grin formed on my face, after successfully completing an exercise (from Computer Systems a Programmer’s perspective) that required me to write C code, based off a sequence of a six assembly instructions: void decode1(long *xp, long *yp, long *zp) { /* xp stored in %rdi, yp in %rsi, zp in %rdx) decode1:     movq (%rdi),…

  • Let’s get lower than Python

    Like a huge swath of other millennial, I dibbled and dabbled in building websites —writing in html, css, and javascript—during my youth, but these days, I primarily code (as a living) in favorite programming language: Python. I once considered Python as one of the lower level programming languages (to a certain degree, it is) but as a I…

  • Calculating page table entry size

    How many page table entries are required given a virtual address size and page size? I was confronted with this question when reading Computer Systems from a programmer’s perspective on virtual memory management (VMM) which forced me to reread the chapter, over and over. It wasn’t until I forced myself to close the book, step away from the…