Fig: Generating features images with TypeScript

I wrote Fig to easily generate social media images for my blog posts. It started as a Gulp script, but is now Node library written in TypeScript.
Read more →

Beyer Moore Voting Algorithm

Sometimes when you are refreshing your data structure and algorithms, you stumbled upon a new that’s simple and easy to understand, like the Beyer Moore Algorithm used to find the majority element in an array
Read more →

Automate VPN on Android with WireGuard & Tasker

I’ve been an avid user of VPNs to protect my privacy when I’m on insecure networks. Here is how I setup my Pixel 4 Android phone to turn on VPN when on an insecure network.
Read more →

GitHub Actions: Testing Workflows with Nektos Act

Nektos Act is a tool that enables developers to test their GitHub Action Workflows on their local development machine. This can be a significant productivity enhancement because you no longer need to check workflows into GitHub to test them.
Read more →

GitHub Actions: Dispatched & Scheduled Workflows with Inputs

How I accomplished writing a GitHub Actions workflow that needed to be manually triggerable and scheduled via cron AND had inputs.
Read more →

Hello Rust

I started learning Rust this week. I have just a few impressions ankle deep into the new (to me) language.
Read more →

HumiJS: A Raspberry Pi-Powered Humidistat and Thermometer

I took sometime to dust off my Raspberry Pi and turned it into a humidistat for my crawlspace.
Read more →

The Open-Closed Principle

The Open-Closed Principle is an important concept to understand when writing software. In this article, I show how we can apply it to a very simple example.
Read more →

Senior Engineers and Getting Things Done

It’s 2020, and I find myself 12 years into my career, as a Senior Software Engineer, trying to figure out what’s next. I found an article on Hacker News, by Swizec Teller, entitled “Why senior engineers get nothing done”. It articulated very well my experience moving up from and entry level engineer to an incredibly experienced senior engineer. The main idea is as you move up the experience ladders in software engineering, you spend an increasing amount of your time assisting others, collaborating, and coordinating.
Read more →

More Contributions to Open Source

If you remember my story on my first two contributions to open source, I had begun implementing some enhancements in Crawler-Commons that would support an enhancement in the StormCrawler project. My changes to Crawler-Commons were accepted, merged, and a new version of the library, 1.1, was published with my enhancements (amongst many things). Now that the library was published, the dependency on it, in StormCrawler, was updated to use the latest release and I am now able to finish the enhancement in StormCrawler.
Read more →
x