Why Hugo, Why Not WordPress

My first tour of the WordPress admin was in 2009 (version 2.8 - Chet Baker). In my four years of freelancing after college, I dug through and created countless themes and plugins. After moving to Seattle, I ran product development at LexBlog, a digital publishing company where WordPress was front and center. In the past two years, I worked at Pantheon, a WebOps company supporting Drupal and WordPress website teams.

In sum, WordPress is a large part of my life.

Even now, as I make the decision to walk away from the WYSIWYG editor that is closest to my heart, I know it will remain a large part of my life. If not in my day-to-day, then in my memories.

[Read More]

A Look Back at Georgia Tech’s Master’s in Computer Science

I’m still getting back into the hang of writing for fun after the last few semesters at Georgia Tech wrung me dry with paper after paper painstakingly filled with Matplotlib charts and LaTeX. The first two semesters were more of a programmer’s dream of building FTP servers, implementing MapReduce with gRPC, diving deeply into architecture, and dipping my toe into artificial intelligence.

Once the rubber met the road and my brain turned toward the machine learning curriculum, all bets were off. ISYE 6420 (Bayesian Stats) served as a brutal reminder that my algebra and calculus were not up to snuff, requiring more than one weekend doing nothing but going through a Coursera course or two while making precious little progress against any homework. CS 6601 (Artificial Intelligence) provided some heady moments of implementing Tri A*-search and the Viterbi algorithm, but brought reality crashing down with a 50 page midterm and an equally long final. Meanwhile, CS 7641 (Machine Learning), pushed me further than I thought possible with 4 projects, each requiring a rather large program to support a paper of 10-15 pages. And I’m still not recovered from CS 6476 (Computer Vision).

[Read More]

Cracking My Favorite Products

My time in school has come to a close. It is bittersweet in that my love of learning seemingly knows no bounds. I could spend years exploring more nooks and crannies in computer science, but the time has come to say goodbye.

If that’s the “bitter” part, then the “sweet” part is the job hunt! I’m finding that I enjoy the process of looking at companies, wrapping my head around their business, and evaluating if their product interests me enough to apply to an open position. As part of the job hunt, I am prepping for interviews. A vital step considering I’ve spent the last 18 months with my head down in the land of bits and am applying mostly to product management positions which are a blend of bits, business processes, and user needs.

[Read More]

The Search for Artificial Intelligence: Betwixt Philosophy and Science

I am fortunate to live my life from a very philosophical angle. Most of my pursuits are solitary, and my days are spent in a mind palace where I am free to muse on different topics free of external distractions. This privilege is partly designed, but mostly a matter of happenstance. I am incredibly lucky to have the time and space to spend my days working on a project in the kitchen, twiddling my thumbs in a small balcony garden, or going for runs along a waterfront all while pondering the meaning of life, the universe, and everything.

As of late, my mind has turned firmly to the topic of artificial intelligence. No surprise as the last year of my Master’s will focus on a subset of the field, machine learning. To prime myself, I’m spending the summer reading a combination of philosophy and engineering books that cover the history, theory, and practice of artificial intelligence. I began with a book that has long been on my reading list, Superintelligence by Niklas Bostrom.

[Read More]

How I Got Through Oregon State University’s Online Computer Science Post-Bacc

I enjoy blogging for a number of reasons. It helps me organize, solidify, and advance my thinking. It also provides a platform to put my ideas into a bottle and send it out into the ocean that is the internet. Every so often, a bottle with a message returns to me, usually in the form of an email in my inbox. Most of those emails are about people asking for guidance through (or to get into) Oregon State University’s post-baccalaureate or Georgia Tech’s Master of Science computer science programs.

While I’m still working through GT’s program (should be done spring of 2021!), my time at OSU wrapped up in August of 2019 with a Bachelor’s in Computer Science. As I owe a lot of my personal success to the resources and communities that have sprung up around the program, I wanted to use a moment to write about my path through the degree in the hopes of leaving some breadcrumbs to new and prospective students.

[Read More]

A GT OMSCS Course Review – Robotics: AI Techniques (CS7638)

Robotics: AI Techniques marked the beginning of my foray into Georgia Tech’s OMSCS machine learning and artificial intelligence offerings. As I mentioned in my review of High Performance Computer Architecture (HPCA), my other Georgia Tech courses have focused on computing systems. This was mostly a function of the popularity of the ML/AI courses making them difficult to register for, and the computing system courses being among the most well-regarded classes in the program. However, my chosen specialization for this degree is machine learning, and so this semester it was time to get going.

I chose this as my first AI-centric course as it’s relatively “easy” (I put this in quotes because easy is in the eye of the beholder) and was entirely project-based allowing me to level up on my Python while also giving me time to explore mathematical concepts that were completely new territory. As I’m taking CS6601 – Aritifical Intelligence in the fall, I wanted a course to provide exposure to the field of study without being overwhelming. I can say pretty definitively that this course did all of those things while being pretty fun at the same time.

[Read More]

A GT OMSCS Course Review – High Performance Computer Architecture (CS6290)

For me, Georgia Tech’s OMSCS program’s biggest draw was it’s extensive machine learning and artificial intelligence curriculum. There are other online Master’s programs from well-regarded schools (University of Texas and University of Illinois immediately come to mind), but none as established as Georgia Tech and none with classes that felt worth the time and investment. However, through a quirk of scheduling (most of the ML/AI courses are in high demand and fill up quite quickly), three of my first four classes at GT have focused on computing systems.

Now, it would be unfair to blame this purely on scheduling. It would have been quite easy to take different courses from different specializations, but I got into this program to learn and to challenge myself, and the computing systems offerings come highly recommended from the community of OMSCS students and are known for their difficulty. High Performance Computer Architecture (HPCA) certainly belongs in that conversation, and like the other computing systems courses that I’ve taken so far (Graduate Introduction to Operating Systems and Advanced Operating Systems being the other two), I left the class with a far better grasp on and appreciation for the internals of computers.

[Read More]

The Business of Bits

If your vocation is one that manages computers, you’re in the business of bits. That is to say, you’re somehow responsible for the writing and/or reading of binary digits. Ones and zeros. Bits.

A bit is a fundamental unit for computers. One bit represents a binary logical state as it can be one of two values (again, 0 or 1). Alone, a bit doesn’t tell us much (the value of its information has been measured) but if you string them together magic happens. If you work with computers at a higher level, like writing a web-app in JavaScript or PHP, it’s easy to forget this although you’ll certainly encounter them from time to time. If you work with computers at an even higher level, like say just opening Excel from time to time, then you’re apt to think most of this is gibberish. However, at the lowest levels of software, it’s impossible to escape bits.

[Read More]

Computers Are (Really) Advanced Guessing Machines

One of my favorite (personal) sayings about computers is that they are highly advanced guessing machines. You can see this play out practically with things like branch prediction, where a processor must guess the path of a logical branch based on the history of that branch. This heuristic is analogous to how many humans guess; we use history as a predictor for future events. While HPCA has many similar techniques, this scenario is even more common in the other Georgia Tech course that I’m taking this semester, Robotics: AI Techniques.

Artificial intelligence is the pinnacle of guessing as it employs practical techniques (like search algorithms) and combines them with statistical tricks based primarily on probability density (usually Gaussian) distributions. The mathematics behind these distributions, in my opinion, can often seek to confuse and distract from what is actually a delightfully simple concept.

[Read More]