Switching from Defense into Tech

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:

  1. 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.

  2. 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:

  1. 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).

  2. 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.

I’ve read this three times and I’m not sure what the question is?

Is it worth it?

For me, yes. But my situation before I switched was completely different to yours…

I’m a little confused about the title ask:
“Switching from Defense into Tech”.

The term “Tech” is very generalized. In many aspects you are in tech right now, if your writing code, working on a computer building software for a company. That’s 100% tech, maybe to be more specific your in “defense tech”, but tech none-the-less.

Focusing on this, you’d be looking more at just plain switching jobs to another company that can give you this. Defense by its nature of being “tied to the government” means the company will naturally move slower. No need to move too fast if your only client is the behemoth that is the government(s). However even with that being the case different companies can have different cultures and way of working.

For example, SpaceX is a major defense contractor by providing industry launch capabilities for the US DOD. SpaceX is notorious for moving fast and utilizing modern technology. They are also known for not paying the best, and pushing their workers heavily, but I digress. I’ll use them as an example for no other reason than they are a well known large company that is very much a “trend setter” post-disruptor company.

I believe them to be a good example because they can refute the concept that “only web dev companies do this stuff”. I’d consider most of what you want to be more tied to a company’s technology goals than the industry they are in.

SpaceX does integration testing with their custom hardware using modern technology:

Same goes for most companies out there tech and non-tech alike.

Kinda? This sort of problem is solved by a very common buzz word: The cloud. However most companies/developers just leverage the cloud and its service to solve this problem. To the point the current problem isn’t so much the cloud, but the costs of utilizing the cloud to scale.

This is also one of a set of problems with the web, depending on your role you could be dealing with this 24/7 or never at all.

I’d actually take a pause and focus on this part. This is the goal, career switching is just the means. What you career switch into is primarily tied to this goal. Its possible you have secondary goals you didn’t mention, these could or could not lead toward “web dev”, or maybe your current background leads to some other sort of work? Or maybe you just want to do a different type of work?

Regardless of the secondary reasons, if you just want to get more $, I’d start with the sort of roles you think you could get, at companies you could apply for, for the salary you desire. Diving directly into front-end web-dev doesn’t automatically mean you met your goal, in many ways you might actually shoot yourself in the foot and end up doing nothing you actually want to do, and get paid less for it (!)

Mike - sorry for the confusion. I had many thoughts racing through my mind.

There is a fierce debate in my head regarding what to do with my free time after work: continue to learn work-related stuff or shelve all of that to start from scratch and learn the skills to be a web dev. I only have 2-3 hours of free time after work and the skillsets are so different for both industries that I have to focus on one or the other. Both “sides” make great arguments and I feel a lack of resolve – and this has taken a toll on the quality of my work: at work, all I can think about is learning web dev, and while I’m doing FCC tutorials, all I can think about is how I should be reading the design docs for the software I’m working on at my day job!

An outsider might say “It’s just a design doc. Use work hours to read it and get it over with and spend your free time building skills to switch jobs.” but the design docs literally consists of ~20 documents, each around 1000 pages long, a culmination of tens of thousands of hours of work, spanning across several disciplines (electrical engineering (DSP, Communication Systems), embedded systems, orbital mechanics, software engineering) and probably 30 years of R&D. It would probably take my entire working career to get a handle on this system – and the catch is that although all of it is interesting, the pay won’t scale as well as a career path that is less interesting but more in demand.

To address your question, I mean to ask: how do I find the resolve to do one or the other?

I mean it sounds like you have a decent career already? I’m not quite clear on what your job role is but it sounds like you already work in tech?

So what’s the benefit of switching?

I’m not familiar with salaries in the US but I would doubt you can make 6 figures in your first developer job, so you would have to make a financial sacrifice for maybe a couple of years to pursue that path?

Sorry for the confusion. I provided some more context in my response to miketandy’s post.

Yes … the title of the post is terrible. Wish I could edit it to read “Conflicted about whether to switch industries. How to find resolve to stay or leave my current job?” but this forum doesn’t let you change the post title.

Please replace “Tech” with “Web Dev” in my OP.

Indeed, my current background leads to other sorts of work, the kind that is intellectually fulfilling but the compensation vs. work-put-in curve isn’t proportional. I’ve received advice from older folks who’ve made a career out of working in defense and I hate what I hear: “to get a decent raise, you need to job hop – you can’t rely on your employer to pay you fair market value. You can work your fingers to the bone but in the end it’s years of service [with one company] that usually determines your pay”.
I heard it was different in web dev, where the more experience/skillful you are, the more leverage you have in salary neg/renegs. I prefer a job where the compensation is commensurate with the quality of my work, not the amount of time I spent with a company.

I’m not sure if you’d consider it a goal but I would like to find a job that also exercise my dev skills. Where I am now, I get assigned to random tasks like “write a powershell script to be used by the customer to install security updates” and I don’t feel like they’re meaty work that I can list as a bullet point on my resume.

Also not sure what you mean by “other type of work” but the thought of doing something other than SW dev hasn’t crossed my mind. I love this stuff.

I assume you mean “roles you think you could get, at companies you could apply for, for the salary you desire [with your current skillset]”. I’ve googled this and the pay ceiling is lower in defense than in web dev. A Sr. Dev in defense might make $150k at the peak of his career, where someone in Web Dev might make that much after 5-7 years of experience, with a peak of 200k+, depending on the scale of the market, his role (probably full stack), CoL.

To avoid taking a pay cut, it might make sense to pick up the skills, switch internally onto a team that does web dev. It minimizes the risk that I would be fired for poor performance (I can always go back to my old team if I can’t keep up with the work).

This is kinda true sometimes (not a great answer I know!)

You get paid relative to what the industry is willing to pay. High end web devs could be getting paid well by working for a well paying company, classic examples would be FAANG companies. You could also be a “web dev” and working on wordpress making 60k a year.

You could also not be doing web dev and be getting paid what you want, it all just depends on what company you work for, and what they are willing to pay.

“Web Dev” doesn’t automatically guarantee what you want, it just might come to mind first. If you like the idea of web dev just because of the paycheck, I’d also consider where you background currently is to see if there is something “closer” to your current skills.

For example, C++, C#, Python + powershell sounds like a .NET shop background. .NET as a framework can be used for the web, but it also can be used outside of the web context. Web might be popular due to accessibility, but there are transferable skills, and thus transferable job sectors where this would still apply.

You could also just be a back-end dev to support front-end web applications, and still be “in the ballpark” all while still working with what you already know. HTML/CSS/JS is just part of the puzzle.

I’d consider this first, as you said its a low risk attempt and most companies support internal job transfers as its cheaper than hiring a new person outright.