The Accidental Engineer
I never set out to write code for a living. I just kept solving problems until one day I looked up and realized I'd become the person who fixes the build.
I never planned to be an engineer and if you asked me I would tell you I'm not, I have worked with some real engineers and I can tell you without a doubt I'm not at their level of skill or caliber and are certainly not among the brilliant minds I've had the opportunity to work with. I want to be upfront about that because it explains a lot about how I think, how I work, and why this site exists at all.
There was no computer science degree (yet). I did go through a quick bootcamp to get certified to meet my immediate needs. No moment where I sat down and decided, "I'm going to become a UX deisgner or software engineer." What happened was slower and stranger than that. I kept running into problems. I kept solving them. And at some point the solutions started looking a lot like engineering. But at the same time it wasn't, it was the design that guided my thinking and shaped the way I approached problems.
Starting from the "Wrong" Side
I came from design, honestly I never felt like a desigenr, you should have seen my first art project and my first Photoshop projects but I really enjoyed trying:
- making things look right was really hard when I didn't have a clear sense of aesthetics or technique.
- makings sure the sales message was big enough to exceed last weeks beer sales, often felt like a completely arbitrary constraint,
- designing logos for peanuts, meant I had to be extremely resourceful with limited tools and time,
- designing apline skis topsheet graphics for free, required me to learn about the materials and printing processes involved,
- making interfaces make sense because they didn't make sense to me at first, I had to reverse-engineer the logic behind them.
- figuring out how people actually use the stuff we put in front of them, and adjusting my designs accordingly.
It was a messy, iterative process, full of trial and error and I failed a lot, but it taught me how to think critically and adapt quickly. And for a while that was enough. But if you're a designer who cares about whether the thing actually works the way you designed it, you start opening files you probably shouldn't.
First it was CSS and HTML. Then it was "just a little JavaScript." Then it was templates, thenthen APIs, then a MySQL database then build tools, then infrastructure. Each step felt small. None of them felt like a career change. But they accumulated. One day I looked up from a terminal window and realized I'd become the person people called when the build was broken. Not the designer. The builder of things. The one who could trace a problem from the UI all the way down to the config file that someone committed with a trailing comma. I have my own trailing comma learning lesson, we will visit war story another time : )
I didn't set out to be that person. But I didn't mind being him, either.
The Dyslexia Thing
I'm dyslexic. I mention this not because it's the centerpiece of my story (it isn't) or because I'm seeking pity or sympathy, I'm just being honest, but because it would be dishonest to leave it out. It started and destroyed everything at the same time. I suspect some you are reading this feel that way about how AI is affect you right now...
School was a specific kind of hard. Not the kind where you can't do the work, but the kind where you can do the work and it still takes you three times as long as the kid next to you. Reading was slow. Writing was slow. Tests that measured how fast you could decode text were measuring exactly the thing my brain was worst at. I learned early that the straight path through a problem (read the chapter, memorize the terms, pass the exam) wasn't always available to me. So I found other paths.
Here's the thing about finding other paths: you get very good at understanding systems. When you can't just read the manual front to back, you start poking at the edges. You try things. You break things. You build a mental model by interacting with the thing itself rather than reading a description of it. That's a terrible strategy for passing a history exam. It's a surprisingly good strategy for understanding how software works.
I don't think dyslexia made me smarter. That's the kind of inspirational reframing I'm not interested in. But it did make me a different kind of thinker. I'm spatial. I see relationships between things before I see the things themselves. I think in systems and patterns. I debug by feel as much as by logic. I can often sense where a problem is before I can articulate why. None of that came from talent. It came from years of compensating.
Everything I Know, I Learned by Building
My education is a list of projects. Not courses, not certifications, not textbooks. Projects. If you look at my LinkedIn you will see have a masters in information systems and design technology bachlechors degree. You may be saying to yourself, "this guys is full of it" and maybe I am, but the truth is, those are constructs of the system, pieces of paper than allows you to be invited and projects to complete on their own. I learned by doing:
- I learned Angular.js while getting certifited as MicoStrategy and Tableau developer.
- I learned React by rebuilding a design system component library that was falling apart.
- I learned Node by writing a scrappy tool that nobody asked for but I had to learn it to get a project done.
- I learned about CI/CD because I got tired of deploying by hand and breaking things on Friday afternoons. (To go back to my very first statement these are the engineerss I'm was talking about).
- I learned TypeScript because I couldn't make sense of JavaScript errors without it, and I refused to keep guessing what shape the data was.
- I learned about typehead and autocomplete because I took down checkout on an e-commerce site on Black Friday.
- I learned about accessibility standards while developing vanilla JS components while using a screen reader to test them. Try that sometime, you will build a lot of empathy for users that require adaptive and assistive technologies and end the day with a massive migraine ;).
Every skill I have was acquired in the service of solving a specific problem for a specific project. That means there are gaps. Real ones. I can build you a full-stack application but don't ask me to whiteboard a sorting algorithm. I understand distributed systems because I've had to debug them at 2 a.m. My knowledge is wide but jagged. Deep in some places, shallow in others, and organized around practical need rather than theoretical completeness.
I used to be self-conscious about this. I'd meet engineers with CS degrees who could talk about Big O notation and type theory and I'd feel like I was faking it. That feeling hasn't gone away entirely, but I've made peace with it. The things I've built work. The teams I've been on shipped. The problems I solved stayed solved. At some point you have to let the work speak for itself, and stop expecting opportunities will just show up magically.
A Career That Looks Like a Network Graph
If you mapped my career on paper, it wouldn't look like a ladder. It wouldn't even look like a winding road. It would look like a network graph: a mess of nodes and edges connecting design to front-end to back-end to BI, to architecture to management, to retail, to beer and back to building things again.
I've been a designer who codes. A developer who designs. A leader who still opens pull requests. A freelancer, an agency worker, a startup employee, a consultant, a beer sales person. I've done the thing where you're the only technical person in the room and the thing where you're the least experienced person on the team and still had to make decisions because others were not willing or ill-equipped to do so. Each experience are educational in different ways.
The thread through all of it is that I never optimized for title or trajectory. I optimized for interesting problems,learning from people that didn't mind taking extra time for me to ask stupid questions, and having fun doing it. That's not career advice (it's probably bad career advice, honestly) but it's the truth. I followed curiosity more than strategy, and I ended up somewhere I couldn't have planned for.
The word "accidental" in the name of this site is doing double duty. It's a little self-deprecating, sure. But it's also just accurate. I didn't plan any of this. I showed up, I paid attention, I solved the next problem, and I kept doing that until it became a career.
What This Site Is For
So here we are. You stuck with my blabbering, and borderline mansplaining (as my partner would say to me) I've been accumulating knowledge and opinions and hard-won lessons for years, and most of it lives in my head or scattered across Slack messages, design docs and pull request comments that nobody will ever read again. That seems like a waste.
This site is where I write about what I've learned: the technical stuff, the career stuff, the thinking-about-how-we-work stuff. It's not a tutorial site, though I might write tutorials sometimes. It's not a thought leadership platform, because that phrase makes me want to close my laptop. It's just a place where I try to be honest about what I know, what I don't know, and what I'm figuring out in real time. I hope that we can learn together as we go.
I'm building things. I'm learning things. I'm making mistakes that are at least somewhat original. And now I'm writing about all of it, mostly so I can think more clearly, partly so it might be useful to someone else, and a little bit because the accidental engineer probably ought to leave some notes behind about how he got here.
If any of that sounds interesting, stick around. I'll be here, solving the next problem.