Apologies in advance for the wall of text. I’ve been collecting my thoughts for a while now.
There’s a saying: “change happens when the pain of everything staying the same exceeds the pain of making a change”. I would like some perspective, ideally from those who’d made career changes into tech, about whether it was worth it. In particular, I’d like to focus on two factors: salary growth and technical development.
I live comfortably now (100k/yr; 4% bonus/4% pay increase/yr) but I’m under-worked and feel like I’m leaving money on the table by not switching into tech. I’ve even thought about taking on/have had a second job, working an extra 20-30 hr/week for $16-19/hr as a sales associate to make some extra cash - it’s nice, but it’s absolutely boring and I usually quit after 3-4 months to take a break. After taxes, the extra earning would amount to 19k/yr - which I feel I can easily make by switching into tech.
Some background about me: I’m a working professional (3 yrs, US, East Coast) and would consider myself a Jr. dev based on my relatively shallow code design experience. I have exposure to SW dev processes (TDD, version control, requirements, implementation, refactoring) and know several languages - C++, C#, Python, Powershell. I spend my time working in a desktop environment (as opposed to web).
I work in defense, where the applications are interesting, but the pay ceiling/raises are low. Accordingly, dev environment is very startup-like: small, complex/niche/internal applications with few users. It’s a low-pressure work environment but I think working here for an extended amount of time could jeopardize my SWE career because:
I’m not doing a lot of actual development work (there’s a lot of paperwork and manual testing in defense – it’s unavoidable when you’re using custom hardware). In my first year of employment, I did nothing but manual testing. I hesitate to say I hated it because other more seasoned dev were put on the testing task as well, so it wasn’t just gruntwork for the new guy - it’s an important albeit boring/repetitive task. I’d gladly do this if I were paid more but I’m not paid more and there are other things I can/am willing to do, to be paid more.
The “product” I’m working on is unique and the technical skills (frameworks) don’t seem transferable. Web tech is usually about building services that will scale: high volume of concurrent users, high-traffic, diversity of users.
I’m working on applications that won’t see a lot of automated testing (con: my ability to write unit tests will deteriorate). They utilize old C++ frameworks (not to say they aren’t reliable or crappy, it’s just not what employers are using nowadays – C# or Java for enterprise customer-facing desktop apps). And they usually don’t need to be performant (i.e., exercise my ability to write multithreaded/process applications).
The reason I haven’t switched yet is:
I know very little/nothing about web dev stacks. I’m going through FCC’s HTML/CSS/JS tutorials atm. And it looks like it’ll take a LOT more work to build portfolio. Luckily, leetcoding is pretty approachable, even though I’m new to it (I took a lot of advanced math in college so the DS&A of leetcode is not difficult, though it requires practice).
Cost of Living /investments. I’ve repaid my student loans and just have 10k in car financing. Positive net worth overall and halfway towards a 50k emergency savings fund. I’m in a good financial situation but I don’t want to stop 401k contributions. Though I splurge from time to time, I’m usually good about living within my means, savings, and not taking on liabilities. I feel a higher paying job would accelerate this.