Blog Archive

  • Getting Unblocked, Faster: 5 Lessons from Journalism (and One Bonus Lesson) That Can Help You Ask Better Questions

    Most loyal readers of this site know that before I was a software engineer, I was a journalist. I pivoted to my new career during the pandemic an...

  • Teaching a Reinforcement Learning Algo to Play Queens

    Once you have created infinite games of Queens, you need to play infinite games of Queens. I don’t have time for that, so the next logical step i...

  • Site Updates for September

    Frequent visitors to the site may have noticed some minor layout changes around here. I’ve moved my list of projects to the top of the main page...

  • In Which I Go Down a Complete Rabbithole About Bash Completion

    Ever wonder what is actually going on in your shell when you type, for example, cd ~/myp, hit <TAB>, and the shell completes ~/myproject? ...

  • Leveling Up on the Command Line

    I am lucky in that my first exposure to computers was through the command line. I wasn’t a wizard by any sense when I realized that I could type...

  • Building a Queens clone in React

    I have nearly a 50-day streak on Queens, a daily game from the worst social network. The fact that LinkedIn has managed to trick me into visiting...

  • Learnin' Kubernetes

    At work, all teams are being asked to adopt Karpenter, which, as you can tell from the name, is related to Kubernetes. The adoption is a relativ...

  • Fruit Tracker, my first Fitbit app, is live

    My first Fitbit app is live in the Fitbit app store. You can read about what it does here. Below are some things I learned while making it. ...

  • What Is A Snowflake Stage?

    At work the past week, I’ve been working with large datasets, trying to figure out the most efficient way to process and transform the data witho...

  • More Fitbit Dev Resources

    The developing-for-fitbit journey continues… Breaking changes between SDK 4.x and 5.x The older Fitbit I have, a Fitbit Versa 2, uses software ...

  • Common Errors When Developing for Fitbit

    Or maybe just common to me? Problem: Install failed: RPC call to 'app.install.stream.begin' could not be completed as the RPC stream is closed ...

  • Developing for the Fitbit Versa

    In my previous post I said something about learning Android app development so I could make a Fitbit app. However, silly me– just because Google ow...

  • Firebase Crashlytics and Feature Flagging, or What I Learned at WITS Spring 2024

    The following info comes from the Women in Tech Summit which I attended in Philadelphia this weekend. I may type up a more fluffy post about how it...

  • Local Firebase, or, how I learned to stop trashing my prod db

    Noodle has a lot of the hallmarks of a solo dev side project, which is fair, because it is. Stupid simple deploy pipeline (which is probably a good...

  • Typescript-ifying Noodle

    Over the spring and summer, I built Noodle, a minimalist, privacy-focused event scheduling app. (more) My friends and I use it all the time, but ...

  • Game Off Results

    2048 Invaders got 190th out of over 600 entries in the Github Game Off. This is far better than I expected for a silly Javascript game, my first ga...

  • Hello, Electron

    I mentioned that I wanted to experiment with packaging 2048-invaders as an Electron app to see if it improved performance. Turns out, Electron is e...

  • Hello, world

    First post, first time using Jekyll! I’m really liking it so far. It feels a lot like building a website in the “old days”–the real old days of ju...