A little background: I’m a backend developer. I have around 7 years of experience working on various backend code bases in PHP, Python, Node, etc. I also have a masters in Software Engineering.
I got into web development because in my home country that’s your only choice as a software grad. You’re either a front-end/backend dev or you’re unemployed.
I was completely fine with the job in the first few years because it was easy money. But lately I’ve been thinking about moving to different areas (game development, embedded, etc.) to explore a little especially since I moved to north america a while ago.
But honestly after all these years working on these start ups and “fast-paced enviroments”, i feel like i’m not in touch with the basics and fundamentals anymore to make this jump.
I’m not sure about the best way to go about this. Do I need to read books? Do I apply to specialized junior positions that interest me? Do I need to get the comp-sci notes out?
How would you do this? What’s your advice?
Also I’m 31 right now (not sure if it matters)
With the increased wages, I could afford to take summer holidays off and spend it with my family, and work on passion projects.
That's when I really got into game dev (2015). I made a bunch of small games, a lot of them throw-away/unpublished. I then started learning game design (from books, Coursera), but really thought I'd benefit from doing it with others, so right now I'm half-way through an indie dev masters [0] (Falmouth flexible).
The masters has been great, because it's self-directed learning, and I've built a great network of collaborators. I've just set up a Patreon this week, and will be slowly building up a sustainable indie dev living. (I'm already down to 4 days a week on my usual career.)
I've read so many stories of folks saving up a year or two's runway, only for it to not work out in the end, so I'm trying to be as prepared as possible. I'm learning as much as possible right now about finding repeatable success as a game dev.
I'm 42 this year, and not the youngest in the cohort, but surprisingly also not the oldest. (Got a couple 50+, and a few other 40+).
This is just my story. I sincerely hope you find something that you can fall in love with again. Good luck!
0. https://www.falmouth.ac.uk/study/online/postgraduate/indie-g...
I've now been out of the game dev industry for many years, but last year I took a brief contract doing that work. At $40/hour - which maybe is adequate for the 3rd world but not for the US. I could make nearly that much driving a truck.
So I don't recommend game dev. Unless you are a rock star, expect to be working a lot for peanuts. I believe even the actual gamedev rock stars could be making 2-4X by leaving the industry.
This only takes a few days but you will quickly reach to the very core of computational foundation. Once reached, you'll never look at software with the same eyes ever again.
The experience will change you and your life for good. Some of the benefits:
- You will understand what the computation really is
- You will start to adore the math, and algebra in particular
- You will understand that a general computation is just tiny but extremely powerful abstraction over math (Turing completeness)
- This will open access the widest palette of instruments and approaches already present in math through hundreds of years
- You will get a totally different take on JavaScript. You will start to adore it, as it's just a LISP with C syntax. Extremely powerful yet simple
- You will understand any language and any programming system because you reached to the roots of computational theory
... and so on. I am sure this simple exercise will open the endless amounts of possibilities to you.Well, that sounds like a cheesy marketing intro into some book, but hey, this is the truth. Good luck!
Web dev to embedded is pretty much the biggest jump I can imagine. You'll definitely need something on your resume besides 7 years of PHP, etc. if you want to try this. The good news is that if you're determined to go this route, you can get some of this experience working with Arduinos and other fun little microcontrollers.
As far as games go, if you hated the "fast paced environment" of a startup, I'm gonna guess you'll hate game dev.
If you want to play to the strengths of your experience, you can probably find a home at a larger tech company, one that's not so startup-like. A larger company offers a lot of advantages over startups: you get to see what a mature tech stack is like and how it all fits together; you have opportunities for mentorship; and a large company has processes & procedures that are mature and tested.
If you really are as out of touch with the basics as you claim, you'll definitely need to study Leetcode to have the best chance at many companies. And, I wouldn't be afraid of being downleveled to a mid-level position, as opposed to a senior level position that would befit 7 YoE.
All this stuff is just my humble opinion, and mine alone. Given that it's free advice, I will, however, guarantee that it's worth every penny you're paying for it. ;-)
Hate is a strong word. Eventually you will at some point have to write boring HTML and CSS and maybe some Javascript.
I don't hate web development, but I have grown to dislike the rapid pace at which that industry changes. It seems the minute you think you have grasped it all, the whole ecosystem changes. New HTML elements come out. New build systems, libraries, even entire stacks come out (Think JAM stack etc).
However as an industry, web standards have matured to a degree that writing a SPA is an allowed thing to do. It used to be you'd have to cater for a bunch of browser quirks for different browsers. Now you can safely write something in Firefox and it will work in Chrome with no cross-compat coding on your part. I will give the webdev scene that, but it still changes too frequently for my liking. So you've just mastered React? Watch out, because gatekeeper recruiters will put 'Must have strong proficiency in Svelte' just to annoy you.
If you like working with Python then DS/ML/AI might also be an option.
Look at the job listings in your area and identify what domains and skills are in demand and then craft a path to get to the area that most suits / appeals to you. Sometimes you may need to take a cut in pay to enter a very different field.
There's other easy options if it's the latter. e.g. JS lets you work on TV and there's emerging new AI applications, so you could probably make a smart fridge and such.
If you explore things like app development, which isn't a large shift, it opens up a lot of doors - drones, IoT, maintenance. There was a job I applied to years ago where they'd attach old phones to rocks and used it to detect poachers. Another one involved prepaid solar power distribution to poor people in Africa. Or things like FireChat which was used as an alternative communication tool when floods brought down telco towers.
Can you work in your current job as fullstack, alternating back-end and front-end?
Embedded systems engineers command great salaries, so do full stack engineers. I wouldn't recommend game development if you want to continue enjoying it as a hobby, the industry notoriously burns people out quickly.
Once you've decided on a position to focus on, search through a bunch of job postings and take notes on the skills and technologies that employers are looking for. Study those skills and technologies by reading books and working on toy problems that interest you. Putting together an open source project is a great way to demonstrate these skills to potential employers, but definitely not necessary. Be on the look-out for jobs and employers that seem particularly interesting to you.
When you feel reasonably in touch with the basics and fundamentals, start applying for positions. Start out with employers and positions that you don't particularly care for, use the interviews to practice your rhetoric and build your confidence.
Make sure to have trusted friends/coworkers/mentors in the field review your resume and give you feedback. I avoid listing any particular technologies on my resume, because sometimes they can box you in - but admittedly some employers will be looking for X Y & Z technology listed on your resume, so don't be afraid to make small tweaks for specific companies and positions you are really interested in. Don't be afraid to embellish your resume and work history - it's okay to say you led a team even if that responsibility was never formally acknowledged. Don't outright lie though, and be very prepared for interviewers to ask in depth questions about your prior experience - I usually bring a notepad with talking points to help me remember all the details of projects I've worked on. Don't be afraid to admit a lack of professional experience with some technology - having experience with such technology on personal projects can go a long way towards demonstrating aptitude.
Finally apply to those jobs and employers that stuck out to you - the ones you really wanted or were interested in learning more about. Try to give off a vibe of ambition and hunger to achieve, managers will pick up on those traits, whether consciously or subconsciously. Technologies come and go but soft skills are very important so feel free to mention that you're a great technical writer or that you are an excellent mediator of conflict, etc - it can help fill the gaps of experience or knowledge in a domain.
Most of all believe in yourself and your capacity to learn and grow - that will be the primary factor in your success.
I think its that easy.