Hey there! I’m Tim. I work as a software engineer. Though, I took a circuitous route to being a software engineer.
I double majored in English and Secondary Education in undergrad. Then, I earned a Master’s in Literature. So, how’d I get from literature to computers?
The story actually starts in 7th grade. Or the 8th. I forget. But, somewhere during this time my middle school asked us about our future paths. The answer to this question determined what math course you would take in preparation for high school. One path put you on track to end up in pre-calculus your senior year of high school. The other didn’t. Being a young teenager who’s parents were both blue-collar workers, I didn’t understand the ramifications of my answer to this question. For some reason, I answered in a way that ensured I wouldn’t take pre-calculus my senior year of high school.
In high school, I became interested in math and science. I took algebra I and II, geometry, and trigonometry. I took biology, chemistry, and, my favorite, physics. I did well in all of these subjects. I also took mechanical drawing and architecture, starting to think about either being an architect or mechanical engineer. I didn’t give much thought during my high school years about not taking calculus. It wasn’t a part of any equation that I could formulate at the time.
Then, came college. I chose to attend a small liberal arts college that had a decent pre-engineering program. I didn’t want to go to a large state university, because I was afraid of getting lost in the crowd: being just another faceless student in a sea of undergrads and not trusting myself to be disciplined enough to succeed in such an environment.
Before the first semester started, I declared my major as “pre-engineering.” Per the recommended courses for first year pre-engineering majors, I signed up for physics and calculus. I was excited.
Then reality punched me in the face.
The first day of calculus, the professor walked into the small classroom. He wore simple casual trousers and a button down short sleeve short. He was carrying…nothing. No book. No papers. He started writing a problem on the board. As he wrote, he talked about the problem. I looked around. Other students were scribbling notes. I was in shock. I didn’t understand a single word the professor was saying. The problem he was working through on the board looked like sanskrit. He may as well have been speaking and writing in an alien language.
I dropped calculus after two weeks. I quickly realized that not taking pre-calculus my senior year of high school was a mistake. And there wasn’t anything I could do to correct that mistake quickly enough to salvage my misadventure into the world of college calculus. Eventually I gave up and switched my major to English.
After undergraduate and graduate school, I spent several years trying to “be a writer.” I wrote articles for several small local and regional publications. I don’t think I made a total of $500 combined for them. Eventually, after meeting my wife, we started a small business writing commercial copy for various business, nonprofits, and government entitites. This was in 1998, the same year Google got $25 million in venture capital–without a revenue plan!
A couple years later, after we had closed shop and moved, I heard about this new operating system that was being built on the internet and was completely free. It was, of course, Linux. I was mesmerized. Not only was it free, but the source code was available to read for myself.
There were a half-dozen or more distributions of Linux for me to choose from. Mandrake. Debian. Red Hat. Slackware. Suse. A few others I don’t remember. I had a job working on a help desk for a small software product. When I wasn’t working, I was installing, and reinstalling, Linux on a desktop machine I converted to my personal lab. I’d install one flavor of Linux, run it for a couple of days, maybe a week, then wipe it and start over with another flavor. Eventually, I started poking deeper. For the first year or two, I almost always ran a custom kernel, configured with only the drivers and other features that I needed or wanted.
Eventually, I landed a job at Google. I started out as a Datacenter Technician, and then worked my way into a role as a Site Reliability Engineer. It was at Google that I learned Python, and eventually Go. More importantly, I was exposed to cornacopia of new ideas. At first, it was overwhelming and reminded me of that college calculus class. I remember the first time reading through a larger Python codebase that I started working with, and I thought: “What the hell is this? It may as well be written in Sanskrit.” But I persevered through it. I never did understand the codebase beyond the surface, but it didn’t matter: soon enough we rewrote it.
I worked at Google for nine years. Most of that time was a struggle. While I learned a lot, I also spent most days walking through the office waiting for someone to find me out and escort me from the premises. I thought almost everyone was smarter than me. There was tremendous pressure to get promoted to higher levels. I went home most days feeling deflated.
I left Google in 2016 and spent the next 4 years bouncing around smaller startups and more traditional corporate technology organizations. I have more confidence now. I don’t necessarily know more, but I know how to learn more quickly now. My comfort and confidence now comes from experience. And patience.