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.