Taro Logo
Profile picture

Interviewing Q&A and Videos

About Interviewing

Tech has one of the highest rates of job switching, making this skill incredibly high-leverage and vital to master. Understand what it takes to convince companies you are strongly competent.

Pre-Sales AI Engineer Considering Switch to SWE vs New Role vs Masters

Pre-Sales AI Engineer at IBM profile pic
Pre-Sales AI Engineer at IBM

This whole train of thought started after a coffee chat with a family friend who is an Engineering Manger at FAANG where she told me that she thought I was getting too comfortable and that I needed to start working on harder problems to keep learning.

In my current role (my first and only job since graduating college in May 2022), I work with prospective F500 Banking & Insurance clients to engineer small scale POCs that prove the value of IBM’s technology, and to hopefully convince them to complete the sale. I was originally hired with the title “Data Scientist” but noticed that my customers were largely uninterested in IBM’s Cloud Platform ML offerings and were already using other hyperscalers. Following the release of ChatGPT, client interest in IBM surged and we have had much more business as clients stand up our Generative AI Studio offering (watsonx) vs others (think Vertex AI, Azure ML, Sagemaker). In January 2024, the business updated my title to AI Engineer to reflect this change, and I work almost completely on LLM related deals now, and almost never with “classical” ML. The primary technologies I am responsible for are: Generative AI Studio, Data Lakehouse (including vector DBs), Data & AI Governance & AI Virtual Assistants (chatbots).

I would say that my role consists of 50% Business Development and collaborating with sales & account teams to develop and progress sales opportunities and 50% hands on the keyboard engineering. None of the POCs we develop are architected with deployment in mind, as IBM also has a consulting business that they promote for that. Ideally the client is billing consulting hours, and my team costs nothing so we should build as fast as possible.

For some context, in college I was largely unsure what I wanted to do afterwards, and joined IBM quite literally because I was a senior who was about to graduate with no job, and I knew someone who worked at IBM sales that offered to help me. That was the first time I ever thought I might go into tech. I went to an Ivy League school where I earned a BA with a joint major in a Social Science + Statistics. The stats I learned were much more applied than theoretical, and despite having the degree, I would say that I lack the necessary mathematical foundation that one would expect of an MLE or Data Scientist, including key topics like Linear Algebra, Stochastic Processes & Discrete Math etc. I did take one intro ML + NLP class, but it was extremely general and not mathematical (although it thankfully helped me fake my knowledge to pass my IBM interview). I also didn’t take any CS courses except one intro Java class.

I know what my classmates at FAANG earn, and their entry level base salaries are at least 50-60k higher than mine. I also do not have any equity in my compensation package, which I know will make the real difference in the long term. IBM is making a concerted effort to reduce our workforce size. Despite being a high performer with consistently good feedback from my manager & colleagues, I don’t think that I will earn that first promotion soon to close that salary gap between IBM & FAANG. Luckily, I don’t see myself getting laid off soon either, so there is no urgency to make decisions.

This company definitely gave me a shot when others probably would not have given my background and Data Science skills at the time. I feel like I have spent the last two years faithfully giving them as much as I can and also learning a lot for myself along the way, but now is the appropriate time to start thinking about where I really want to go in the future.

I feel like the Data Scientist position I was originally hired for required a certain level of mathematical foundation that I had, but that building with pre-trained models definitely does not require. I had skills that were relatively harder to develop and somewhat in value, but now prompt engineering can be taught in almost a day, and one can quickly learn the adjacent tech stack to build and deploy with LLMs without much math. I thus feel anxious about tying my future to this, as my market value would naturally be a function of how hard the skills I have are to acquire. The AI Engineer role requires more of a Software Engineering background to really integrate the LLMs into apps than a math background. I could also keep focusing on learning more math and get into the model training & research side, which is an option I am considering too.

Despite landing here by accident, I learned that I really like big tech, and I think I actually want to end up in a Sales role as well. I am told by my manager that clients give positive feedback about working with me, but I observe that the best sellers who earn the most money in IBM are the ones with deep technical expertise AND who also have the soft skills to become trusted by the clients. These people often worked on product teams or in highly technical roles before finishing in Sales, which is what I think I should do too, as my knowledge base is too broad to really become a technical expert, and the POCs I build are too short to have any knowledge of how to actually deploy these technologies into production.

I would thus like to end up at a FAANG company and make more money, and probably work on an AI product team either as a SWE/Data Scientist or potentially even as an AI researcher (though I’m not interested in a PhD, which I know is important). My question for you all is what would be the best path for me to get there? Should I focus on studying more math and to try for a Data Science/MLE role, or should I try to focus on learning Software Engineering & patching up my math with supplementary self-paced courses.

My initial hunch is go back to school for a 1 year Masters in CS, and take a few math courses beforehand & maybe some more math based deep learning or transformers focused courses while there. This would ideally make me suitable for SWE or DS/MLE/AI Engineer roles, and expand my chances of success. Most American schools require CS bachelor’s degrees and their applications have closed, but this masters program in the UK at Imperial seems open. Does this program look like useful material for someone in my position to learn ()?

I feel like I have half the math and half the programming experience to succeed, but am not knowledgeable enough at either to really do as much damage as I know I am capable of. I would be keen to hear from some of you more experienced veterans out there how you think I should proceed. I have been living at home with my parents and saving money, so I could pay for the masters and assuming I make it into FAANG the extra salary would mean the degree pays for itself in 1.5-2 years. I could go on educational leave and my job at IBM will likely be there for me should I fail to get recruited somewhere else (IBM recently stopped paying for masters degrees unfortunately). I also know that there is opportunity cost of not earning for 10 months while at school.

Given my context and situation, the main questions I want help thinking about are:

  • Given the way the industry is moving and my experience, which kinds of roles should I aim for?
  • Should I try to earn the masters, or should I try and self-study either math or software engineering while at IBM and recruiting slowly
  • If I go the school route, would I have enough time to be able to pass an interview in Fall 2024 when I start (since I would need to recruit right away) if I started preparing now, or should I wait until the next application cycle and start in Spring/Fall 2025.

I know this was long, thank you so much for reading, and thank you in advance for your help. Hindsight is 2020, but I am young and I don’t fault myself for not knowing what I wanted to be when I grew up. I know with hard work and patience that I will get there.

Show more

Transitioning into the compiler engineering field (or any other domain) if you are unemployed and don't have prior experience in the field

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

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:

  • Proficiency in C++
  • Experience with GPUs
  • Knowledge of an Intermediate Representation Language (e.g., LLVM)
  • Understanding of computer architecture

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:

  1. How can I enhance my chances of entering the compiler engineering field, especially without being part of a compiler project community or holding a position of authority within such a project?
  2. What strategies can I employ to prepare for and succeed in domain-specific interviews, considering my lack of prior experience in this area?

Any guidance or insights from those who have navigated a similar path would be immensely appreciated.

Show more

Learn About Interviewing

Interviewing is an essential skill for every software engineer. The tech industry has one of the highest rates of job switching, so learning how to get good at interviewing can elevate your career. Your ability to transition between roles and companies depends on how well you perform during the interview. Taro offers resources for helping you to excel in software engineering interviews. We provide insights on effective preparation strategies and guide you on how to master the interview.
Interviews are a test for you to demonstrate your problem solving and technical skills. The ability to navigate complex challenges during an interview shows how prepared you are to take on the demands of being a software engineer.
Interviews also assess cultural fit and communication skills. This is important because you’ll be working in collaborative work environments where you need to talk to your team and other teams to execute well on your projects. Having great communication skills means you are able to effectively outline a broader vision of your project, dig into the technical details of your project, and communicate any potential issues to your stakeholders.
It’s crucial to thoroughly research the company to get valuable insights and make a good first impression. You can filter our Q&A by company to see whether there are any relevant conversations about the company to help with your interview. You can also check Blind and Reddit to understand what people are saying about the company. Use our Taro Networking feature to reach out to people in a company to get an insider perspective of the company. The company page should include information about their values and culture. Make sure that you align with these values. You should get a sense of the company’s financial reports to understand their products from a revenue point of view.
You should have a solid foundation in data structures and algorithms to show your experience and problem solving capabilities. Pick a programming language that you are proficient in, and use it for the technical portion of the interview. Leetcode is recommended as the best tool to practice for data structures and algorithms type of interviews. The provide a large set of problems with a code editor for you to solve the problems, and they have test cases and performance profiles so you can evaluate your solution. it’s also recommended to prepare through mock interviews.
The above strategies, along with diving more into Taro interviewing resources, can help you effectively prepare for an interview at a tech company.
Show more