The story of my career so far
Indulge me for the next fifteen minutes or so as I tell you the story of my career up to this point. It will help you get to know me, and it will help me establish a narrative for myself to build on as I begin a new adventure. Think of it as an extended CV... a resume in memoir form.
Early Days
My first exposure to computer programming was in the seventh grade when my mom, dissatisfied with the level of education I was receiving at public school, signed me up for an online course titled āComputer Programming with Javaā. I was hooked from day one. I remember sitting in my living room as a young preteen making the most hideous websites ever beheld by mankind. (Despite the name, the course was mostly about how to write HTML.) Bright chartreuse backgrounds, text in all fonts and sizes, and of course, extreme overuse of the marquee element. It was amazing. I had discovered how to tell computers what to do! My world was changed forever.
Thus began an obsession with the machine, and over the course of my teenage years I latched onto it as not just a fun new hobby but in fact the core component of my identity. I showed off to everyone all the programs I was making, put the word āprogrammerā in my first email address, found ways to work the concepts I was learning into everyday conversation... it was my thing, and I had to make sure everyone knew it.
The next year, in 8th grade, I discovered that my TI-83+ graphing calculator could be programmed with BASIC. I began to experiment with making little games, menus, and math solvers during my classes. Since my recreational screen time at home was limited to 20 minutes per day, I had to find some way to get my fix, and pretending to write equations during science class provided a convenient cover. My teachers must have thought I just really loved arithmetic.
I probably spent more than a thousand hours typing little programs on that thing. Believe it or not, I found online forums of TI-83/84+ graphing calculator enthusiasts that would share their programs with each other. There were daily forum threads, constant chatter in IRC, people sharing long-term project updates, game jams, programming competitions... it was heaven. At some point I discovered Axe Parser, a compiled language that could still be written entirely on the calculator (as opposed to Assembly language, which had to be written on the computer and transferred to the device). A subgroup of us on the forum began posting about games made in Axe Parser -- amazingly all four of us ended up working at Facebook at the same time a few years later.
When my older brother went off to college, his high school girlfriendās dad needed a replacement code monkey for his library software consultancy, and I eagerly signed up for the job. I remember biking over to this guyās house and writing bash scripts on Linux servers in his pantry. It was a good experience for me, if a bit weird. To this day Iām scratching my head over why he hired me. I donāt recall doing anything for him that he couldnāt have done himself more quickly and with fewer catastrophic errors.
A year or two later, a different guy in my neighborhood who was (and still is) the CEO of a small company that creates reports for medical equipment offered to put me up as an after-school intern. In the beginning I was just doing quality assurance for their internal tools ā not to sound ungrateful, but it was the dullest job Iāve ever had. After a few months they let me work on some internal web development tasks. I learned about C#, ASP.net, git, and lots of other things that were very useful to me later.
In my senior year of high school, I did some contract work with Wordpress management and PHP development for a real estate group that my uncle referred me to. I worked on a few websites but my weakness in visual design showed quickly. Luckily they were even worse at design than I was so they kept me around to move widgets around on the page and whatnot.
There was never any doubt in my mind that computer programming was what I wanted to do with my career. One of my favorite hobbies was reading old-school programming blogs. Coding Horror, Joel on Software, and Steveyās Blog Rants were my favorites and I read every post. I also read as many books as I could get my hands on. My favorites were Coders at Work and Hackers: Heroes of the Computer Revolution, both of which I read several times.
After what felt like an eternity, I graduated high school and left for Canada to serve a two-year LDS mission. During this time I didnāt write any programs, or do anything besides learn Chinese and try to figure out how to navigate mission life.
I was fortunate to have some connections with people that gave me career opportunities in my desired field in high school. There was certainly an element of luck involved, but I think these things came up in equal part due to my total and rabid obsession with programming that everyone knew about. People could see that and they always thought of me first when these opportunities came up.
BYU
The Computer Science degree at Brigham Young University was pretty straightforward when I went through it. There were some bottleneck classes in the first year or two, but once I got through this there were a variety of options available, most of them interesting. I took electives in graphics, blockchain, and programming languages. None of those or any of my other classes turned out to be as interesting as I hoped they would be. What I liked to do was build things, and not in a classroom or even a workplace context, but just privately, on my own.
I worked part-time throughout school, starting in the first semester where I got an on-campus job making Drupal websites for the McKay School of Education. My brother (the same one who got me the sysadmin gig with his girlfriendās dad) got me the job. I then got two of my other brothers the same job after me. It was nearly a family business! In reality the work we did there was quite boring, and there were way too many student developers there so we just spent our time browsing MDN or W3Schools or whatever else caught our interest.
During this first year of school, I also continued some of my Wordpress contracting work from high school and took on new clients. After recruiting two of my friends to work with me and teaching them PHP, we took on a few Upwork clients and made some basic websites. These projects lasted a few months each, then I just went back to regular jobs since the Wordpress thing had its difficulties that I wasnāt too fond of.
I briefly became a research assistant after taking a programming languages course, to explore my interest in academia. I was excited at first, but it turned out to be both incredibly boring and incredibly frustrating. It was just me and one other guy, and we were given random tasks related to a Java Pathfinder program that the professor was working on. We rarely saw the professor and could clock in as many hours as we wanted with no supervision and no accountability. Most of the time the other guyās hours didnāt even overlap with mine, so I just worked on fun little Clojure programs by myself in the computer lab for a semester. Turns out I would not be following in my father-the-physics-professorās footsteps.
After this, I found out that Qualtrics was hiring and I had a decent resume for someone my age, so I went to work there part time. (Believe it or not, my brother also helped get me the job there.) I was on the technical operations team, which included both writing system automation and physically racking servers in data centers. It was fun to have some rare hands-on experience in such an abstract profession.
Qualtrics was nice enough not to fire me despite the fact that I left every summer to do internships at other companies. The first summer internship was ExxonMobil, where both my brother (different brother than before) and my brother-in-law worked, and the second was Facebook.
The summer at ExxonMobil was a terrible experience. I worked on an internal application for the HR team. It was demotivating to be working on something so utterly removed from the business's bottom line. As a result, I swore off non-tech companies forever -- I wanted to work on things that drove important company results.
Somewhere along the line I read Dan Luuās blog and learned that engineers at big tech companies make $250k, whereas my expectation was closer to $80k ā- the return offer from ExxonMobil was $73k. I was blown away by this revelation and set out to sell my soul to the highest bidder.
Facebook came to BYU campus one day in the fall and I made a point of talking to them as much as possible. The interviews went well, so I found myself in Menlo Park the following summer. This turned out to be a unique and career-changing experience, which Iāll discuss more in the next and final post in this series. Suffice it to say, the internship was magical and I knew thatās where I wanted to work post graduation. The time couldnāt pass quickly enough.
Professional Experiences
If you have ever been to the Facebook campus in Menlo Park, you will understand why I was enamored with it. Itās hard to describe for people who havenāt experienced it ā itās almost like its own city, with office buildings, restaurants, dog parks, nature preserves, laundromats, shuttles, a bike shop... everything you can imagine one of the most profitable companies of all time would build to hoover up as much Bay Area human biomass as possible. But more than that, I thought the engineering department was well-run and had a high number of truly world-class software engineers. I was also impressed with the way new grads could speed-run the promotion schedule ā the typical 5 year process from entry level to senior software engineer could feasibly be done in 2. Lastly the pay was significantly higher than anything else I had been offered. The choice was easy; I was going to work at Facebook.
There was only one problem: moving to California was a dealbreaker. I got married young and we had a kid on the way. Forking over $3500 a month for a studio apartment with no backyard was just not going to be an acceptable quality of life for us. With some internal maneuvering and a manager who kept a position open for me, I was eventually able to get an offer to work out of the Facebook office in Austin, Texas. I started in May 2020.
If youāre like me, that date should trigger some PTSD. I donāt remember if it was February or March but Qualtrics sent us all home indefinitely sometime around the start of that year. While we could have probably just stayed in Utah, our plans were already in motion and we thought the pandemic craze would be over shortly so we proceeded with the move to Austin in May. My job at Facebook began as remote work and stayed that way. In one of the great ironies of my life I moved to Texas for a job and did not see the inside of any office building a single time in over 4 years there.
Working at Facebook went well, though it was not as magical as my internship. I threw myself at the job and quickly became a top performer. I was promoted to E4 after 6 months, and 12 months later was going up for E5, but I left before I could see it through. It was a good job, but the subject area did not interest me and I wanted to take a chance on something new. An opportunity with Replit came up after interacting with the founder Amjad a few times on Twitter. I interviewed, got an offer ā and turned it down. I told myself I wasnāt ready to leave Facebook yet.
The next few months was emotionally turbulent. My manager, correctly seeing me as an attrition risk, connected me with a high-ranking principal engineer who I met with once per week. During one of our meetings he went on a rant and told me that I only had one shot at life and shouldnāt waste it doing things I didnāt want to. Maybe working at Facebook fit the bill for him but it certainly didnāt for me. It was then I decided to take the job at Replit after all.
It would be impossible to summarize everything I learned at Replit in a short blog post. It was easily the most transformative time of my career. I threw myself at the product and built as many new things as possible. To name a few: search, firewall, resource util, deployments, autoscale & static, cron. I took an idea from pitching it at a hackathon to leading a new team that was built around it over the space of a year. I wrote dozens of āfuture of Replitā documents and shared them internally. The product felt immensely malleable and versatile for endless use cases. It was a lot of fun. I especially enjoyed traveling with my coworkers to a bunch of cool places for offsites: Hawaii, Florida, and of course a half dozen different places in California.
Shortly after joining Replit, I moved my family from Austin to Houston. Austin was fun but we weren't taking enough advantage of it to justify the cost of living and distance from family and friends. I'll have more to say about remote work and location selection in a future post.
There is much more I could say about Replit. Eventually my time there had to come to an end. I had learned all I was going to learn and progressed as far as I could within the constraints of that company. An old friend introduced me to the company he had recently begun working for, and after another period of intense emotional turbulence, I made the switch. I start the job at Remi next week!
Side Projects
For better or for worse, I have been the kind of guy who always has a side project. In college I started making mobile games in Unity with my brother (same one whose girlfriendās dad gave me the weird basement Linux job). After discussing hundreds of different ideas, we settled on āPixel Dungeon, but with card battlesā. We formed an LLC called Pollywog Games and shipped our first game, Card Crusade, about 9 months later. Launching this game was an incredible experience. I remember getting featured by Touch Arcade who gave us a glowing review, and the huge rush of sales that followed. We didnāt make very much money, maybe $10k in total, but it felt different ā better, somehow, to make money by doing something fun, rather than by just clocking in.
A few years later, we launched our second game, Barnardās Star ā Chess meets Starcraft, in async multiplayer. I worked on this quite a bit prior to the launch, then lost interest over time and let my brother take over the project. Heās managed to keep it up with regular updates, and thereās still a dedicated community of players to this day!
I worked on a few different ideas with a friend, hoping to find something a little more financially interesting. Since he didnāt know how to code, I made the prototypes and he handled the ābusinessā side. We worked on an app for party games, an app to find events that were happening in your city (obligatory idea every founder does at some point), and an app for people to discuss business ideas. None of these projects made it past the prototype stage. It was still fun to hang out and have someone to talk about little in-progress apps with.
In my last year at college, I took an entrepreneurship class where the assignment was to come up with an idea for a software business and build it over the course of the semester. This was by far the best learning experience I ever had. The professor was a crusty old guy who had sold his startup a decade or so prior. He gave us brutally honest feedback about how bad all of our ideas were ā watching him crush dreams was a sight to behold. As suggested by my podiatrist brother-in-law, I worked on a mobile app for patients to send their medical information to doctors (another obligatory idea everyone tries). As you can imagine, it didnāt go anywhere after the semester ended.
At some point after college I had a little money and developed an addiction to trading stocks and cryptocurrencies. I made money in isolated spurts doing this, but every time I tried to develop consistent strategies I just lost over and over. During my second paternity leave I worked on a trading software idea which eventually turned into Trading Cage, a product I shuttered shortly after a failed launch.
There were a few other projects I undertook at various times: a cookie clicker game on Solana, an app to generate fictional social media videos, an app to help you improve your lawn with AI. All of them were fun to make, none of them made money.
I donāt think I want to work on side projects any more, and for the most part I wouldnāt recommend it to people, except for those who are just starting out who need help getting their first job. Itās fun to work on your own ideas, but in my opinion it is even less likely for a side project to succeed as a business than for a venture-backed company, and the odds of that are already low. Youāre just not going to be able to compete with dedicated teams as a solo guy working on something half-heartedly during off hours. If you want to start a business, do what you must do if you want to succeed at anything in life: go all in.
Whatās Next?
Despite how long this post is, Iām describing a period less than 15 years from beginning to end. I have another 30 or so years in the industry to think about.
My goal throughout my life has been to accelerate, to go faster. In everything I do, I am always pushing myself to go faster. In particular, I am trying to move up the date of my financial freedom. I donāt want to wait until Iām 65 to have all the money I need for the rest of my life.
My best option to do this is to start a company. But Iām not quite there yet ā there are a few more things I need to learn first. Thatās a big part of why Iām joining Remi.
Two things attracted me to this company: one, the opportunity to teach and mentor a small team of young engineers everything Iāve learned; and two, the strong financial position the company has. They scaled net revenue on a new product from zero to 10M+ in a single year. Coming from a company that is still in the process of finding scalable revenue, as well as working on side projects for years that have never made more than pocket change, this is incredibly compelling.
Thereās a lot to say about why I joined and what I think will happen here over the next 5-10 years. But, I think Iāve already written enough and my optimism about Remi will have to wait for another post. If youāve made it to this point, congratulations :) I owe you a soda. Come find me and we can talk.