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 (link)?
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:
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.
Does this program look like useful material for someone in my position to learn (link)?
Eh... I'm skeptical. The reasons to do a masters are:
"I want to learn something new" is not a strong enough reason IMO: the cost at Imperial College is probably very high, and a year of your life with no income is also a lot. Can you try to self-study or switch internally at IBM?
You said you went to an Ivy League school, so you presumably already have a name brand and high-powered friends, right? There is value in getting a CS degree (since you did Social Science + Statistics), but I honestly don't think this will hold you back.
Once you get your foot in the door (i.e. your first job at IBM), then the value of your degree quickly diminishes.
Most American schools require CS bachelor’s degrees
I don't think this is true. I know plenty of people who got a masters in CS who received an undergrad degree in a non-technical field.
I strongly believe that your best path forward is to switch internally to SWE within IBM. IBM is a huge, legendary tech company - I'm sure you could find an internal transfer opportunity if you try hard enough. More advice on career switches here:
I also recommend against a Master's. The ROI isn't great IMHO, especially when you're already in the industry working for a well-known tech company like IBM. There's a lot of great advice and perspectives here: "Do I need to do masters in Computer Science to move ahead in career?"
Also, I highly recommend coming to my upcoming Group Office Hours if you can: Group Office Hours With Alex - Career Direction (Company + Offer Evaluation)