$ cat post/a-ticket-unopened-/-a-grep-through-ten-years-of-logs-/-i-kept-the-bash-script.md

a ticket unopened / a grep through ten years of logs / I kept the bash script


Title: Debugging DevOps: Real Work, Real Woes


Today’s the 10th of June, 2024. The AI infrastructure explosion has been in full swing since ChatGPT hit the scene last year. Platform engineering is now a mainstream topic, and every team I work with can’t stop talking about it. The CNCF landscape continues to be overwhelming, but that just means there are endless new tools for us to try out.

I’ve been working on a project where we’re integrating WebAssembly into our backend services. It’s fascinating how far this technology has come, and the potential for performance gains is tantalizing. However, debugging Wasm code in production can be a nightmare. Every time I think I’ve got it nailed down, something crops up that requires diving deep into Rust or C++.

Just last week, we had a tricky issue where a piece of Wasm logic started failing under heavy load. It was particularly frustrating because the logs didn’t provide much useful information, and the performance metrics were all over the place. After hours of debugging, I finally traced it back to an integer overflow issue in one of the Wasm functions. The fix involved changing how we handle certain data types, but it also reminded me of why I love working on low-level systems.

On a different front, our team has been dealing with FinOps and cloud cost pressures. DORA metrics are widely adopted now, which means we’re constantly scrutinizing our deployment pipelines to ensure they’re as efficient as possible. Every week brings new challenges in optimizing our infrastructure costs without sacrificing performance. It’s like trying to balance a seesaw while blindfolded—each side requires different attention and adjustment.

Speaking of optimization, I’ve been arguing with some of the developers about whether we should switch from traditional container orchestration tools to serverless architectures for certain parts of our system. The argument is that serverless can reduce operational overhead and improve resource utilization. However, there are concerns around cold start times and the lack of fine-grained control over resources.

One of the fun (or maybe not so much) parts of my job is navigating these arguments with a balanced perspective. On one hand, I want to embrace new technologies because they can offer real benefits. But on the other, I have to consider the trade-offs and the operational complexity that comes with them.

In this context, it’s worth noting the recent flurry of headlines in Hacker News. Julian Assange’s plea deal is a stark reminder of how fragile privacy protections are. Meanwhile, the FTC lawsuit against Adobe for hidden fees and cancellations highlights a growing consumer awareness around business practices. These stories might seem far removed from our day-to-day work, but they do emphasize the broader context in which we operate—technology is increasingly scrutinized by both users and regulators.

In my blog post today, I want to share some of these challenges and lessons learned. Whether it’s debugging Wasm issues or navigating FinOps complexities, each challenge brings its own set of learnings. As technology continues to evolve, so do the problems we face—and that’s what makes this job both rewarding and endlessly interesting.


That’s a snapshot of where I am right now in my role as an engineering manager. If you’re feeling inspired by some of these stories or have any questions about how we handle certain challenges, feel free to drop a comment below!