My Origin Story
I started my career as a student. Spoiler: I’m still a student.
I didn’t know what I wanted. OK, I knew I wanted to just play games, eat pizza, and drink mountain dew all day. But none of that was going to get me anywhere except diabetic.
I knew I wanted a stable profession, and of the handful of mentors I had at the time, half of them were pushing me to technology, one specifically to engineering. Nobody I knew was pushing software development, and I wasn’t fortunate enough to discover my inclination for coding until I was most of the way through college. (Maybe in some ways that makes me more fortunate.)
I thought computers were just for games and PowerPoints and Napster. I was pretty good at making them do those things, but didn’t think I’d be good enough to write software. So I told society and my family I wanted to be a mechanical engineer, and the awe at how hard they thought it sounded made me feel good about myself.
I got through engineering school, mostly because of momentum and the sunk cost fallacy. And I knew how to take tests.
None of the courses were particularly exciting, except for two near the end: Senior Design (we designed and built our own audio-sensor circuit; I’ll share more on that later) and Mechatronics (we built a self-driving RC car using visual sensors and embedded C! It was amazing!… but crashed a lot. In the interest of avoiding the trolley problem, we put that project to bed after our presentation.) Note both of these projects are heavy in NOT my major.
Then the economy crashed. I graduated and moved. I couldn’t find a job in my field. Copy paste standard graduate’s experience after the Great Recession.
I like to blame the economy. It absolves me of my lack of internships and my mediocre GPA and general lack of direction (spoiler alert, those are the real reasons, especially the last one.)
Troubleshooting the (Belief) System
Success is not supported by a single pillar. It’s a tripod. At least. There might be additional phantom legs I haven’t discovered yet. Or my selective ignorance is protecting me.
At first, I thought I needed to do one thing. All I needed to do was get really good at something, then get hired, and just do until retirement. I guess that’s three things, but we can encapsulate it as getHired(). Get the right degree, and the rest would just happen. I’ve been wrong about many things, but disproportionately more wrong about this.
Now I believe knowledge is useless without interest and application. Knowledge for knowledge’s sake is good for improving your worldview, and perhaps making connections between topics and areas of academia or hobby interests, but it’s not actionable. You need direct, immediate application of that knowledge in a way that sparks your interest.
The third leg of the tripod is how you relate to people. It doesn’t matter how interested you are, or what you know, if you can’t talk to people. My introversion and shyness and lack of confidence was crushing. And most of it stemmed from not CARING about the field I was pursuing, which made me feel like a fake, like I didn’t deserve to be that thing that would tell society I was successful.
Taking Another Stab and (Sort of) Finding the Mark
After not knowing what to do with my life, and being generally unsuccessful in finding entry-level work in my chosen field, and semi-suffocating under the student loan burden I couldn’t yet repay (like nearly every other average graduate at that time), I went back to school. I still picked the wrong field, but I got closer.
First, I took the GRE and did pretty well, then threw my application spaghetti at the graduate programs of the nearby university. One department ignored me (my undergrad field!) and the other said no (probably because it wasn’t my undergrad field). Maybe my heart (wallet) just wasn’t in it.
So I went the other direction and enrolled at the community college in electrical engineering technology.
This was more of a course correction and less of a final bearing. It had elements of what I already had a good grasp on (the physical engineering, how to study, and how to perform advanced calculations) and what I eventually discovered to be something both interesting and actionable (read: something I could actually have a career in which was challenging and rewarding on a regular basis, and was also a lot of fun).
We were taught circuit design, building, and embedded programming. We built our own prototype boards using the PIC-16, then wrote C programs to test them using a small LCD screen and some LEDs. Knightrider LEDs: The Coolest.
We also had a healthy dose of networking. We used Linux, learned protocols, hosted websites, and tinkered with Raspberry Pi and Arduino. This was my favorite class and really propelled my interest in software development.
During this return-to-school stint, I got a job with an electronics company repairing circuits. It was immensely frustrating, but had its moments of satisfaction. Occasionally I managed to actually repair something instead of blowing it up (or ‘letting they smoke out’ as they say in the electronics world).
But I was still frustrated at how much I didn’t know, and didn’t feel like it was the right path. I just didn’t have a strong passion for the physical engineering aspect of either mechanical or electrical work.
My Interests and Professional Skills Converge
What really caught my interest was the software. The data analysis. The automation.
I began to think about how I could contribute, maybe reduce the overall failure rate so I’d have to do less repetitive physical repair work because there would be fewer failures to repair if they knew how to prevent them.
I looked at the data. What failed most? After how long? Why? I had to cobble together my own data sets, and I doubt any of it would pass any sort of rigorous study requirements, but management liked what they saw, since it was better than what they had before (nothing).
And I volunteered for it. It was outside my primary duties, and I spent time off-the-clock figuring it out.
At first I used Excel VBA (don’t choke on your laughter, please!), because Excel was where the data was, and to a beginner, it was pretty accessible. It began with simple formatting and timestamping and moved on to dynamic chart generation and table manipulation.
Someone noticed what I was doing and said “Hey, why not use our database instead. You can learn SQL and this dashboard called APEX.” Heck yes.
They had been migrating order and CRM data to Oracle (from a third party FORTRAN CRM application! I don’t even know what data storage tool it used).
So I took an online course in SQL (more of a glorified slideshow, really; I learned more from hacking at the read-only database and looking at existing queries and trying to make sense of them). In a couple of months I had a decent enough grasp on SQL and APEX to be able to create dashboards and metrics. Management loved it. Some of my less technically-oriented coworkers thought I was some kind of wizard.
Unfortunately (or fortunately?) I knew the truth. I knew next to nothing. But I loved it! I was driven by my curiosity, and I was getting paid (at that point) to learn these new skills that people found so useful.
But that was as far as I could take it, and I didn’t know how to ask for more. I was still afraid that maybe I wasn’t smart enough to full-time this sort of work. When they started asking me to do less interesting things, I knew I had to make a change.
The (Partial) Leap
I taught myself the LAMP stack and built a PHP application which used search fields, bullets, select dropdowns, and checkboxes to filter information about the monstrosity of a grindfest adventure RPG Monster Hunter (side note: great game, huge learning curve; requires a special inclination to make incremental, nearly unmeasurable progress, and the patience to deal with atrocious RNG). The biggest hurdle with this app was the voice in my head telling me it had already been done by others (and pretty well too! I used those as sources of inspiration). I fooled that voice by telling it I was doing it for me, that I just wanted control over it, and that I didn’t intend to publish or share it.
Meanwhile, I was looking for a developer job that matched my limited experience (a little of each of: PHP, SQL, Java, VBA, git; none of it team-based). I found one as a Developer Analyst, working with T-SQL procedures and a custom visual programming workflow builder application driven by Java.
I was quickly given a project to lead and my SQL, design, and project management skills grew rapidly. I was also required to spend large amounts of time developing, dissecting, and discussing design documents with both in-house and remote teams. I gave several presentations on various projects, and provided training to clients. These led me to grow my confidence speaking and presenting in a professional environment.
I never stopped developing applications on the side.
I picked up Python and Django. I built and deployed four Django applications to Heroku. I still use one of them today, and am occasionally improving it.
I did some exploration into Android programming and published a test application to the Play store, but didn’t take it beyond that.
I dove into OOP with Java and built a text adventure. For fun! Because text adventures are awesome. My text adventure, however, not so much. But it was a testing ground for the concepts I was learning, and the added drive to want to see the resulting product kept me going.
But I still felt like I was on the wrong path in my day-to-day career track. I felt like a second-class developer, and was treated more as a DBA/analyst (to be fair, analyst was in the title, and I was responsible for a few databases). I was edging my way into being able to develop actual applications, but it was taking too long, and I still wasn’t brave enough to outright ask for it. Maybe that’s on me. But whenever I brought it up, I was met with surprise. So I again made a choice.
I reached beyond where I was comfortable and applied to and was hired for a Software Engineer position working directly with Java.
Even though I felt somewhat like an impostor (which is very normal, it turns out), I knew it was what I wanted. I was determined to absorb everything I could, and within a year, I learned an outrageous amount. I was soon turned onto the DevOps aspect and have been working to develop CI and other automation tools.
Parting Thoughts (With a Machete or Other Sharp Implement!)
There’s no way I would have made it as far as I have by staying in a silo and developing hobby apps. I attribute a huge part of where I’m at to the ability to be the student and not let ego get in the way. I ask for information or clarification when I don’t have what I need.
95% of software engineering is talking to other people. Or 80%. Or 99%. It depends on the source and what role you currently inhabit. Also, 63% of statistics are made up on the spot. The takeaway is that relating to people is THE critical skill, and that probably applies to almost any career.
Another major chunk is curiosity. You have to want to explore, and figure out what you don’t know. This applies not only to technologies, but also to your own weaknesses, attitudes, emotions, and behaviors. Discover what they are. Talk about them with your manager or mentor (or therapist!). Find the tools to cope with or enhance them.
Finally, read! Read anything! Watch TED talks! Follow really smart and successful people on useful platforms like Medium or Quora. Take notes. Just the act of thinking and reading and recording what stands out to you and your reactions to it actively changes the way you see the world. It’s the other side of the coin to experience. Humans have a unique ability to capture a concept and transfer it to another brain. Don’t squander it.
Resources and Recommendations (Or, My Pillars of Sanity)
- Grit by Angela Duckworth
- Quiet by Susan Cain
- How to Win Friends and Influence People by Dale Carnegie
- Mindset by Carol S. Dweck
- Emotional Agility by Susan David
- The Obstacle is the Way by Ryan Holiday