• Hangman Solver in Python

    A coworker told me about an interview question where you’re asked to develop a hangman solver. It seemed like a fun challenge so I spent the evening working on it. Here’s how it went. The Game Before I design my algorithm, I needed to create a game. Fortunately, Hangman is pretty straightforward to create. However, […]

  • Programming != Game Development

    This year I decided to give the GMTK Game Jam a try. I’ve been programming for 20 years now and I’ve dabbled with Unity a while ago. I should be able to do this.

  • Writing ETLs from Scratch

    As I mentioned in my last post, I wrote Extract, Transform, Load (ETLs) from scratch. In this post I will elaborate on how I went about doing that, the design choices I made, and the modularity I incorporated. What are ETLs? ETLs, in short, “extract” data from one source in a certain format, “transform” it […]

  • Lessons from Launching a Side Project

    After almost 2 years since I got the idea, I finally launched my side project. Development Let’s start with the stack. I’m still using Rails for the back end except now Rails 6 is out. I did try Vue.js for a while but I quickly abandoned it in favour of React. While Vue is much […]

  • Minimum Viable Product (MVP), Vision, and CRUD

    If I were to define my own definition for Minimum Viable Product (MVP) to be used in a textbook it would be the following: The set of features that is necessary to gain and maintain early users. It doesn’t sound that hard, does it? Twitter? Users should be able to post messages, they should be able to […]

  • Complexity in Software

    When it comes to complexity, somewhere between Hello World and Google exists every other piece of software ever written. What makes one piece of software more complex than another? Lines of code might be an obvious answer especially considering the link above but I believe that complexity causes an increase in the number of lines of […]

  • Preventing Feature Creep

    As we developers work on our software, we get ambitious. We want to add features that are cool that will make life easier for our users. This may seem like a good thing at first, but, in the words of Admiral Ackbar, it’s a trap. I have come to such point working on Outside Tasks. Having […]

  • DMCA, Easylist, Git, and functionalclam: A Solution

    Recently there was a post on /r/programming entitled Ad blockers under attack: DRM through the DMCA. The gist is that a DMCA claim, usually reserved for copyright infringement, was used to take a domain name (functionalclam.com) out of a blacklist that adblockers use to know which domain names to block. The maintainers of the git repo […]

  • The Downside of Following Tutorials

    Since I am learning iOS development as I go, often times I follow tutorials to get things done quickly instead of digging through documentation to figure out how to use a certain class in the SDK. The problem is that tutorials are meant to get you from not having a feature to having it with […]

  • Usability vs Functionality

    When developers work on an application, we tend to want to make it do everything that is technically feasible. We want to make everything to be customizable, update in real-time, etc… If you don’t control yourself and try to minimize nice-to-have features, you need really good UX to keep the user from getting confused or […]