Handling Adversity as a Software Developer
When I graduated from college as a Bachelor of Computer Science, I uprooted myself from my 13-year-familiar environment of Kansas City, MO, USA to move to the vicinity of Ausin, TX, USA. I had high hopes and big dreams. I was going to be a programming superstar in the game industry, make my own video games under my own independent game studio, and generally rock it out.
Cut to six years later:
I no longer live in Austin, TX, a thriving tech and gaming epicenter, but in Selinsgrove, PA, USA, a very small university town with a population under 7k.
I am married to a wonderful and loving husband of three years. We are quite comfortable in the home that we own, with our three cats, our vegetable and flower gardens, and our plans to adopt a child in the near future.
I have worked for six different tech companies as a software developer, with some of these positions in the game industry, others skirting it, and some not involved in any way at all.
I have had both the absolute best and absolute worst employers of my entire 34 years in this period of time.
I have been lucky enough to be employed by an international company based in the United Kingdom. During this time, I experienced the incredible differences between the backward American and progressive European outlooks on employment and employee mental and physical health. I lived in London, UK for nine months.
I have released seven games as a result of my employment with other companies.
I currently have my own independent game studio established in name and legality only but have yet to publish a title of my own accord.
I have had the privilege of working with and training some amazing people in software development and design.
I am currently unemployed as a result of the toll the COVID-19 pandemic has taken on the world.
All of this is said to demonstrate that life as a software and game developer (and in general) doesn't always turn out as you expect. There are twists and turns in the road.
Some you can easily see coming.
Some have big yellow warning signs that kindly direct you.
And some that creep up behind a hill that you're climbing at 50 mph and leave you stranded in a ditch with a broken axle and two blown airbags...
So what can you do when your software developer career isn't going quite as you hoped or expected? What about those times when life throws a very unwelcome wrench in your carefully lain out plans?
It isn't easy, especially in the heat of the moment.
You may have just had the ABSOLUTE. WORST. DAY. of your entire professional life and you're ready to hand in your letter of resignation right then and there. 💡 Or, better yet, walk out and don't return; let them deal with the fallout; let them figure out how to maintain the multiple systems that their entire business runs on and build that game manually for six different platforms in 2 hours and reach that absurd deadline.
Breathe. Take a minute. Take the evening. As much as you want to walk out today, you will feel better the next day and the time you took likely will give you a fresh perspective on whatever pissed you off yesterday.
If you do decide that you still want to move on, burning bridges is the last thing you need or want to do to yourself. As large as the tech industry is, it is surprisingly small. You'll be amazed at how many people you run into time and again throughout even a portion of your career. Sometimes that's a great thing. It can get you hired. It can also get you blacklisted if you leave a company on bad terms and your old manager happens to know the hiring manager or an interviewer at your new prospective company. Word spreads, quickly.
You likely made a good impression and did good work during your employment. Don't ruin it on your way out. Leave every job as though you want to return to work for them again some day.
Tech changes under our noses, every day, every hour, sometimes even every minute. As you read this, someone somewhere in the world is developing the next Netflix, Fortnite, or SpaceX. It is our responsibility as software developers to continually keep up with technology so that we are best prepared to solve problems, advise, and innovate.
Taking time to learn a new programming language, brush up your math skills, read up on a new machine learning framework, configure a CI/CD pipeline, or whatever else you find of interest will not only build on your ever-expanding skill set but also provide you with a (sometimes much needed) respite from the daily grind.
Try to make it your goal to learn something new, however small, every day.
Seek Out Challenge
I don't know about you but if I do not feel challenged in my work, I very quickly begin to feel stagnant and disengaged. I love to solve problems, and I have had a few positions where I found myself doing the same kind of work in each new project. Boring!
As much as possible in your individual situation, be proactive about finding jobs that will continue to challenge you so that you keep a forward momentum in your engagement and satisfaction with your employer and position.
Ask questions during the interview process about what kind of work you'll be doing. What is the day-to-day like? Interviews aren't just for the employer to test your skills and decide if you're the right fit. They need to be the right fit for you as well!
Don't Be Afraid to Take Risks
Most choices do not come without some sort of risks. This is why your parents and teachers tried to encourage you to make pros/cons lists and evaluate your options. Doing so is a great way to help you see things clearly and keep you from making rash decisions.
Even so, depending on your needs and circumstances at the time, you mustn't be afraid to take a little risk. Sometimes you just have to make the leap and have faith that it will all work out. Complacency is a killer.
Some of the best times of your career may also be some of the hardest. If you've ever spent any time with a startup, you'll likely have seen that the people involved are some of the most passionate, happy, and hard-working individuals you'll ever meet. We love our jobs and work, and we work hard at it!
If you haven't had the privilege of working for a startup, I highly encourage you to do so at some point in your career. You won't regret the experience, I promise you.
Take a Chill Pill
Seriously, lighten up! This is life, and we're all in it together. You don't have to have all the answers. Talk to your peers about your projects and your opinions. Ask for advice from your leads and managers. Make your career yours. It is, after all.
When things don't go as you expect, take it with a grain of salt. If you don't get that game development job, or you have to work outside of your dream industry for a time, that's okay! You'll find that you learn a lot that you wouldn't have otherwise, I guarantee it.