I am currently seeking to transition into a career as a compiler engineer, a field I find deeply fascinating. The interdisciplinary nature of compiler engineering, bridging areas such as computer architecture and graph theory, intrigues me greatly. Additionally, the sector offers promising financial rewards, especially with companies like Meta, Nvidia, and AMD that are at the forefront of hardware accelerators experiencing significant growth. I am convinced this growth trajectory will continue, making this career path an ideal blend of intellectual fulfillment, professional growth, and competitive compensation.
Due to recent layoffs, I find myself unemployed, and I am seizing this moment to pivot towards compiler engineering. However, I acknowledge that there is a steep learning curve to becoming an ideal candidate for such positions. The required skill set typically includes:
Previously, I worked as a senior backend engineer, specializing in tool development using functional programming languages such as Scala and Ocaml. My experience spans across FAANG companies and two startups.
To bridge the gap in my skill set, I have been actively contributing to open-source projects similar to LLVM and honing my C++ skills through consistent practice on Leetcode. Despite securing a few interviews for compiler engineering positions, I have not been successful, primarily due to difficulties with compiler-specific questions.
I seek advice on the following:
Any guidance or insights from those who have navigated a similar path would be immensely appreciated.
I was able to secure 2 Android offers in 2015 with 0 professional Android experience, but this is because I had worked on Android apps for fun for 2 years prior to that and built several side projects apps with 10,000+ users. Professional experience is the highest quality, so there's a decay factor when you're trying to mimic it on the side. I imagine it will be tougher for you as you're interviewing for L5-level positions (I was going for L4 at the time).
I think your current strategy of contributing to open-source is great. If possible, I would see if you can build some standalone side projects (compilers is more "infra-ey", so this could be extremely difficult). Another option is to make your own open-source library which would get you a lot more reputation.
All that being said, I think it's extremely difficult to do a career pivot as a senior engineer during a job search in this market. Given your rich experience, I personally would stick to your strengths to land a job at a big company that has a stake in compilers and then push for an internal transfer after you have proven yourself to be a high performer. Check out this thread for more details: "How to transition from back-end development to distributed systems?"
Wow, thanks for the answer @Alex! This is great advice!
Will check out the video you posted!