Path of a professional developer

The path to successful professional life isn’t always straightforward. Assuming you have a relatively stable life growing up, the path that’s usually prescribed is: great university, great internships, and great marks throughout. Once employed, you need to have publicly-recognized signs of greatness. In the case of a software developer, this means creating or working on popular open source projects, perhaps speaking at conferences, or being involved in white papers.

Especially in the earlier years of my career, and even during and before university, I was convinced that according to most measures of success, I was failing. Some years later, I can say with tenuous certainty that I may not be failing after all, and that the definition of success is more fluid and multifaceted than society would have you initially believe. I may just be writing noise here, but this is something deeply personal to me. This is an abridged version of my story, told in the hopes that someone just starting on this journey or currently on the path, can shield themselves from the oppressive doom and gloom that often hovers over professionals, even as they’re doing just fine, and to help others realize that society’s myopic indicators of success, while sometimes well-meaning, often miss the greater points of life as a professional.

Before University

I spent the first half of high school not caring about anything, grades included. It all seemed so meaningless. In my second-to-last year, many people began taking pre-SATs, a preparation for the American standardized test to apply to university. I’ve always disliked standardized tests, not just because they’re a terrible indicator of human capacity, but because they’re a waste of time and effort. I found out that I could avoid the test entirely if I chose to go to community college first, and then transfer to a university. Not only could I dodge the ridiculous test, but the cost of community college was an order of magnitude cheaper. American universities are expensive, to the tune of tens of thousands of dollars, so this was no small thing for a middle class family.

My friends, meanwhile, studied hard for the SATs, joined clubs and other extra-curricular activities, and all got into great and well-known universities studying various fields of science. The film Office Space had scared me enough from working in software that I went with another of my interests, bioinformatics (e.g. the human genome project, protein folding). While they were experiencing campus life living away from family at prestigious universities, I lived at home and began taking courses that would help me transfer to university.

Fear of Failure

I compared myself with my friends and their glamorous university lives, and my comparatively banal and routine life, and didn’t feel great about it. Community college was seen by some in the somewhat elitist community I came from as the last resort of a desperate high school dropout, destining me to a subpar life. The longer it took to transfer to university, the further out any form of success felt.

In Reality

I met some of the smartest most successful people I know in community college. I had great teachers that laid the foundations for what would be my future in software. I saved a ton of money living at home and paying less tuition. Without caring about going to a brand-name school, the focus was more heavily on learning and practicality, including soft skills that would later help me in the industry. The focus was less on rote memorization and flooding students with homework, and more on the learning process and fundamentals. Hearing the tales of being heads-down in university from my high school friends right from their first year, and the endless worrying about impossible tests, I felt I had dodged an unnecessary bullet. The learning at community college, far from being subpar, was meticulous but practical, such that when I finally transferred to university, it seemed simple by comparison.

University

Finally, I had made it. I had caught up to my high school friends. There would be no more need to compare myself to them. Sure, my university wasn’t as famous as theirs for as many things, but it was still relatively well-known, especially for the field I wanted to pursue.

I finally had decent internet speeds, was living on my own, and had lots of free time on my hands, so I did what many people would do: watch a ton of shows, play games, and mess around with open source software. At that point I was only 2 or so years with a Linux-based OS on my desktop, so was mostly in the exploratory phase of things. I built scripts for IRC programs, peeked at the code that ran the GUI programs I used, and wanted to work on one but didn’t know where or how to begin. I became so distracted from classes that I wasn’t getting the highest marks.

In nearly my last year of university, I decided to switch majors to computer science, since I decided that although I liked bioinformatics, I didn’t want to work in it, and after dipping my toes in the software world, I wanted to know more about how underlying things worked, such as algorithms and compilers. My university advisor warned me against the change, but signed off on it all the same. Was I making a mistake?

Fear of Failure

I wasn’t writing any open source software of my own, or even helping many existing ones for a while. My grades were suffering, so I must not have been smart enough to handle my classes. I switched majors in my last year for my own curiosity, but maybe it was unnecessary or wrong.

In Reality

It took a bit of getting started, but eventually I got involved in some open source projects and had significant contributions to them. While it was a far cry from the best code I’ve ever written, it was an important first step in writing something people actually used. From their bug reports and anger, I got to learn how much users care about their software, and which things as a programmer you can let slide, and which you can’t.

My grades faltered a bit, but when I chose to focus on studying, I hit the highest marks without a problem. Ultimately, grades are often more of a reflection of effort and persistence than intelligence alone, and they end up meaning little once you go to work (except for at large companies that demand your university record when applying to a job even if you’ve worked years in the industry).

The First Job

My first job coming out of university was an internship at a giant corporation called Intel. Given the financial situation around 2010 I considered myself lucky to have a job, and this one was a pretty great opportunity. I got to meet some incredibly smart and productive people, learn how real management works, travel across the country, and begin building my resume. I finally started making some money doing what I do, and while it wasn’t a 6-figure salary, it was well decent.

Fear of Failure

But I had friends who were doing startups, working in the web, making amazing and obviously impactful things. Here I was writing some things in the back of the back, out of sight and out of mind. Yet other friends were going to grad school, some at Ivy Leagues, and that kind of credential is something that really shines.

Was I failing?

In Reality

Everybody has to start somewhere just to get your bearings. What I had was in hindsight a great start, and the management and organizational techniques that I took for granted from this company, I would later find lacking in future jobs, but would know from experience that good management is possible and that I could have a part in making it a reality. I wasn’t a failure for not going straight to web or straight to startups, I was building the beginnings of my foundations as a professional.

Web Development in Startups

My job at Intel involved hardware, and in order to have a larger impact, I’d have to go right back to university to study electrical engineering, and I wasn’t ready to do that, already working off loans, tired of pure academia, and unsure it’s what I wanted to do. People I knew were into startups and the web, and it sounded exciting and new to me, so I took the dive.

I went to Tokyo. I learned the basics of relational databases, HTTP APIs, dealing with large and difficult to work with codebases, and many of the fundamentals I would later need.

Fear of Failure

But I was missing out on the astronomical salaries of Silicon Valley while off in Japan. I didn’t have access to the same conferences and people they did, and I might be limiting myself. I wasn’t making a name for myself in open source. Was I throwing away my career?

In Reality

Regardless of where you are on Earth, learning is learning, and the skills I would pick up there would form the basis of my career in web. I had a chance to learn from and with some of the best engineers I have ever worked with. Most open source work takes place on the web, and with a solid connection, you can do it from anywhere. Silicon Valley tends to drive a fear of missing out, but many aspects of it are completely available elsewhere. Besides, Tokyo is not always sunshine and rainbows either.

I came close to leaving the country from this fear, but I’m glad I didn’t, because the next job I had would change my mind.

Web Development Leader

I joined a company as the first engineer, inherited an existing slightly shaky codebase, and basically had to hit the ground running. I hadn’t had much experience doing fullstack + infra yet, and this would be a trial by fire. I had to interview and hire engineers for the first time, scaling up a team while learning and doing, and keeping the site up, while driving a full site redesign, adding payments, and other bells and whistles. Oh, and I had to do this while often working with a 16 hour time difference.

Fear of Failure

At this point, “fake it till you make it” was my anthem. Sure, I knew programming, but the breadth and depth of everything to be done was overwhelming. I was thrown into the deep end of a pool I didn’t know existed. I thought, this is it, this is the point where I fail. It’s all going to come falling apart and I’ll never work again.

Hiring people in San Francisco while being in Tokyo seemed like an insurmountable challenge. Here I am, trying to sell a job in a city that I myself would not move to. I’m trying to build things I’ve never built before and trying to do a good job but quality always falls short.

It’s over, I’m finished.

In Reality

I failed. Many times. But after each failure I learned something, and I got better. The site got better. Things got better. Nothing was ever perfect and there was always more to be done, but I began to celebrate the little triumphs (and the big ones). The team eventually grew, and focusing on quality over quantity had paid off, as we got to hire some amazingly talented people. I didn’t get fired, but I did get promoted. More responsibility brought more stress and more chances to fail, but also better-feeling successes.

My biggest failures led to my biggest successes. This isn’t always the case. Many people think failure is a goal because Silicon Valley celebrates failure. You should never aim to fail, but if you do, make sure you learn something from it and do better next time. Avoiding failure altogether is even better, but reality dictates that’s not always possible. Deal with it.

Back to America

A few jobs later, I was at an impasse: the amazing lifestyle of Tokyo, or the amazing career growth of Silicon Valley. Now I must stress that although to many this is a false dichotomy, in my case the scales were heavily tilted toward SV due to family, familiarity and my desire to reconnect with the perceived heart of tech. I spent a while getting used to the US again. America is a strange place when you first come back, and Silicon Valley even stranger. I was shocked at the size of food portions, the large apartments, tall ceilings, and all sorts of other things. Maybe I’ll write about that sometime if it’s of interest to anyone.

Fear of Failure

Not wanting to move to San Francisco, I stayed in the South Bay and worked remotely for a company up there. Things were going well for a while, but I began to think that I was doing too much of the same thing. At this point I’d been working doing mainly backend web development for 5 years or so. The world seemed to be shifting toward deep learning, data analysis, serverless architectures, containers and all other manner of tech. What if I was in an obsolete field, on its way out? Had I let myself rot too long in Tokyo? Did I miss the train? Was I going to be jobless? Were people in the office doing better career-wise because they were not remote and had more face time? Was I stagnated by not moving to San Francisco?

In Reality

Staying out of San Francisco has been a great decision every step of the way. I managed to avoid the crazy rents, the spending on outings, and the strange and disturbing social bubbles that exist there (the South Bay has its own set of bubbles with their own tradeoffs).

A few years after this, I can say that web development is still going strong, and while deep learning and serverless architectures and so forth are being used here and there, they exist to augment and not entirely replace what is already there. Since then, I’ve begun to pick these things up, and while they are deep and wide fields, it turns out it’s much easier now to apply deep learning to problems than before, because the tooling is better developed, and so in some ways waiting was a blessing in disguise.

It’s never too late to catch up on anything, just that the gaps widen the longer you wait sometimes, but other times, they narrow. It’s not linear. The fears are not unfounded, but don’t blow them out of the water.

Now

At every step of my professional career I have been scared of being left behind, afraid of failing, afraid of not doing well enough, afraid of falling by the wayside and never getting back up. Each and every time, these fears have been proven to be overblown. I still feel the paranoia, the fear, but now I balance it with a dose of reality. A good friend of mine once told me “things are only ever as bad as you think they are” and he’s often right. As professionals, we always want to do better, we want to avoid failure, and we want to keep growing. I think it’s inevitable that a voice in our heads is always warning us of impending doom. This may also be a strength, but when blown out of proportion, it can be debilitating.

The state of your professional career is a fluid living thing. It will be filled with all manner of ups and downs, but don’t worry if you don’t become an open source rockstar, end up on the cover of such and such magazine or site. After years of fear and work, I can look back and see many successes, a lot of growth, and a lot of room left for growth. Don’t let the setbacks stop your career halfway through, and don’t let it paralyze you.

Open source work is not the end-all be-all of learning. You don’t need famous projects on GitHub to be a decent programmer, and some people with famous projects on GitHub aren’t actually great programmers, though they may be great at getting people to collaborate on things. Getting media attention may be exciting, but living a peaceful life outside of the eye of the mass media has its own rewards.

High compensation and titles are great, but they can only take you so far. There will always be someone out there who makes or has more than you. It’s fine to have goals, but they should be relative to the market realities of the time, and to your own personal growth, not theirs.

The most important things are to keep learning, keep doing, keep meeting people that you can work on things with, learn new things from, and to get inspired to learn more things outside of work. Ignore the negative people that knowingly or not put you down, make you feel bad, and ultimately make you accomplish less. They are either jealous of your progress, or are mirroring their life stresses on you, which in either case doesn’t make them worthy of your time. Focus on the positive people who encourage you to do more and know more, who will discuss things with you, and with whom you can work out any problems.

Finally, regardless of society’s judgment of your success or failure, that call is not up to them, because they don’t get to define all of your goals. The path to professional life, its challenges, wins and losses, are ultimately, and have always been up to, you.

Backend web developer. Silicon Valley / Tokyo.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store