Hi, I'm Joe Cuevas
I'm a software engineer based in San Antonio, Texas, focused on building reliable, maintainable software with C# and .NET.
My work has centered around enterprise software, application modernization, APIs, databases, automation, and delivery workflows. I'm especially interested in helping software evolve in a way that keeps it understandable, testable, and easier to change over time.
I care about architecture when it helps teams move with more confidence. Good structure should make a system easier to understand, easier to test, and safer to change. If a pattern does not help with that, I'm not interested in forcing it.
This site is where I write through what I'm learning.
What I write about
I use this blog as a public notebook for the topics I keep coming back to: .NET, software architecture, DevOps, AI-assisted development, developer tooling, and practical lessons from building and maintaining software.
Some posts are polished guides. Others are notes from whatever I'm learning or experimenting with at the time. The common thread is simple: I want the explanation to be useful to another developer who is trying to understand the same thing.
You'll find posts about things like:
- Building and modernizing .NET applications
- Working with existing codebases
- APIs, databases, and application design
- CI/CD and delivery workflows
- AI coding tools, local development environments, containers, and sandboxes
- Developer tools, command-line workflows, and practical automation
- Engineering habits that make software easier to change
How I think about software
I like software that is reliable after release and thoughtful in design.
That means clear boundaries, useful tests, readable code, and delivery workflows that reduce surprises. I'm interested in architecture because I've seen how quickly systems can become harder to change when structure, ownership, and feedback loops are missing.
My bias is toward solutions that teams can actually live with. Sometimes that means applying clean architecture or domain-driven design ideas. Sometimes it means writing a small tool, improving a workflow, simplifying an API, or refactoring code so the next change is less painful.
Good engineering is not always flashy. A lot of the best work is making the next change safer, clearer, and easier to reason about.
AI and modern development
AI has become a regular part of how I learn, research, write, and code. I'm especially interested in using AI coding tools in ways that are useful without being reckless.
That is why I spend time experimenting with tools like Codex, local sandboxes, WSL2, containers, and agentic workflows. I do not see AI as a replacement for engineering judgment. I see it as leverage, but only when the developer still understands the system, owns the decisions, and keeps the blast radius small.
The exciting part is not just "AI writes code." The exciting part is using better tools to explore ideas faster, tighten feedback loops, and raise the floor for everyday engineering work.
Community and learning
I've spent years learning through books, experiments, side projects, and conversations with other developers. I've also served as a technical manuscript reviewer for Manning Publications and reviewed Jeffrey Palermo's The Five Pillars: Leadership for Effective Custom Software.
In 2025, I joined Jeffrey Palermo on the Azure & DevOps Podcast to talk about my first decade as a software engineer, how I found my way into .NET, what I've learned from enterprise software, and why persistence matters so much in this field.
I'm still learning, still writing, and still trying to get better at the craft.
Outside of code
Away from the keyboard, I'm usually spending time with family, working on side projects, staying active, or going down some new technical rabbit hole that was supposed to take twenty minutes and somehow became a full evening.
That is part of why this blog exists. I like learning deeply, but I also know how easy it is to forget the details later. Writing gives me a place to turn those lessons into something I can come back to, and maybe something that helps someone else too.
Get in touch
The best way to follow along is through the blog, GitHub, LinkedIn, or X.
If you are into .NET, architecture, DevOps, AI-assisted development, or the messy reality of modernizing software, you'll probably find something here worth reading.