My first real software gig was at a little studio most people have never heard of. They handed me a bank's mortgage rate structure and said: rewrite it. I had an English degree, a vague familiarity with HTML from messing around on the internet, and approximately zero professional engineering experience.
I didn't tell anyone I didn't know what I was doing. I just started figuring it out.
From there I made it to R/GA, where I built a career quiz web application for Goldman Sachs. Then further - a CLIO Award for the LA Dodgers, seven years at Amazon, a founding role on the Meridian design system team. Fifteen years later, I'm still here. Still building. Still, occasionally, figuring it out as I go - but now I know that's not a confession. That's just engineering.
The moment it clicked
For a long time I was learning by doing - copying patterns I'd seen, reading Stack Overflow, absorbing things by osmosis. It worked, but it felt precarious. Like I'd built a house without understanding what held the walls up.
Then I read Addy Osmani's Learning JavaScript Design Patterns. It was the first time I understood not just how to write JavaScript, but why - why code was structured the way it was, what problems those structures were solving, how smart people had thought about the same challenges I was running into and named them and reasoned about them systematically.
Something shifted. The walls made sense now. I wasn't just copying anymore - I was understanding. And once you understand the underlying logic of a thing, you can actually think with it.
The lie imposter syndrome tells you
Imposter syndrome is not a feeling that you're bad at your job. It's a feeling that any minute now, someone is going to notice. That there's a real engineer somewhere behind you, and eventually they're going to tap you on the shoulder and say the mistake has been corrected and could you please hand over your keyboard.
I felt that for years. Even as I shipped things. Even as I got promoted. Even as people asked for my opinion in meetings.
What finally killed it was getting a job at Amazon. Not because Amazon is a magic legitimacy machine - but because their hiring bar is genuinely high, and I passed it. I had to prove myself through a process designed to filter people out, and I got through. After that, it was hard to maintain the fiction that I wasn't a real engineer.
And then something else happened: I got good enough that I stopped caring about the credential I didn't have. I started contributing confidently to code reviews. I started forming and defending opinions about operational excellence, architecture, accessibility. I had things to say and I said them, and people listened.
The imposter syndrome didn't go away because someone validated me. It went away because I validated myself - by showing up, doing the work, and watching the work be good.
The advantage nobody talks about
Here's the thing I've noticed after fifteen years: engineers who came up through CS programs learned to think like computers. I learned to think like a reader.
As an English major, I came to programming languages as languages - as systems of syntax with underlying logic, where the grammar changes but the grammar exists, and once you understand that a language is just a set of rules for expressing ideas, you can learn a new one. I always told people: show me how to print output in a new language, and I can learn it. Console logs and print statements are how you listen to a system talking. Once you can listen, you can learn.
Control flow is control flow. Loops are loops. Functions are functions. The concepts don't change. Only the syntax does. And syntax is the easy part - it's in the documentation. The hard part is understanding what you're trying to say. That's a writing problem. That's a thinking problem. That's something an English major knows how to do.
I also think my humanities background made me better at the human parts of engineering - writing clear documentation, communicating tradeoffs to non-technical stakeholders, caring about the experience of the person on the other side of the interface. Code is communication. It communicates to computers, yes, but also to the next engineer who reads it, and to the user who ultimately lives inside it. I care about all three audiences.
If you're earlier in this journey than I am
The tech market is scary right now. Layoffs, hiring freezes, AI anxiety, the sense that the floor might be dropping out. I'm not going to pretend it isn't.
But I want you to hear this: the path I took is still real. Self-taught engineers are still getting jobs, still shipping great work, still building careers worth having. The credential gap matters less than it used to, and it always mattered less than people said.
What matters is whether you can build things. Whether you can think. Whether you can learn. Whether you show up and do the work even when you're not sure yet that you belong.
You do belong. The tap on the shoulder isn't coming. The person who was going to expose you as a fraud - they don't exist. There's just you, the work, and the fifteen years ahead of you where you get to find out how good you can actually be.
I found out. It was worth it.