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.
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
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.
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.
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.
Hello Rust
I started learning Rust this week. I have just a few impressions ankle deep into the new (to me) language.
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.
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.
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.
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.