I’m looking to transition from my current role as a Data Engineer to a full-time Software Engineering (SWE) position. I have over 7 years of experience, including 5 years at Facebook/Meta and more than 2 years at a startup. While I have enjoyed certain aspects of the data engineering , I’m finding the analytics side less fulfilling and would prefer a 100% backend-focused role. I am also open to taking a pay cut if necessary to make this transition.
I am currently pursuing my Master’s in Computer Science online from Georgia Tech, where I’ve focused extensively on systems courses like Operating Systems, Compilers, Distributed Systems, Parallel Programming, and Cloud Computing, maintaining a 4.0 GPA. One standout course involves building a database from the ground up, which is further fueling my desire to shift toward software engineering.
Right now, I’m weighing a few options:
Balancing my current job with a master’s program has been challenging, especially since I’m working toward skills that align with my true career interests.
I would greatly appreciate your advice on how to best navigate this transition.
Do you still work at Meta? If so, the obvious path to me is to switch internally at Meta. I actually worked closely with a data engineer who did exactly this. Meta is kind of dumb when adjusting the compensation in these cases, so you would get a pay cut, but longer-term career prospects are definitely much better as SWE vs. DE (at least with Meta). As a heads up, you will need to go through the full SWE loop in this case or something very close to it. No real freebies here, even if you are a high-performing DE 5 at Meta.
When it comes to field transitions like these, my general advice is to try and switch internally first. Doing it via an interview is extremely hard. I talk about this in-depth here (different pivot, but same concept): "How to transition from back-end development to distributed systems?"
I know several people who have gone through the Georgia Tech OMSCS program, including my wife. Unfortunately, it didn't really help any of them too much with career advancement - The main value is the structure, accountability, and initial coding skills it brings. The program ranks well, but that is within the realm of academia. I remember the projects my wife worked on, and they were the classic basic school projects that don't matter much on a resume or teach deeper coding skills - For that, you need to build side projects, do open-source, or get real work experience (obviously).
Right now, I’m weighing a few options:
- Leave my job and join an interview prep company like Formation to improve my chances of landing a SWE role.
- Continue my studies at Georgia Tech, where I can further develop my SWE skills.
It is far, far better to interview while employed vs. not employed. Given your great background, maintaining employment is a very powerful asset. I would try to wrap up the Master's ASAP and after that, apply to all the jobs ever alongside pursuing an internal transfer.
Another thing you can do is start picking up more SWE responsibilities as a DE. A lot of data engineers at Meta were pretty much back-end engineers. Talk to your manager and tech lead and see if you can pick up more back-end responsibilities. Go to back-end engineers you have a good relationship with and see if they can give you anything from their backlog. The best way to show you're qualified for a job is to just start doing it already! Don't feel constrained by your title - It's just a string.
To juggle all of this, I recommend the productivity course: Maximize Your Productivity As A Software Engineer
I want to provide a different perspective here.
What are your medium and long term career plans after you switch to SWE? And what kinds of companies do you see yourself working at?
A focused SWE role is certainly more challenging than a DE role. But the challenge also multiplies many times over as you progress in your career, making it hard to be a competent, well-respected senior engineer. See my answer here on the pros and cons of specializing.
(The intent of my answer is not to deter you from switching to SWE but to encourage you to have a medium term plan post-switch first and use that as a guide for your next steps.)
One more thing about DE in particular:
Having worked with many DEs very closely, their software engineering skills and knowledge of best practices tend to be softer than typical SWEs. Part of the reason behind that is DE is a newer field, the barrier of entry is lower, and one can get very far by using the relevant services offered by the public cloud like AWS as lego blocks to get the job done. Scripting things together is usually enough for plumbing.
But this is changing. With ever-increasing reliance on data processing for everything, the two fields are merging—increasingly, DEs have to write microservices and build the same SDLC components as SWEs. This is often called Data Platform (as opposed to Data Pipelines). So that's another role you can potentially consider to sit between SWE and DE and carve out your niche using the best of both worlds.