Thursday, 11th January 2024
With the new year having rolled around I figured now is a great time to think back and reflect on all the projects I’ve been working on. When it comes to my personal projects, I’ve been working towards creating a cohesive ecosystem between them, that way if I need
With that being said, here’s the status of my current projects
Back when I worked at LeapYear, wwe used Concourse CI for our infra teams workflows. It’s a great, albeit very opinionated tool, but one issue that kept biting us is validating the Concourse pipelines. Enter bagcheck, a validation tool that allowed us to ensure that our pipeline is at least structured correctly during pre-commits and before we actually upload it and potentially break things
Created out of necessity for Scaffold, Bulwark is a remote queue/buffer tool that allowed me to queue up task runs and have workers pull them off the queue when they’re available. Shifting to this approach really helped make Scaffold the quality tool that it is today, so I’m quite happy with what I’ve build here. I do have plans to improve Bulwark over time, but frankly it’s pretty solid for how little time I’ve actually spent working on it
Calligraphy is a scripting language that allows you to write Bash commands inline with Python code. Over these past couple of years it’s proven really useful, especially when working with things like kubectl
and the AWS CLI. Being able to easily run external commands and grab their output has been a lifesaver, allowing for quick and robust development of tooling without having to worry about how the different language APIs work when the CLI can do it all for you. I haven’t touched it much this past year, but I intend on really making it something special this year
Probably my crowning achievement when it comes to my projects, this hybrid database engine has come a very long way and turned into something great. I recently have re-factored the backend to be cleaner, more performant, and allow for new features like indexing data (which frankly should have been built in for a while before I got around to it) and it should be ready for a 2.0.0 release soon. Most of my projects are now powered by CeresDB on the backend, and it’s proved to be a reliable and performant tool that I’m really enjoying working with
It’s been a while since I’ve worked on jsonc, however it’s proved its usefulness. A small Python JSON parser, all it does is add the ability to write comments into JSON files. Super helpful for configuration when you don’t want to use YAML files, and I’ve definitely gotten a lot of use out of it
Hemingway was always more of an R&D project than anything else. I tried to put together a NLP tool to use wave function collapse in order to tag various parts of speech in sentences, however the performance of the tool ended up being not that great. While I’m disappointed it didn’t pan out, it was a lot of fun trying to figure out the best way to implement the approach and I learned a lot from it
I cannot describe how useful this project has been. Quite often in my professional life I’ll need to parse some output from kubectl
or gcloud
or whatever. A lot of times these things will be output as space-delimited tables with variable widths between columns. That’s where multiwidth comes in. It’s allowed be to parse the output from these tools very quickly and easily, which I’ve really been happy about. It’s honestly been pretty solid and hasn’t needed much maintenance over the past year, so I’m happy with how it has turned out
Nimbus is the UI that I created for Stormfront and I’m super pleased with how it’s turned out so far. This website (and soon to be other services) is all managed by Stormfront via my Nimbus interface, which makes managing my various applications super easy and I’m really proud of what I’ve created so far
A project that was originally born out of VelociModel, Notary is an oauth provider that I’ve built. Originally it was a coupled part of VelociModel, but I’ve broken it out into its own project so that I can unify authentication across my projects. There’s still some more work to be done, and I’m hoping to have a 1.0.0 release in a couple months so that I can start migrating other projects over to it
Quiver is the Pythonic language which uses an erlang-like concurrency mechanism that I started on in February 2023. So far I’ve managed to put together the VM and the assembler, I just have a bit more work to do before I can get a beta release out. Specifically, I’m working on building in interfaces to the Golang standard library. The plan is to use what Go has already done instead of trying to re-build all that functionality from scratch (for once I’m not re-inventing the wheel). That work is almost finished, and once it is I’ll then be able to move onto the actual language parsing
Typewriter is the platform that I’m currently using to host this very website. A small application, it pulls content from a GitHub repo of your choice and then renders Markdown files into HTML templates and presents them. A simple tool, it makes managing my site a lot easier since all I have to do it write a bit of markdown and I have a new page up and ready
This year has been huge with Scaffold. A workflow management tool, Scaffold was designed to tackle the problem of deployments being a “living thing”, and it really shines by bundling deployment monitoring with workflows so that changes in state can be handled at any point in the pipelines. I started work on it in July 2023 and have made huge strides since then, and I’ve hit some pretty big milestones with this tool over the past year. I’m excited to see how it’ll improve as more requirements (and bugs) are discovered and to see what tool it’ll grow into
Stormfront is the container orchestrator that I threw together to better understand the challenges that things like Kubernetes face. I started work on it back in September of 2022 and haven’t really touched it much since February 2023, but it’s currently running and hosting this website. As my other projects come along I plan to host other services using Stormfront both for internal and external use
Vergil is a relatively new project designed to act as an ingress proxy. I plan to use this in conjunction with Stormfront later this year, since I’m currently running Nginx to proxy over to my various services. It’s designed to be simple and lightweight, and frankly the performance ended up being a lot better than expected. There’s a whole bunch of additional features I want to add at some point, but for where it’s at it’s pretty good
A MLOps tool, VelociModel was designed to handle code and artifact versioning and the dependencies between the two. I haven’t touched this since 2022 unfortunately, however I have plans to get back into it now that 2024 has rolled around. I did manage to get to an initial release before I had to pivot my attention however, but I have major refactoring plans coming up as I break out the VelociModel components into their own projects/services so that I can re-use them with other projects
A small tool to allow for importing of js
, css
, and html
files into top-level files, this has become the workhorse of the UIs that I develop. Could I learn something like
Originally conceived as a lightweight replacement for the ELK stack, Whitetail was the catalyst for the development of CeresDB. It’s now turned into a relatively powerful tool, and I’ve been working on a major refactor to allow it to not only act as a log viewer, but to also act as a customizable portal similar to Spotify’s Backstage. Additionally, I’ve started building in some monitoring functionality where Whitetail can either get or receive data and display it to users in an easily configurable format. The display aspect isn’t quite working yet, but I’m hoping to get that fixed up and ready for a full release by the end of next month
Additionally, here’s the new projects that I want to work on this year
An Artifactory replacement, Card Catalog will become my tool for storing and accessing files remotely. Additionally, I plan to build in Git repo support and a remote editor so that I can access and edit anything I need at any point
A Jira/Asana/etc. replacement, the plan for this project is to create a very lightweight ticket management tool that I can integrate into other projects. For example, I plan to integrate with VelociModel to allow for process management to influence how assets are versioned.