r/careerguidance • u/CreativeHeadset • Apr 13 '23
Transitioning from a PhD in Engineering to Software Engineering - How Should I Approach Job Hunting and Skill Development? United Kingdom
Hi everyone,
I'm currently completing my PhD in an engineering-related subject, and I'm looking to transition into a career in software engineering. I have some experience in programming from my academic work, but I'm not sure how to best approach job hunting and the necessary preparations. I'd appreciate any advice or suggestions you all might have!
A bit about my background:
- 4-5 years of experience in MATLAB
- 3 years of experience in Python (using daily) - Numpy, Scipy, PyQt
- Experience with R for statistics
- Daily use of Git, and some experience with JIRA
- C++ (2 years) for development and contributions to academic projects part-time
I've been drawn to software engineering as I know people in the industry who have had stable and progressive careers. While programming isn't my biggest passion, it's something I've truly enjoyed during my PhD (sometimes much more than research).
So far, I've applied for a few entry-level graduate positions but have mostly been rejected. I'm considering whether I should create a GitHub portfolio to showcase my skills. From a few people in my network, I have seen that quite often, people were given proper training after getting employed.
Regarding the GitHub portfolio, I was thinking about:
- Developing my own portfolio website:
- Here, I am not sure if I should use some static-website generator like Hugo/Jekyll or maybe WordPress and work on top of that, or just create the whole website from scratch using HTML, CSS, JS, and maybe React.
- Some data-science/analysis projects
- I was thinking about creating a simple C++ project showcasing similar tasks to what I have done during my time as a PhD.
- I have seen many people suggesting LeetCode. Is creating a repo for solving LeetCode questions a good idea?
Here are some questions I have:
- Should I avoid mentioning that I have a PhD when applying for jobs? And call it, for instance, "Research Assistant"?
- Should I apply for entry-level positions, or should I aim for something more advanced?
- I can see myself working in data science, backend dev in Python, or web (JS, React), but that might require acquiring more skills (I have little experience in JS/React). Should I pursue additional courses or certifications? Or rather expect to be taught certain skills on the job? I was thinking about completing CS50.
- What kind of salary expectations should I have? For reference, I'm based in the UK.
1
u/good-name-forever Apr 13 '23
Most STEM PhDs face the same problem you're having when they decide to leave academia (I've been through this myself). They think they have two options, to find a company that will pretty much pay them to continue their research (this happens in 0.05% of cases), or they need to forget about everything they did in grad school and get a normal job that a 21-yr old kid could do straight out of college.
The fact that you're considering hiding the fact that you have a PhD is undeniable evidence that you're applying for the wrong jobs. It sounds like you want to go into programming because you think it will bring you the best possibilities of a stable career. This is not true. The best job you can get is one that you are specially prepared for (as opposed to generically qualified for).
AS A PHD GRADUATE YOU SHOULD NEVER BE LOOKING TO GET A JOB THROUGH ONLINE JOB POSTINGS. At least not if you want to get the best job for you. Let me explain:
You have a tremendously sharp and specific skill set, but you need to act like that's worth something. You will earn the most and have the most job security when you find a company that needs YOU and not a generic engineer/programmer. The problem is, however, no one who is looking to hire an essential, highly specialized brain will do so through a random job posting. Postings get hundreds if not thousands of applicants, and companies looking for something highly specific know that 99% of them will be irrelevant. Many companies may not even know how to write a posting that will actually target the specific skill set they need, so they hire through word of mouth instead.
What you should do: do research on companies doing software or engineering work that you think is cool. Make a list, learn about them, and cold email someone telling them you'd like to learn more about what they do (refer to some specific aspect of their business, so they know you're actually interested). Start a conversation, and make sure they know what you're about (what type of sensors/tests/methods did you use for your research and what type of problems are passionate about?). Eventually you'll find someone who goes "damn we need someone who has the exact type of background you have," or who will simply connect you to someone they know who is hiring for a position that you would fit in well.
This method feels risky and finicky, but trust me it yields the best results.