Howdy!

Welcome to my blog where I write about software development, cycling, and other random nonsense. This is not the only place I write, you can find more words I typed on the Buoyant Data blog, Scribd tech blog, and GitHub.

Ditching the cloud is most likely a bad idea

I have the dubious honor of leading a migration from an on-premise managed colocation facility into AWS. It was necessary to help the business succeed, but frankly I would rather not have needed to do it. Earlier this morning I saw a post about ‘leaving the cloud” by that attention-seeking guy who keeps trying to keynote RailsConf, I had some opinions. I was hopped up on caffeine and free office snacks, and just could not help but share my thoughts in the fediverse.

Read more →

Scheduling work with market dynamics

I had a lucky break in the day and was able to read this blog post which popped up in my social feed. In essence it talks about what Fly.io did to rebuild their scheduler to better match what they’re trying to accomplish. Orchestration and scheduling are topics I like to geek out on, going back many years as part of the Jenkins project. But this quote in particular caught my eye:

Read more →

A lot of engineering management is actually information management

Are you an organized person? Do you understand information flow in your organization? The importance of categorization and taxonomy? You might be a good fit for Engineering Management! Having now spent a number of years in management and leadership positions, I have noticed a number of successful patterns, and unsuccessful patterns. In this post I want to focus on one of the more successful patterns: good information management.

Read more →

ChatGPT and your intellectual property

There is an excessive number ChatGPT screenshots littering social media right now, and not nearly enough critical thinking about feeding data into this novel new chatbot. An anecdotal survey of my timeline includes people asking ChatGPT to solve math equations, write emails for them, create short story prompts, identify bugs in code, or even generate code for them. Behold, the power of AI!

Read more →

The problem with ML

The holidays are the time of year when I typically field a lot of questions from relatives about technology or the tech industry, and this year my favorite questions were around AI. (insert your own scary music) Machine-learning (ML) or Artificial Intelligence (AI) are being widely deployed and I have some Problems™ with that. Machine learning is not necessarily a new domain, the practices commonly accepted as “ML” have been used for quite a while to support search and recommendations use-cases. In fact, my day job includes supporting data scientists and those who are actively creating models and deploying them to production. However, many of my relatives outside of the tech industry believe that “AI” is going to replace people, their jobs, and/or run the future. I genuinely hope AI/ML comes nowhere close to this future imagined by members of my family.

Read more →

Meet Buoyant Data, and let me reduce your data platform costs

One of the many things I learned in 2022 is that I have a particular knack for understanding, analyzing, and optimizing the costs of data platform infrastructure. These skills were born out of both curiosity and necessity in the current economic climate, and have led me to start a small consuhltancy on the side: Buoyant Data. Big data infrastructure can be hugely valuable to lots of businesses, but unfortunately it’s also an area of the cloud bills that is frequently misunderstood, that’s something that I can help with!

Read more →

The fastest way to make Rust Strings

A friend of mine learning how to code with Python was complaining about the myth that “there’s a Pythonic way” to do things. The “one true way” concept wasn’t ever taken seriously in Python, not even by the standard library. Practically speaking, it’s impossible not to have multiple ways to accomplish the same outcome in a robust programming language’s standard library. This flexibility jumped out at me while hacking on some Rust code lately: how many ways can you turn str into String?

Read more →

The Death Ride

Endurance athletes have a misconfiguration in their brain, one that compels them to pursue increasingly foolish goals, for me the Death Ride was as foolish as it was ambitious. The course is 103mi, starting at ~5k feet elevation, with a total of about 14k feet of elevation gain. It is not a race per se, though I’m sure somebody is “first” back to the finish line. What is celebrated are completions. If you can survive all six passes, you’re a winner! The mountains are steep, the road largely exposed, and the heat is oppressive, but hey! Good luck! Have a great ride!

Read more →

Cycling through calories

I never really paid attention to the calories burned during cycling until recently, and it’s still somewhat shocking when I look at it. With my love of cycling rekindled by AIDS/LifeCycle I have spent a lot more time in the saddle this year. Between short criterium races, my longest at 140mi, or the most elevation with the Death Ride, I have needed to be very mindful of my nutrition before, during, and after these rides. In short, cycling can burn a lot of calories.

Read more →