Noonian January 26, 2019
Noonian is a research tool for finding the laptop that fits your needs. You can search for laptops and then run comparisons to narrow down your choices quickly. Check it out at noonian.com.
Later on, the plan is to open this up to comparing builds of different computers and their components. With Noonian, I aim to avoid the negative tendencies and shortcomings typically associated with product search by making it easier to shop smarter.
Kicking off my new blog August 30, 2018
I’ve finally rearranged my site enough now to launch a blog! I’m not sure what the content will look like yet, but I think I’ll put up some lessons learned from the various projects I’ve worked on. I may even add some other cool stuff I’ve picked up along the way.
Who knows? This could even be fun!
Cognitive Bias June 7, 2018
Inspired by George Orwell’s 1984, Cognitive Bias demonstrates how the “illusory truth effect” takes hold, even in simple conversation. The game is open source on GitHub and you can play it here.
Bashtion May 8, 2018
A framework for writing reusable and testable modules in Bash. Sometimes using Bash is simply inescapable, but large legacy scripts can be hard to manage. I sought to create a framework that would make it easy to gradually improve legacy code.
Bashtion encourages modular, reusable, and testable code. It does this by setting up Bash with sensible defaults, a built-in error tracing system, support for writing tests, and generates warnings for deviations from best practices. The project is open source and you can check it out on GitHub.
IKS Kubernetes Dashboard Proxy IBM April 1, 2018
The Kubernetes Dashboard is a great way to see what’s going on in your Kubernetes cluster. We created a service that uses IBM Cloud’s authentication to provide convenient access to that dashboard in IKS. My co-worker, Chris Kirkland, wrote a great blog post to announce the new service.
I added monitoring, alerting, and improved the user experience for our each of our failure modes. Today, my team and I continue to maintain and further develop the service.
IKS Logs & Metrics Forwarder IBM June 20, 2017
On IBM Cloud’s Kubernetes Service, you can create a cluster and tick a box to enable logging. The magic behind that little box is enabled with a logs and metrics forwarder that my team builds and maintains.
The metrics and log-forwarding service captures various stats and logs generated in a user’s Kubernetes cluster, then forwards them to the IBM Log Analysis and Monitoring services by default. We picked up the service in its proof-of-concept stage and completely revamped it to fit newer features and our rigorous quality standards to run in production.
read morePython Pool Analysis August 5, 2016
It can be difficult to find the best method for parallel data processing. In Python, I came across six different options to run the same code concurrently, some truly in parallel and some interleaved as green threads. Overwhelmed with options, I decided to dig into the details of each pool and really test them.
I created a CLI to test each of the six different Python pool implementations for both CPU and I/O-bounded workloads. I have open sourced the CLI and my test results on GitHub so other developers can run their own tests or just skip the dirty details of benchmarking and use my own conclusions as a reference.
Home Server November 1, 2013
I manage my Ubuntu server very regularly, running a wide variety of applications from inside virtual machines. More recently I’ve been deploying some internal services within Docker as well.
I run multiple websites via the LAMP stack (Linux, Apache, MySQL, PHP). I also have some instances of Mongo, Cassandra as well as Gitlab used in personal development.
Arc October 1, 2012
Initially an attempt to build a game from the ground up, developing this game engine gave us valuable insight into how games ought to be developed. In the process of creating the Arc reactor, we learned how to work as a tight team with a powerful focus on making an intuitive game library API.
With OpenGL, we built the reactor in Java and we probably spent more time arguing about the right name for a method than actually writing the code; however this did result in a beautifully crafted API! In the end, we realized the project was way over our heads in complexity. We needed the know-how for optimizing for performance and our skills were not yet ready for making the aforementioned game. We learned a great deal through teamwork, code management techniques, and API development. Soon after wrapping up our ideas, we moved on to working on Noonian.