Today’s October 17th, 2026. I’m researching AI security on my own because it’s become such a big topic this year. AI coding tools have taken off since January. Every week there’s a new model, a new tool, a new workflow. So it’s been a pretty interesting year, and a good time to step back and look at how I got here.
Flatiron, 2019
I started looking at JavaScript in late 2018. In April 2019 I moved to Atlanta for Flatiron School, a 15-week in-person program. You learned alongside other people, and the curriculum was intense. Every two weeks there was a test you had to pass to move on.
That pressure mattered. You’d paid a lot of money to be there. If you failed a test enough times, you had to drop, and the money was gone. So people took it seriously and stuck with it. I had good teachers and mentors, and being around other people learning to code built a community. We talked about coding all the time.
It was probably the most engaged in school I’ve ever been. Traditional school never motivated me, for whatever reason. Maybe it was just that point in my life. It wasn’t until my 20s that I figured out I liked learning.
By the end I’d learned Ruby on Rails, JavaScript, React, and Express. I learned how to put them together into a full-stack app, how HTTP requests and servers work, and a little SQL so we could save things to a database.
The Meetup Talk
Around then I volunteered to speak at a meetup about Postgres. It was my first time speaking anywhere. I’m sure people in the room were thinking “this guy’s a noob talking about something he just learned.” But I wanted to exercise that part of my brain, so I got up and did it.
I made a few friends that day, and one of them led to an internship. It was remote, part-time and paid hourly. But it put me in a large TypeScript codebase, and I spent about a year and a half there doing refactoring work.
Teaching
At the same time, from November 2019 to August 2021, I worked for a company that ran coding bootcamps out of universities around the U.S. I mentored and coached students through more than 800 sessions.
Teaching made me lock in the basics. I had a script I’d run through to explain JavaScript data types and functions, a five-minute overview for someone seeing it for the first time. I rehearsed it a lot, and I always enjoyed doing it. Explaining the fundamentals over and over is how I really learned them.
A Dev Shop
In July 2021 I joined a small dev shop. We built React frontends on top of C# .NET Core and Spring Boot services, mostly for an international travel platform. I got to touch a few different projects and spent some time tuning slow SQL.
One was an old Angular project that had been handed from one developer to the next for years without being properly maintained. Working in it showed me what it’s like to inherit software like that, and how hard it is for someone new to get up to speed.
My First Startup
In December 2021 I jumped to a small startup building a speech-to-text app. It used OpenAI’s API to analyze what you said and gave feedback in a mobile app. That was my first time building on an LLM API, a while before ChatGPT came out.
The engineer before me was leaving to start his own company, which is why they were hiring. So I owned the product by myself and worked directly with the CEO. It was a React Native Expo app with an Express backend on Google Cloud’s App Engine. A lot of the features stretched me at the time. I owned the releases to the App Store and Google Play, with all the details that come with that. I also wrote a post about deep linking in Expo during that job, and it’s still here on the site.
I stayed until October 2022. By then the runway had a clear end, and another opportunity came up that was too good to pass on.
Gates and Hardware
The next company made an app that opens residential and commercial gates from your phone. A device retrofits onto the gate and connects over the cellular network. I’d never worked with hardware before. The CTO had built the device, and there was an active user base spread across the country, so there was a lot of room for features around keys and access.
I led the Python backend that talked to those devices in real time. One of the bigger features was scheduled access that works across time zones. When I started, the backend’s unit test coverage was under 10%. By the time I left it was over 80%. I also moved the React app to TypeScript and shipped access features in the React Native app.
The company scaled up and made a big business bet that didn’t pan out. They had to shrink the team, and I ended up as the only engineer under the CTO. In September 2024 I was let go too. I really liked working there, and it stretched me at every step. Each job added something on top of the base I started with at Flatiron.
The Gap and a Bigger Team
After that I had a three-month gap. I wrote about how I approached that job search in Differentiating Myself.
In January 2025 I started at a healthcare company, working on web apps for health insurance. The subject matter was a bit dull. But it was the biggest engineering team I’d worked on. I had a tech lead and a product manager, and I sat in large deployment meetings where different teams shipped their services. Most of the work was moving services off an old legacy Java monolith into Node.js microservices that individual teams could own.
Those services ran state programs that people used every day, under a 99.9% uptime agreement with financial penalties for downtime. I took on-call shifts for deployments, release checks, and incidents.
The remote culture there was pretty siloed. I knew there was probably a better fit, somewhere I could work more closely with people who were more passionate about the work.
I keep applying to jobs, even when I’m happy where I am. It keeps me current in an industry that’s always changing. If something ever changes at work, I’ll have options and an up-to-date resume.
Back in an Office in Nashville
In October 2025 I got the chance to join a large company in Nashville, on a hybrid schedule. I got to bring my startup experience and initiative to a team inside a larger domain, where multiple teams work on the same application. We ship continuously and collaborate across teams.
Most of my work there is call-center software. I’ve built automation that shortened how long calls take to resolve, and worked on a UI that surfaces tools based on what’s happening in a live call or chat. I’ve also gotten to work on agentic tooling, including evaluation pipelines that fact-check an agent’s answers.
We have lunches where engineers hang out and talk about all sorts of things in life, like favorite foods and video games. But technical conversations come up a lot, and it’s a chance to nerd out on AI, programming concepts, and how the industry is changing. I’ve met a ton of really smart people and contributed to a bunch of different projects. There’s room to pick things up and build them, front end and back end. It’s been really exciting.
Larger Infrastructure
Working on bigger teams also exposed me to much larger infrastructure. I’ve gotten to work on web apps that run on Kubernetes. We use it to scale services, monitor them, and improve their reliability.
One of those is an agentic observability app. Its vector database, Qdrant, ran as a sidecar container inside each app pod. That tied the database to the app’s lifecycle. Every replica had its own copy of the data, and that copy disappeared whenever its pod scaled down or got rescheduled. I moved the database into its own pod, backed by a persistent volume and reached through a Kubernetes Service. Now the app pods can scale up and down on their own, and the data stays put.
At the startups I owned the whole stack, but it was a lot smaller. I’ve had the ability to go deeper and enhance my understanding of how systems like this scale.
Learning to Learn
When I started learning software in late 2018, I didn’t know how deep I’d go. I’ve loved tinkering on computers since I was a kid. You always wish you’d started sooner. But maybe it was the right time for me, because by then I’d figured out how much I enjoyed learning.
There was a point in my 20s where I learned how to learn. It’s a meta skill, and I think a lot of people overlook it. I never picked it up in school. For me, learning turned out to be mostly repetition and determination. I pick something I’m interested in and practice it over and over. The interest keeps me coming back, and the practice is what makes it stick.
Part of it is knowing you actually can learn something if you keep at it. A lot of people get discouraged because they’re really bad at it in the beginning. But if you know you can get there, you keep going through that part. So the belief ends up being a self-fulfilling prophecy.
The biggest thing I found is that doing something beats reading about it. Teaching is a huge way to solidify what you know. I didn’t really know the fundamentals until I’d explained them hundreds of times. The other is practicing the skill for real. Reading and passing tests only got me so far. Most of what I know came from building real things.
Now I learn all the time for fun. This blog is mostly me writing to myself about what I’m learning, so I can look back years from now and see things I’d have otherwise forgotten.
Where AI Security Comes In
AI has taken over software development. It got good enough to be useful, and now it’s close to the default way a lot of people work. I’m curious to see where that goes. I imagine I’ll shift more and more of my focus there. I want to learn how to use these systems responsibly to build things, and still understand what the business I work for actually needs.
Agentic systems are everywhere right now, so I’ve been researching their safety. I read Anthropic, OpenAI, Redwood Research, and other blogs about agents escaping and how to harden these systems so agents stay contained and people’s data doesn’t leak. But I want to keep a builder mindset too. A lot of the time I can combine the two. I build something agentic, then test it, and apply what I know about security and how these systems work. The sandbox escape post is one example of that.
Some time ago I realized I like the idea of being a polymath. I switch topics a lot. Software, music, exercise, and self-development are themes I keep coming back to. Never letting the learning stop is what keeps life interesting for me, and it’s how I keep improving.
Cheers,
Will