Google Sheets is one of those tools that feels forgiving, and it becomes miserably unhelpful when it breaks. You type something in, drag a formula down, and everything looks fine — until a formula starts pointing at the wrong cells, or a perfectly good ID number turns itself into a date. After years of living […] The post Fix Common…
Atomic Object
https://spin.atomicobject.com/ · 158 posts · history since 2026 · active
Today
26 Jul
A couple of weeks ago, I had the pleasure of attending the AI Engineer World’s Fair. I stepped off the subway and made my way up the stairs toward Moscone West, nervous and excited. Finally — a few days to devote my full attention to sorting the real innovation from the hype. And I came […] The post It’s Not…
25 Jul
In late June, our office quietly crossed a threshold worth reflecting on. With two new accelerators joining the team, we now have 9 women and 7 men in our Raleigh office. For the first time, women make up the majority of the people at my workplace, something not many in the tech industry can say. […] The post Atomic Object…
24 Jul
A couple of months ago, I wrote about my client team’s decision to make human code review optional: an approval from an AI tool became all that was needed to merge. At the time, I said it was too early to tell. Now, enough time has passed to share some honest reflections. The Norms Didn’t […] The post Here’s What…
23 Jul
Agentic development is fast. An agent can scaffold a feature, write the tests it thinks it needs, and open a pull request before you’ve finished your morning coffee. That speed is real, and agentic development is not going away. Which means the QA analysts who thrive in this brave new world won’t be the ones […] The post Keep Calm…
Agentic engineering is changing the shape of how software teams work, and in doing so, is raising the value of judgment work. Strong consulting on what’s actually worth building becomes an even larger differentiator. Framing ambiguous problems clearly, validating the assumptions that a plan rests on, and delivering impactful outcomes are all skills that Atomic […] The post Who Decides…
22 Jul
If you’ve been a developer for a while, you’re probably adopting AI one way or another. I still remember the early days when prompts never got me what I wanted. I figured it would be a while before AI took over my job. Within weeks, however, as the models improved and I got better at […] The post Grep Is…
21 Jul
Every software system fails. This is inevitable. But burying errors doesn’t make them go away. As developers, we want to believe that our systems work as intended. So it’s easy to gloss over error handling. Until something actually goes wrong, it’s easier to log something vague and return success anyway, or convert a specific error […] The post Error Handling…
20 Jul
On a recent project, I watched a team spend the better part of a week tracking down a single regression. The pipeline was a long-running simulation suite. Each test run took hours. There were dozens of commits to check, and the only way to check them was manually: run the sim, wait, evaluate the result, […] The post Here’s How…
19 Jul
Whether you use or even like AI, the genie is out of the bottle. What used to feel like a more personalized Google search can now index your entire codebase, explain how unfamiliar areas are structured, warn you of system design implications, and build features of surprising complexity. (Assuming, of course, you have the vocabulary […] The post A Skeptic…
18 Jul
A product requirements document is a short, shared artifact that states the core problem a piece of work solves and what has to be true to call it done. It is not a full spec with every edge case and acceptance criterion. It sits higher than that: the problem, the goals, the boundaries of scope, […] The post Build Alignment…
17 Jul
I run a handful of Ubuntu virtual machines in Proxmox. They host applications via Docker Compose, VPN service, NUT services, and a few other odds and ends around my home lab. Virtual machines I’ve created within the last year and a half or so are entirely under the control of OpenTofu (for creating the virtual […] The post How I…
16 Jul
A few years ago, I wrote about the difference between UI and UX design, using the example of Joanna, a busy mom, hiring a designer to help design storage containers to organize her kitchen. Ira, the UI Designer, designed beautiful, ergonomic containers that were more than she had hoped for, but they didn’t solve Joanna’s […] The post Solution-First UX…
15 Jul
With the rollout of Atomic Object’s agentic delivery model, keeping my thoughts straight has been more challenging than before. Though agentic delivery noticeably speeds up the implementation process, it also increases context-switching for team leads and product folks. It feels more pressing to keep my memory and thought processes in good order. Something that helps […] The post How I’m…
14 Jul
For a recent project, I needed a small, representative sample of a large table, and a few circumstances made that less straightforward than it sounds. Here’s the sampling approach I landed on. The job itself was simple enough: run some processing over a configurable slice of a very large table. Not the whole set — […] The post Give Me…
13 Jul
Look at how most software projects are laid out and you’ll spot the same quiet assumption baked into the timeline. There’s a block at the front for design. Discovery, research, some sprints of wireframes and mockups. Then a handoff. Then a long stretch labeled “build.” The design block has a clear end to it, and […] The post Design Doesn’t…
My husband runs a pop-up bakery called Molta, and he needed a website. Nothing fancy: who he is, what he bakes, where to find us, etc. For a site this small, the obvious move is to pay for a Squarespace site (or something similar), click a few templates together, and be done in an afternoon. […] The post How to…
12 Jul
As our Raleigh office settled into its new space, we kept coming back to one question: what should we do with our entryway? There’s a big wall visible right from the elevators, which is the first thing people see when they step into Atomic Object Raleigh. We decided to bring in a local artist, Bella […] The post The Story…
11 Jul
For most of software’s history, the limit on what you could ship was your hands: how fast you could type, how much you could get built before the day ran out. Agents lifted that limit. A developer can now run several streams of work at once and get through more in an afternoon than used […] The post With AI…
10 Jul
Coding agents are getting pretty good at building screens from a screenshot, Figma link, or a loose description of what you want. But “pretty good” can still mean a lot of small cleanup work: the button is almost right, the spacing is close, the font weight is questionable, and the loading state somehow feels like […] The post Want Better…
9 Jul
As an American adopted from China, I have always wanted to learn Mandarin to connect more with my culture. After enrolling in a local beginner Mandarin course, I decided I wanted to use flashcards to supplement my learning. I tested out a few flashcard apps, but wasn’t fully satisfied with any of them, so I […] The post 5 Reasons…
8 Jul
I went into a recent project excited. The newer LLM tools had crossed a threshold for me. They felt like something I could finally lean on hard for a tricky visual-design problem: cross-domain research, concept generation, and prototyping all running in one loop. I was genuinely confident going in. And it delivered. The LLM helped […] The post Where the…
7 Jul
It’s three in the afternoon, and Claude Code asks me, for the 40th time today, whether it can run a command. I glance at it, hit Allow, and keep moving. I didn’t really read it. The thirty-ninth time, I didn’t read that one either. That reflex is the problem. Every permission prompt is supposed to […] The post Permission Fatigue…
6 Jul
I am no stranger to working up and down the stack. To me, it’s part of the challenge, and I love a complex chunk of work. I will choose stories in the backlog requiring parallel frontend and backend changes just for fun. Lately, I have come to appreciate how simple tools like Swagger make it […] The post Swagger In…
5 Jul
In the past few years, AI has woven itself into nearly every corner of how we work, communicate, and make decisions. Hiring algorithms screen (and discard) resumes before a human ever reads them. Automated systems flag fraud, recommend medical treatments, and help determine prison sentences. The assumption underlying all of this is that machines, unlike […] The post Bias and…
3 Jul
I sat across from Michael Levy at a room full of healthcare and technology leaders recently. We were talking about why digital transformation projects fail at such a startling rate, 95% of them, by some estimates. His answer surprised the room. It wasn’t the technology, the budget, or the vendor. It was this: organizations don’t […] The post Discovery Is…
2 Jul
My current software project had an issue, and, over time, it has become more of an issue as coding agents have gotten better. That problem is running parallel agents in our codebase while providing them strong methods to validate their work. The codebase was started in 2021. That’s before agentic coding was a thing, let […] The post Your Coding…
1 Jul
Perhaps due to working with AI coding agents inside of a VM, I’ve found myself spending more time in terminal applications lately. Terminal Applications In addition to the agent harness applications, I’ve also been using several other TUI (Terminal User Interface) applications heavily. lazygit – a terminal UI for git that makes complex operations simple. […] The post Here’s Why…
30 Jun
I recently started creating a real-time ship combat game where multiple players compete to be the last one standing. The game needs to be playable over LAN, and I would like to create SDKs for developers to write bots to play in addition to human players playing themselves. To achieve this, I first created a […] The post Keep Web…
29 Jun
During the definition and planning phase of our current project, my team generated a lot of written specs. Seventeen feature specs, plus a PRD, a data model, and a handful of supporting reference docs. All of them are in Markdown, all living in the repo. That’s great for handing context back to an AI assistant, […] The post Tired of…
28 Jun
I would bring my cats everywhere with me if I could, including to work. Since that’s not really an option, I decided to make them part of my Codex setup instead. I used codex-pets.net to turn my two tabby cats into a custom Codex Pet. To upload a Codex Pet, you need two files: pet.json […] The post I Turned…
27 Jun
Years ago, I started a Zettlekasten-style collection of notes using Emacs’ org-roam package. A Zettlekasten system is typically comprised of hundreds of linked notes covering all topics of interest to the maintainer (if you’re interested in learning more on such systems, I recommend the book How To Take Smart Notes by Sönke Ahrens). It can […] The post Teach Your…
26 Jun
My partner is a full-time artist, and a lot of that work comes from art commissions. And it isn’t a small amount of commissions either. There are some points where he takes up to 90 commissions at once. And for a long time, the whole operation ran on sticky notes. To me, the process was […] The post Automating an…
25 Jun
Frontier AI models today are incredibly powerful. They excel not just at writing bits of code but also at assisting with planning and architecture. They are also increasingly expensive. Early on in the AI era, developers had the luxury of tossing around tokens willy-nilly, delegating any task imaginable. Today, reality is starting to catch up. […] The post A Hybrid…
24 Jun
For most of my career, I had a decent sense for answering two questions: how much work is ready to go, and how long is it going to take? I could look at a healthy backlog with a couple of weeks of estimated stories, do some math, and give a pretty good guess of what […] The post Human Habits…
23 Jun
Rails gave web developers a durable caching model. Cache the outer fragment. Reuse the inner fragments that did not change. The Rails caching guide calls this Russian doll caching. You Can Use Russian Doll Caching at the Edge. The same idea now applies outside the template. The dolls can span the browser cache, CloudFront, the […] The post Russian Doll…
22 Jun
More than once in my career, I became that architect: the one the support team calls when something breaks in production, when a change request related to a complex feature is raised, or when a new team member needs to understand why the system works the way it does. Requirements documents, use cases, and architectural […] The post The Knowledge…
21 Jun
I live in a small apartment in Chicago with no closets, which means storage is not something I can take for granted. It is an ongoing design challenge. So, I’ve had to get creative. Every square foot has to earn its keep, while still feeling aesthetically like “me.” I built an open-shelf “closet” in my […] The post Working with…
20 Jun
If you want to see where clinical AI actually breaks, skip the vendor deck. Watch season two, episode six, of The Pitt. Dr. Baran Al-Hashimi (Sepideh Moafi) rolls out an AI tool that writes the charts. It cuts documentation time by eighty percent. More time at the bedside. More time at home. Who says no […] The post What “The…
19 Jun
The longstanding adage that communication is key will ring true perpetually, especially when executing software delivery. Proper communication has the power to set the foundation for a project to either consistently thrive or create continuous bottlenecks that adversely impact productivity. The recipe for remarkable communication blends audience awareness, precision in tone and word choice, proactiveness, […] The post How Ineffective…
18 Jun
To lay things out on the table, this isn’t an “AI Bad, Humans Good” blog post. No-code tools have made it easier for non-developers to prototype basic apps, and coding agents have made it quicker for developers to get the first pass of a feature written. Agentic development hasn’t made writing human-maintainable code any easier. […] The post Write Human…
17 Jun
Shadcn is a set of reusable UI component patterns for use with React applications. However, instead of importing the elements like a traditional component library (@somewhere/ui), you add a local copy of the component source files into your project. This allows you to customize, extend, and shape the components to fit your particular needs. Shadcn […] The post Shadcn 101:…
16 Jun
With the recent changes in agentic delivery, costs of development are going down, and processes are changing. That means there’s more time to try different methods and figure things out. Software today can still be clunky and irritating, with systems that take a lot of manual effort to glue together, but AI should be learning […] The post Will AI…
15 Jun
Agentic Android development works best when agents can build, install, run, test, and validate features against real devices or emulators without relying on Android Studio as the manual control center. In this article, “skills” means reusable agent instructions for a specific task, and “workflows” means separate working copies or environments where an agent can safely […] The post How to…
14 Jun
As a software developer at Atomic Object, one of the expectations (and perks) of the job is taking advantage of professional development opportunities outside of work. Recently, I attended Code Remix, a developer-centric conference in Miami as my annual professional development experience. Through the conference I got to learn about a lot of really interesting […] The post Software Development…
13 Jun
For the past four months, I have been volunteering with the Prison Creative Arts Project (PCAP) initiative as a facilitator running creative writing workshops inside Ann Arbor prisons. Coincidentally, here at Atomic Object, I am currently working on a team creating digital systems for the Michigan Court System. PCAP was a truly impactful experience, and […] The post The Numbers…
12 Jun
We’re in a time of accelerated innovation. Some say the AI bubble is going to pop, while some are betting everything on it being the future. As a participant in the development industry, sticking your head in the sand can be fatal. Yet, hopping on the hype train can seem intimidating or feel aimless at […] The post AI This,…
11 Jun
AI coding tools are getting wildly useful. They can scaffold features, explain code, write tests, refactor awkward functions, and sometimes make you feel like you suddenly hired a few extra developers who never sleep. That is exciting, and it really can change how fast teams move. But there is a trap hiding in all that […] The post Using AI…
10 Jun
The recent Trivy GitHub Actions security incident got me thinking more seriously about the security model around CI systems. Most teams spend a lot of time thinking about dependency security, but I increasingly think GitHub Actions workflows deserve to be viewed through the exact same lens. In some cases, they may actually represent a larger […] The post Is GitHub…
9 Jun
Update: This post was written prior to the GSD repository being abandoned by its maintainer. The future of GSD is uncertain, but the lessons from this can be applied to other spec-driven development frameworks. My Intro To GSD I first used the Get Shit Done spec-driven development system for Claude on a client project. This […] The post Getting Shit…
8 Jun
As a Junior Developer who is just starting out, I never really got to witness the world of Software design without virtual backlog management. I often hear about the boards filled with sticky notes as the backlog stand-in, but I always just assumed that since we don’t do it anymore, it must be inefficient and […] The post The Value…
7 Jun
A few weeks ago, I asked my younger brother a very random question: “What would the consequences be of putting higher performance shock absorbers in my car?” Question One He led me down an interesting conversation about the costs, the considerations, the damage it could do to my very simple Mazda CX-30. We chatted about […] The post My Encyclopedia…
6 Jun
Not all questions are created equal. Recently, some discourse has been happening in my early career program around finding our voice, participating in meetings, and asking questions. This tends to be harder for early-career people for a multitude of reasons. I think a common denominator for a lot of the reasons comes down to self-limiting […] The post How to…
5 Jun
Every year, the Merge conference in Grand Rapids brings together software developers, designers, product leaders, and technology professionals from across West Michigan to discuss how our industry is changing. Organized by Software GR, the conference has become a space for practical conversations about software development, collaboration, leadership, and emerging technology trends. For the past few […] The post From AI…
4 Jun
Below, you’ll find a tour of CQRS, Event Sourcing, and Projections as they actually appear in a real production NestJS + KurrentDB + PostgreSQL + Drizzle codebase. It’s roughly a 15-minute read. The goal is not just to discuss what these patterns are, but why they are shaped the way they are, and where they […] The post CQRS and…
3 Jun
Smart home devices are usually sold on convenience. Control the lights from your phone. Turn down the thermostat from bed. Get a camera notification when someone walks up to the porch. Automate the boring stuff and feel like you are living slightly closer to the future. That future gets a lot less fun when the […] The post Your Smart…
2 Jun
Have you ever wondered if there was an easier way to sort imports automatically in your Angular project? Disorganized imports make code harder to read, slow down code reviews, and cause unnecessary merge conflicts. Sorting them manually requires a lot of effort — what if you could automate it? Introducing simple-import-sort simple-import-sort is an ESLint […] The post How to…
1 Jun
A few months ago I watched a sprint board do something I’d never quite seen before. Story cards weren’t stacking up in In Progress. They were stacking up in Ready for Review. On every project I’d ever worked on, the bottleneck was writing the code. Suddenly, on this project, it wasn’t. So how’d we get […] The post When Code…
31 May
We are producing more with AI. What we’re producing less of, apparently, is honest reflection on what that actually means. The internet is full of frameworks, prompt guides, and tutorials promising you’ll “10x your productivity overnight.” The question nobody seems to want to answer is whether any of it is actually good. Most of it […] The post Hard-Won Lessons…
30 May
How do you currently give feedback to new team members as they’re onboarding in their new role? How do you set clear expectations for them of what success looks like? When we onboarded two delivery leads to the Ann Arbor office last year, we experimented with a lightweight informal feedback framework. This framework allowed us […] The post Liked Best/Next…
29 May
I’ve been talking to a lot of people lately who say some version of the same thing: “I know I should be doing more with AI, but I don’t know how to start.” Each week, it seems there are new models, new tools, new patterns, new takes on Twitter. It’s a moving train, and figuring […] The post Unsure How…
28 May
At Atomic Object we have a pair lunch policy that allows Atoms to take each other out to lunch on the company’s dime. Free lunch is a no-brainer, right? Well, yes, but every time I decide I’m in the mood for a pair lunch, I need to make a few decisions: Who do I ask? […] The post I Almost…
27 May
Agentic development tools have started to change the way I approach software work. Instead of only asking for a small autocomplete suggestion or a quick explanation, I can now ask an agent to inspect a problem, propose a plan, make code changes, and even iterate on a solution. That can be incredibly useful, especially when […] The post How I…
26 May
Most list endpoints start the same way: a SQL query, a few joins, a LIMIT/OFFSET, and a DTO. It works fine. Until it doesn’t. I had a breaking point with a list page that needed to filter by data three relationships away from the root entity. The join got ugly fast. Pagination got weird. Adding […] The post Graph-Style Queries…
24 May
Whiteboard interviews have quite a reputation in the software development community. Dreaded by most, many companies use intense “LeetCode” style questions, designed to test for depth of algorithmic knowledge. Most of the time, this style of interview can result in those who have only spent time grinding practice questions passing with flying colors, while neglecting […] The post Whiteboard Interviews:…
23 May
There’s a lot of talk about growing as makers. While individual contribution can be beneficial, it’s important to highlight and lift up the work your teammates are doing. It’s important for strengthening client relationships, reducing silos, and bringing your fellow workers’ strengths to light. We’re going to talk today about small but intentional habits to […] The post Small Habits…
22 May
Spec-driven development uses upfront documentation to drive implementation. That looks, on the surface, like Waterfall. It isn’t. The difference comes down to four behaviors, which are observable, not philosophical. The Short Answer Waterfall treats documents as gates: write, approve, freeze, hand off, build against. Spec-driven development treats documents as a working tool: written and rewritten […] The post Spec-Driven Development…
21 May
Wave Function Collapse is an algorithm that generates structured randomness. There are plenty of reasons to want structured randomness. Maybe you want to create a randomized world map, with rivers coming out of lakes, and mountains ranges gradually sloping, like in Minecraft. Or maybe you want to create randomized towns, with the layout of the […] The post Introduction to…
20 May
Eight months ago, I joined a large-scale database migration project. I had already written C# in small Unity AR applications and multiplayer game prototypes but nothing quite of this magnitude. My prior projects had tight scopes and short feedback loops. This codebase has hundreds of thousands of lines, a deep domain, and translation logic driven […] The post From Unity…
19 May
RGB has been the standard color model on the web for decades. It’s widely supported and works well. But it wasn’t designed to replicate the way humans perceive color. oklch() models lightness, chroma, and hue in a way that mirrors human vision. That makes color manipulation more predictable, accessible, and expressive than RGB allows. What […] The post oklch() in…
18 May
Not everything needs to be AI-powered, even within an AI-first tool. I recently learned this while writing a Claude skill paired with the Claude in Chrome extension, and I got a lot more clarity on how to get the most out of these tools. Here’s what I learned. Writing My First Claude Skill I was […] The post Don’t AI…
17 May
As a software developer, you will need to become familiar with many tools and technologies as you work and grow in the field. This is not helped by the fact that it feels like new tools are being released every day, not to mention new feature updates added to tools you already know. The easiest […] The post Your Hobbies…
16 May
Five years ago, I had just finished three years working here at Atomic Object, and wrote up a blog post reflecting on some of the projects I had worked on, to give a window into what the job is like. Now, in 2026, it’s been eight (!) years since I started. I don’t think I’ve […] The post An Overview…
15 May
One of the more noticeable changes with coding agents shows up when you sit down to pair with someone newer to the codebase for mentorship pair programming. On the surface, things can look like they’re going unusually well. Code appears quickly, the structure is reasonable, and there are fewer moments where someone gets stuck trying […] The post Thanks to…
14 May
I’ve been using Claude Code steadily for the last three-plus months. I wouldn’t call myself a power user, but I’ve settled into a rhythm that works: tight PR loops, lean on it for real feature work, push back when it wanders. Why I Finally Bothered with Claude Code Insights The tooling in this space moves […] The post What I…
13 May
On a recent software development project that already planned to use AWS, we used AWS Cognito for authentication. Cognito is Amazon’s managed identity platform for web and mobile apps, offering features like MFA, password reset flows, and sign-in. On paper, it’s a strong fit for projects already using AWS. In practice, the rough edges cost […] The post 3 AWS…
12 May
Most agent setups are overbuilt. You can feel the framework wanting to happen before the problem is even clear. There is a planner, a runtime, a memory layer, a tool registry, a workflow engine, and a long explanation for why all of that is necessary. Then you look at the actual job, and it is […] The post Try This…
11 May
One might think computer vision models are supposed to be easy to put into production. There are whole companies built on that promise: label a few images, click train, click deploy, done. In practice, it’s messier. Most of us working with these models aren’t ML experts, and moving fast to keep up with the industry […] The post Lessons from…
10 May
I’ve been working with AI long enough to be past the “please write an epic poem about my dog” phase and into something that actually moves my work. The real shift for me, in the last couple of months, has been using tools like Claude Cowork and Cursor. It’s not because they generate better prose […] The post 26 Things…
9 May
I’ve been approached more times than I can count by organizations on LinkedIn, all of them claiming to be impressed by my background and eager to feature my story in their publication. After doing my research, the pattern became clear. Your name gets listed in a booklet for free, but your photo, your story, your […] The post The Visibility…
8 May
Anyone who has spent time navigating downtown Raleigh, N.C., knows the routine well. You have a clear destination in mind, you know the most direct route, and with any luck, the lights will cooperate. But Raleigh is a city that never stops evolving. Road construction, lane closures, and unexpected detours are as much a part […] The post Navigating the…
7 May
Pair programming has always had a bit of a reputation problem. It’s easy to look at two people working on the same task and see inefficiency. More coordination, more talking, less obvious forward progress. Even on teams that value it, there’s usually some quiet pressure to just go knock something out instead. That tension has […] The post If You…
6 May
There’s an assumption floating around right now that working with AI is supposed to feel effortless. When you prompt AI, you describe what you want, iterate a bit, and eventually land on something usable. Sometimes that works. More often, it leads to a long chain of almost-correct outputs, missed edge cases, and issues that only […] The post How to…
5 May
Recently, my software development team needed to upgrade our Expo version (it was at 52). Doing so in a monorepo containing multiple web and mobile apps was a big job—when we upgraded, we’d need to verify that the React and React Native versions in all the apps in the monorepo were compatible with the new […] The post How My…
4 May
Recently, I was onboarded to a React Native project on a new developer laptop. I realized that the initial setup to launch the app had a few tricks and small gotchas that weren’t obvious at first. Here’s a simple breakdown that will hopefully help if you need it! Setting Up Developer Tools Before configuring platform-specific […] The post A Beginner’s…
3 May
Detroit has always been a city of systems. Long before people talked about “platforms” or “digital transformation,” Detroit was solving a harder problem: how to coordinate thousands of moving parts with precision. Assembly lines, supplier networks, logistics routes—these weren’t just operations. They were carefully designed systems, built to be reliable under pressure. If one part […] The post Software Is…
2 May
I give a talk called “Claude for Normies” to rooms full of professionals who are feeling confused and stuck. They’re taking shelter as the AI earthquake upends work (or at least conversations about work on LinkedIn) around them. The talk walks attendees through a seven-level Claude adoption framework. I’ve run it enough times now to […] The post Offices are…
1 May
97% of executives say they’ve deployed AI in the past year. Only 29% say they’re seeing real ROI. (Both from Writer’s 2026 Enterprise AI Adoption survey — 2,400 global leaders) I’ve been sitting with that gap for weeks now — not because the numbers surprise me, but because I keep watching it play out in […] The post “Hours Saved”…
30 Apr
One important practice we employ at Atomic is developer rotations. This provides benefits for the longer-term success of the project and keeps our developers at the top of their game. While you might assume that long-running project teams, living with the project through its conception, implementation, and maintenance, might be the most effective approach, I’ve found […] The post How…
29 Apr
My software development team had a client who wanted to represent activity on a stage, not in the usual top-down layout that shows up all over the internet. A 3D stage? Reasonable request, slightly unreasonable visual problem. My wacky idea: what if this was mostly CSS? Maybe a little JavaScript. But mostly CSS. It turns […] The post How to…
28 Apr
A few years back, I created portable-color for adding color to shell scripts. Then I deprecated it in favor of a new library, dye, that fixed a number of things that bothered me about portable-color. dye eventually added its own built-in templating, which meant users could just print a string full of things like “{{red}}” […] The post How I…
27 Apr
Previously, I showed how you can use JSDoc and jsconfig.json as a replacement for TypeScript style type checking — without a build step, no less. At the end of that post I teased an ESLint follow-up. And here we are, I’m happy you’re here. First Things First Before jumping in, I wanted to address a […] The post More on…
26 Apr
I’ve never really been great at side questing in video games. In most games I play, I tend to lock in on the main storyline. The objective is clear, the path is defined, and progress feels measurable. Side quests exist but they get pushed off with the assumption that I’ll come back to them later. […] The post Software Development…
25 Apr
Over the past 14 months on my current project with an AI startup, I’ve typed out an average novel length’s worth of meeting notes. Here’s a quick summary: Metric Value Total files (1 file per meeting) 132 Total words 77,967 Total characters 429,329 Average words per file ~590 Average characters per file ~3,252 It might […] The post Why I…
24 Apr
I don’t know about most developers, but there is a very specific kind of sinking feeling you get when you join a project, clone a repo, and realize you’ve just inherited a total disaster. I’m talking about the kind of codebase where you don’t even know left from right: unhelpful generic variable names, no documentation, […] The post Help! I…
23 Apr
In previous posts, I examined claims about “building a product in one day” and discussed my attempt to take a game from wireframe to working prototype. Here’s what happened next. By the time the game was fully built, tested, and stable, there was one step left that felt harder than anything technical: actually launching it. […] The post Using AI…
22 Apr
In a previous post, I wrote about the idea of “launching a product in one day.” Today, let’s talk about how I took the initial idea and turned it into a working prototype. In the first phase of building my puzzle game, I wasn’t thinking about deployment or databases. I was thinking about mechanics, and […] The post Using AI…
21 Apr
If you spend any time on YouTube right now, you’ve probably seen the headlines: “I built a SaaS in 24 hours.” “AI built this app for me.” “From idea to launch overnight.” I genuinely enjoy those AI product development videos. They’re motivating. They make building feel accessible. They show what’s possible with the tools we have […] The post Using…
20 Apr
My client team recently updated its code review policy: an approval from an AI tool is now all that’s needed to merge. In this post, I’ll reflect on this change and what it means for the way our team works together. My Personal Relationship with Code Review Reviewing PRs is one of my very favorite […] The post Here’s What…
19 Apr
When I joined Atomic Object nearly 16 years ago, I was drawn in by many factors: people who were generous with their time, interesting development tools and clients, personal connections, and wanting to work with the smartest people I could find. Threaded through all of that was a deep curiosity that resonated with me. The […] The post The Increasing…
18 Apr
At Atomic Object, we build great software, and we partner with our clients to help them figure out what the right thing to be building is in the first place. As software consultants, we show up as strategic thought partners who bring perspective on direction, tradeoffs, and timing. Getting that right requires a shared understanding […] The post There’s More…
17 Apr
When ChatGPT went mainstream, the narrative was clear: anyone can build an app now. Software engineering, as we know it, is over. My Bias I’ll be honest about my bias. I run a software consultancy with about 100 software engineers. I have skin in this game. But from my front-row seat, what I’ve watched is […] The post Software Engineering…
16 Apr
Running and deploying with Kubernetes may sound excessive and intimidating, but it’s not nearly as hard as it once was. The immense popularity of Kubernetes over the past decade means tools can quickly set up and deploy a cluster in almost any environment. And what once was a technology platform requiring deep systems knowledge to […] The post K3s: A…
15 Apr
I have long been a fan of OpenBSD, over two and a half decades after I first started using it. It’s a complete operating system maintained with a strong and smart design ethos. It makes sense to me in a way that makes every other operating system feel frankly kind of cobbled together. Many folks […] The post A Webserver…
14 Apr
AI tools have made it easier than ever to build and ship software. On one of my recent projects, I’ve seen firsthand how quickly a team can generate features, prototype ideas, and release new functionality. But I’ve also noticed something else. Just because we can build faster doesn’t mean we’re learning any faster. On this […] The post Shipping Faster…
13 Apr
In a time of pressing adaptation to AI, it’s tempting to get to the result with fast prompts. But I’ve found that with some planning before prompting, I get better results that scale well. Here’s what I ask before I get started. What is the end goal? Am I solving a bug ticket? If it’s […] The post Questions to…
12 Apr
The OM-84 Omnichord, released in 1984 Outside of my 9-to-5 job as a software engineer, I play keys in a six-person cover band. A few months back, our drummer came into rehearsal exclaiming, “Georgia, you won’t believe what I found on Facebook Marketplace!” He reached into his backpack and pulled out an Omnichord. What the […] The post How to…
11 Apr
In previous posts, I have written about my Proxmox Backup client helper scripts and an Ansible role to provision them. The main limitation of the prior version of the scripts is that they could only specify one backup target file or directory. Now they can target multiple. Backup scripts improvements The primary new feature is […] The post Check Out…
10 Apr
Picture Monday morning at a growing virtual diabetes clinic. Over the weekend, 800 patients called or messaged about refills, scheduling, and portal issues. Fifteen support reps are already behind before they log in. Your board wants higher self‑service and lower unit costs. Clinical leaders want less burnout. Your security officer is worried that the first […] The post How to…
9 Apr
Here’s how I replaced Payload CMS’s built-in login system with Better Auth so an Next.js site and its Payload admin panel could share the same authenticated session. Using Payload CMS If you’re comfortable working in a Next.js app, and you haven’t given Payload CMS a try, you really should. It’s a config-first Typescript CMS that […] The post Use Better…
8 Apr
I like the basic idea of snapshot tests. Many software developers first run into them in frontend work, where you snapshot rendered output and compare it later after a code change. That feels pretty natural. You are checking whether the shape of the result changed in a way you expected. On a recent migration project, […] The post Here’s How…
7 Apr
You might be familiar with this classic XKCD strip about SQL injection: What’s happening here? Imagine there is a form where a student can fill in their name, and this input gets incorporated into a SQL query. Something like: When the name is interpolated into that query, it becomes: SQL statements are separated by semicolons, […] The post Your AI…
6 Apr
On a recent project, my client had a firm rule: one commit per pull request. No exceptions. At first, it seemed like a minor constraint. But it quickly pushed me to get comfortable with a handful of Git commands I’d been using only occasionally: git commit, git rebase, and git reset –soft. Each one solves […] The post Git Commands…
5 Apr
This spring, I went to North Carolina State University’s Engineering Career Fair a second time, but this time I was standing behind the table. Accelerator A year ago, I found Atomic Object through the NC State career fair and ended up applying for the Accelerator program. This year I was representing Atomic Object and talking […] The post On the…
4 Apr
If you’re commute-curious but haven’t pulled the trigger yet, I’ve been there. Most of what felt like obstacles to biking to work turned out to be either mental barriers or have simple solutions. Somewhere on the other side of figuring that out, I realized I was actually looking forward to it each morning. Here’s what […] The post Most of…
3 Apr
As a Quality Assurance analyst, I have tested more forms and input fields than I would like to admit. I recently onboarded to a software development project where a user must create an organization before accessing most other sections of the app. This process requires entering company data into about a dozen fields across six […] The post Form Fatigue?…
2 Apr
If you’re anything like me, you’ve been thinking a lot about how AI is reshaping the way we work as developers. Tools like Claude Code have become part of my daily workflow, and they’ve changed how I approach feature development in a big way. But here’s the thing I keep coming back to: the quality […] The post Your Best…
1 Apr
At Atomic Object, kickoff meetings are a cornerstone of how we start projects. We’ve built significant internal infrastructure around planning and delivering them. That’s because how you begin sets the tone for everything that follows. For longer-term engagements, though, the kickoff is only part of the story. Periodic on-site visits can make a measurable difference […] The post The Neglected…
31 Mar
Recently, I’ve been performing some heavy lifting on my client project in the form of state management. For context, we use Angular on our front end, and need to keep tabs on all data points a user is changing. Our team chose to use NgRx, a state management tool based on React’s Redux package, but […] The post Angular NgRx:…
30 Mar
Let’s say you install a tool. Maybe it’s Node, or maybe it’s a CLI for a project you just cloned. The installer runs successfully. Then you open your terminal and type: node And your shell responds: zsh: command not found: node A completely normal reaction to seeing “command not found.” At some point, most of […] The post What the…
29 Mar
Successful relationships – both inside or outside of business – require a focused effort to meet others where they are to build connections. Without a strong relationship, navigating obstacles and aligning on goals is exponentially more difficult. A key tool for achieving this is mindfulness – the deliberate choice to bring your focus to the […] The post Mindfulness: A…
28 Mar
This Snake project is a useful way to study how a simple game-playing agent works end-to-end. It is small enough to read quickly, but complete enough to show the important parts: state representation, neural network inference, scoring, and iteration through training. Read on to learn: Why Snake works well as an AI learning exercise How […] The post Teach a…
27 Mar
As with most peers I know, I’ve been thinking a lot about what it actually means to be a software developer right now. There seem to be two predominant takes floating around the industry right now about AI and the future of dev work. The first is that software developers are going the way of […] The post AI and…
26 Mar
As software developers, we’ve all been there: a simple requirement change requires adding a tenantId field to your User model. It’s a five-minute code change, but suddenly, 458 tests are failing. It’s happening not because the logic is broken, but because the User model is used everywhere, and now the test data is invalid. I’ve […] The post Test Builders:…
25 Mar
Somewhere in your backlog is a ticket for a bug you already fixed. The user just didn’t know. Writing Release Notes Nobody Reads My software team recently took over the release notes process. Originally, we started with a long document that comprehensively covered each JIRA ticket, complete with a Figma link and sections like “How […] The post Release Notes…
24 Mar
This tutorial is for developers, designers who code, or anyone new to AI who wants a hands-on introduction to building a custom AI chatbot that can search and answer questions using your own data. I wanted to build an AI-powered tool for our team, but I had zero experience building AI applications—so I decided to […] The post How to…
23 Mar
For years, designers waited on development. We’d finish research, deliver specs, hand off mockups — and then sit in a holding pattern while engineers built what we’d envisioned. The bottleneck was implementation. Design was ready. Dev needed time. That dynamic has completely flipped. Development speed has accelerated dramatically. AI coding tools, agentic workflows, and orchestrated […] The post Product Design…
22 Mar
Building connections that lead to successful relationships – both inside or outside of business – require a focused effort to meet others where they are. Without a strong relationship, navigating obstacles and aligning on goals is exponentially more difficult. A key tool for achieving this is mindfulness – the deliberate choice to bring your focus […] The post Moving from…
21 Mar
photo by ajay_suresh In a previous post, I wrote about building my support team early during my second pregnancy. I talked about doulas, night nurses, and the support network I wished I had the first time around. Planning my return to work is another part of that same preparation. Specifically, returning to work while pumping. […] The post Here’s How…
20 Mar
Every project benefits from lightweight CLI scripts that can reach into your application code — for data seeding, format verification, one-off exports, and other tasks that don’t deserve a full endpoint or test harness but need access to your real domain logic. A few years ago, I wrote about adding CLI scripts to TypeScript/Node projects […] The post C# Finally…
19 Mar
If multiple users can edit the same record, developers need to decide how your system handles that. If you don’t, EF Core decides for you. Designing Intentional Conflict Handling in .NET Applications By default, EF Core uses last write wins. The final call to SaveChanges() overwrites whatever came before it. There’s no warning and no […] The post Prevent Lost…
18 Mar
All good nerds love a good dashboard, right? So when I saw people building Claude Code dashboards online, I wanted to learn from my own usage. The reason dashboards were having a moment online was that Claude Code has built-in OpenTelemetry support. That means you can pipe metrics and logs to any OTLP-compatible backend pretty […] The post What I…
17 Mar
A few months into a recent project, my software development team hit a bug that took much longer to diagnose than it should have. We were generating PDFs server-side — filling in form fields with data from our system, saving the document, and returning it to the user. In Adobe Acrobat, the fields looked perfect, […] The post 3 Reasons…
16 Mar
My experience with AI coding agents, like Claude Code, Codex CLI, or Augment Code’s Auggie has been that they are most effective when they can run autonomously, without frequent human intervention. In order to do that the AI needs permissions to make changes to the codebase, run tests, perform web searches, etc. Each AI coding […] The post How I…
I frequently get questions from traditional graphic design students, inquiring about what designing software products is like. They want to know more about what I do and what they can do to get their foot in the door as a software maker. The answer to both of those questions can get complicated, but I think […] The post What Is…
15 Mar
LLMs and code generation are extremely powerful tools when working as a solo game developer. I made two attempts to build a game leveraging AI code generation, specifically GPT-5.3 Codex. The first attempt led to frustration and feeling like I lost creative control of the project. In a second attempt I shifted my mindset with […] The post Maintain Creative…
14 Mar
Aristotle gets credit for first principles thinking, but the concept has never been more relevant than it is right now. As we shift to building software with AI tools, this is one of the most important mental models you can carry into every client engagement. The Core Idea First principles thinking is the practice of […] The post First Principles…
13 Mar
When you support multiple offices, marketing gets complicated quickly. Each location has its own strategy, its own managing partners, and its own priorities. But the processes are often similar. On paper, this sounds totally manageable. “We’ll just support each office!” Easy enough, right? In reality, it can start to feel like you are juggling multiple […] The post Notion for…
12 Mar
I’ve been experimenting with how I use AI in my development workflow for the last few months. I’ve been using Cursor for a while now, but I finally decided to jump on the Claude Code hype train after hearing the powerful things people on my team were using it for. I’ve been resistant to AI […] The post Pros and…
11 Mar
When MIT released The GenAI Divide: State of AI in Business 2025, they found that roughly 95% of generative AI pilots fail to deliver tangible, measurable, or financial value to the organization. Ninety-five percent of AI projects. That’s an estimated $30-40 billion in capital investment annually, and the overwhelming majority of it isn’t moving the […] The post 95% of…
10 Mar
In Android, there are many ways to persist data. We have Room for databases, in-memory storage, SharedPreferences, and DataStore. One interesting method is SavedStateHandle, which serves a specific purpose: preserving UI state through process death. The Problem: Process Death. Let’s start with a relatable example. You’re using Google Maps, looking for late-night restaurants for your […] The post Survive Android…
9 Mar
During the COVID-19 pandemic, I like many found myself with a lot of free time. So like many others, I deciding to spend way too much time on my computer. This led to ultimately running into frustration with the lack of a unified theme system. with MacOS, which not longer ran well the ancient 2013 […] The post Unified Theming…
8 Mar
Recently, I covered some FAQs on Atomic’s Accelerator program — what it is, how hiring works, and how to stand out as a candidate. If you haven’t read that yet, and it fits your situation, I recommend circling back. This FAQ is about the Atomic Experience. The work, the culture, and what growth looks like […] The post FAQs about…
7 Mar
Some cultures don’t have a distinct word for the color blue; instead, it’s considered a shade of green. Identifying bugs can be a lot like that. It’s difficult to see them as separate from “how the software works” when they blend in. With AI, it’s easier than ever to generate code. But software can be […] The post Is It…
6 Mar
Fast-moving projects can be really fun to work on, but they’re also mentally expensive. When priorities shift rapidly and you’re juggling features, bugs, code reviews, and meetings, you’re just as bottlenecked by time as you are by cognitive load. Here are some ways to reduce that load without slowing momentum. 1. Stop using your brain […] The post How to…
5 Mar
Every team I’ve been on lately has communicated through Slack. And I mean every team—even the client teams who otherwise run an entirely corporate IT stack. Slack is the place where people hash things out, right up until they jump on a Zoom meeting. Slack is also the place where valuable information goes to vanish […] The post Don’t Hide…
4 Mar
I have been trying tiny experiments using AI tools to automate the essential, yet mundane tasks that I handle as a delivery lead. The “tiny experiment” approach was inspired by Anne-Laure Le Cunff’s book, Tiny Experiments: How to Live Freely in a Goal-Obsessed World. The idea is to explore what is possible and not worry […] The post How I…
3 Mar
Every project starts the same way. There’s a problem worth solving, a rough sense of the constraints, and a blank page. The hard part isn’t writing the first line of code—it’s figuring out which direction to go when several look equally reasonable. Should this be an event-driven system or a synchronous pipeline? Do we split […] The post How I…
2 Mar
Healthcare dev teams need to ship features and fixes quickly. HIPAA’s Security Rule requires a detailed audit trail. How do we square this circle? Here, I’ll make the case for turning every promise into code: Terraform modules, CI gates, deployment guardrails, and runnable scripts that emit verifiable proof as the default behavior. Setting this stuff […] The post Make HIPAA…
1 Mar
There are various definitions surrounding the role of a Delivery Lead (DL) within the tech industry. The role of a DL is versatile and requires the ability to shapeshift to wear many hats confidently. Essential to the role are the abilities to skillfully steward stakeholders and development teams, lead strategy and project management, own the […] The post Steward, Strategist,…
28 Feb
Over the last couple of years, I’ve had several people reach out to me about Atomic Object and the Accelerator program. These were students, recent grads, career changers — people in all kinds of situations trying to get a feel for what the experience might offer. I appreciate every one of those conversations, and I’ve […] The post Accelerator Program…
27 Feb
Recently, I helped transition a feature that was already mid-development from one team to another. It was my first time in this kind of role, and while it was a valuable experience, it also surfaced several challenges I had not anticipated. The experience pushed me to reflect on how teams share knowledge, make decisions, and […] The post Transitioning a…
26 Feb
Think about an HTML page. At its core, it’s just a container—a bounded environment with a set of rules, capabilities, and constraints. Everything that happens inside it is governed by what you put there. Now imagine that same concept, but instead of DOM elements and event listeners, you’re placing AI agents with distinct personas into […] The post Digital Clones…
25 Feb
Not too long ago, due to government funding issues, I was working on a project whose timeline had to be revisited. And part of the features we were going to get to before President Trump’s administration pulled funding was in-app reporting for the clients: a place where they could generate and export stats on specific […] The post A User’s…
24 Feb
This is Part 2 of a two-part series on executive storytelling. In Part 1, we covered knowing your audience and cutting the noise. Now let’s talk about directness and clarity of purpose. I’ve talked about the importance of knowing your audience and cutting through the noise when communicating with executives. These are foundational skills. But […] The post Stop Hedging:…
23 Feb
This is Part 1 of a two-part series on executive storytelling. Part 2 will cover directness, clarity about objectives, and tying it all together. I have been a part of more executive briefings than I can count. Some land, several don’t. The ones that fail? They fail the same way every time: too much information, […] The post Know Your…
22 Feb
As a software developer, I spend much of my day thinking about reliability, automation, eliminating repetitive work, and building tools that help me do my best work. Most of that effort is focused on serving project goals and delivering high-quality software. But my sense of purpose at Atomic comes from more than just the code […] The post Never Missing…
21 Feb
When you’re first starting your career, there are a lot of day-to-day tasks that a college degree doesn’t adequately prepare you for. You might even find that skills you thought you knew how to do just aren’t transferable. One of the things I’ve had to relearn is note-taking. How note-taking is different in the office […] The post Upgrade Your…