Cracking SWE as a Non-CS Major: A Strange Path to Software from Chemical Engineering
Published:
TLDR:
After trying then entire breadth of Chemical Engineering in college, I found that I resonated with software development way more. I tried everything in ChemE: from internships at hot places for ChemE majors, 3 years of research, and clubs/communities on campus. I came to this conclusion at the beginning of my senior year. In my last year in college, I took OOP, DSAs, DS/ML classes, got a SWE internship, and landed an offer at a S&P 500 company in the heinous 2024 market.
- Major Learnings *
- Don’t do a DFS in your major/field in college, do combination of a BFS of other fields but try to dig a bit deeper in case you want to switch
- Join clubs that extend beyond the clubs surrounding your major: I got exposure to so many different careers joining a professional fraternity
- ChemE is not as versatile as they say: it’s 100% a difficult major, but a lot of skills are not as transferrable as other fields
My Journey in ChemE
Coming into college (Fall 2020), I was determined on getting my PhD in ChemE. I was inspired by what some of the hot research topics, specifically related to industries that are actively working on clean/green tech. I joined my AIChE chapter, and became a committee member on one of the teams. The following summer, I joined a catalysis lab, and I got familiar with some catalysis reseach and some lab activities. The following fall, I joined a lithium ion battery research lab, working with a grad student on trying to study gas evolution when cycling batteries to study degradation pathways.
Initially, my ChemE courses were a lot of fun: I was doing a lot of fun math, getting my hands dirty with surface-level theoretical work. My mentor in the McCloskey group was fantastic as well, and I was welcomed into the group with open arms. I got a process engineering internship offer at Chevron, where I worked on developing lubricant blending systems. Chevron was a good first internship: it wasn’t incredibly difficult, and Chevron is a large corporation with a good reputation in the ChemE space. However, I wanted to work at a company that was on the cutting edge of battery technologies.
I then took an internship offer at Tesla as a Cell Engineering and Cell Data intern: this was an eye opening experience for me. I worked on the formation team, or the treatment team that cycles cells and runs diagnostics on the cells that get placed in the battery packs. Here I worked with data scientists, process engineers, materials engineers, and software engineers to work and develop some research and data related projects to formation. I absolutely loved this internship: Tesla’s engineering culture really inspired fun and hard work. I dived deep into reading a lot of battery related papers related to cell formation, modeling, characterization, and charging techniques. However, I got a glimpse into what the software and ML developers were doing, and their work was truly incredible: developing and deploying models that worked with massive data pipelines, taking and engineering features directly from battery/electrochemical metrics, and working with the robots that routed and moved cells in the factory. I found that the process engineering design cycle was slow: I loved how fast paced, hands-on, and involved the SWE sub-teams were.
The Switch:
With a year (3 semesters) left and 0 SWE experience, I decided to dive into SWE, taking 61A, 61B, Stat 134, and some of the other classes that provided me a baseline to become a developer. I loved it: 61B and Data100 are 2 classes that every Berkeley student should take, and the grind is absolutely worth it. These 2 classes alone equip you with the tools to be literate in the world of software and ML. The next step was to get an internship: this was in the 2024 market, which was ridiculously rough. I was doing the works at this point: learning to leetcode, taking 61A/B, networking, and applying constantly. It was April 2024 at this point: people had their full time and internship offers, and I had over 200 applications submitted and I haven’t had a sing interview at this point. Fortunately, I got an interview at QuantumScape: a company developing next-gen solid state batteries in San Jose. I prepared my ass off for this interview, and fortunately, I nailed it. I kid you not, I had tears in my eyes when I got my offer: my chances at potentially becoming a SWE were about to be off the table if I didn’t get an internship in software.
Fortunately, I absolutely loved this internship. My mentor, my team, and my intern cohort was incredible. I have nothing but great things to say about my experiences at QuantumScape: I got some really interesting and fun backend experience, and I worked on an exciting deep learning project studying battery signal data (which was a dream of mine from my research activities). Summer 2024 was an amazing experience, and was my favorite internship to date. I truly felt connected to my work, and I coudn’t be happier I tried SWE out: I was determined on making this my career.
However, as the company was going through some major changes that year, I didn’t secure a return offer. Fall 2024 was a difficult semester: I had to swim against the current as a ChemE without a CS degree competing with incredible engineers around the country for the hottest job in the US. But, endless nights of leetcoding, procrastinating homework and projects, and sending thousands of cold emails, I was able to secure a new grad swe offer at a tech consulting company. It was truly an incredible feeling: against many odds, we did it.
So, Why the 180?
This was a complicated journey, so here was my issues with ChemE and how I found myself liking SWE more:
Issues that I had with ChemE:
- ChemE faculty, cirriculum, and the structure of these programs is quite old. It’s not uncommon for a old tenured professor to be using his notes from the 90s that have been tiple/quadruple scanned, that somehow exist today. The content that’s most immediately relevant to ChemEs is not updated with the times. Transport and kinetics: fine. Separations in this day and age looks totally different from the cirriculum. The tech that has evolved since the tabular days of look-up tables and phase diagrams are far from gone. It felt entirely useless to learn those skills as a ChemE in 2024.
- “It was hard for us, so it should be hard for you.” a LOT of legacy systems and methodologies for ChemE classes are archaiac, slow, and annoying. I have often found myself going through a lot of disfunction, whether it be deciding on what content is relevant for an exam or project or if content on the problem set was convered in class. It doesn’t have to be this way, especially for large lower div classes.
- The community is a bit insulating. There is a strong ChemE and CoC community at Berkeley, but unlike other majors, I found a lot of ChemEs joining the same few clubs. I felt like that we lack exposure from other majors such as the business, CS, medical, and finance communities, who offer so many different professional insights, opporutnities, and areas to learn across disciplines.
What I loved about the CS communities:
- Structure: I’ve never seen the level of organization in a class like I’ve seen in a 1000+ person class like CS 61B. The Ed was etremeley helpful, tons and tons of automation, and best of all: lectures were recorded and posted. I loved learning at my own paces, then going to discussion/lab and really diving into the material. I had so much fun learning because it’s designed for you to succeed.
- Open Source: So much of CS, ML, DS, and SWE material is online. Forums, career advice, and research are available for people to learn. This is not the case for ChemE communities: I struggled to learn and get a good idea on what the exit opportunities are for undergrad and graduate level ChemEs.
- Engineering Workflow and Product Design: SWE is on the cutting edge of developing incredibly fast and scalable products on the market right now. For ChemEs, the startup scene is not as robust, because designing, developing, and manufacturing a new chemcial is an incredbly difficult and capitally-intensive process. I wasn’t too keen on getting a PhD, so this rules out some of the core functionality and engineering related roles, and leaves technician-level jobs available. I fell in love with SWE, systems engineering, cloud infrastructure, and the flashy ML/AI tools that engineers and scientists are deveoping, and plugging into real-world problems. I felt much more like an engineer working on my SWE projects than anything from my previous ChemE internships/research.
Learnings:
I could talk about things I woule redo in college (maybe even change my major…), but that’s naive to say because I gave my major a full shot. Here are some learnings broken down by category:
General College Advice:
- Take a data structures, OOP, and a basic data science class. Get familiar with what a jupyter notebook is, how to access different libriaries, and how to make pretty plots. This will put you ahead of at least 75% of engineers/analysts, who got a silly MATLAB/excel class during their freshman year with no other coding experience.
- JOIN CLUBS: your friends are the strongest parts of your network. Make then source nodes, not leaf nodes. Your friend’s roommate or a club alumni can come very much in handy when recruting gets rough. However, don’t lead with this idea: establish a human connection with people, make friends, and in due time something nice might pop up! Always pay it forward, helping someone who was in your shoes. Also, join clubs that get you exposure: check out a club’s alumni network, where they place, and see if you can meet people from a variety of backgrounds. Specialized clubs are great if you want to dive deeper into a partciular field, but consulting companies are fraternities are a safe bet.
Cracking SWE for Someone Didn’t Know Anything:
- Your DSA class will truly open your eyes into the world of software. Try to absorb everything: from how to write clean code, to GitHub best practices, absorb everything. When you are trying to update your branch during your internship that’s 10 commits behind, you’re not completely in the dark when you have to stach, rebase, merge, and recommit.
- Make a small end-to-end project: I kid you not, after I took my OOP class, I made the stupidest workout tracker app. I watched 10 different YouTube tutorials, designed the world’s stupidest SQLAlchemy local DB, and failed to deploy it online because I had no idea how anything worked. With due time and enough ChatGPT prompting, I researched the best practicies, services, and tools needed to deploy a simple web app. This goes a long way, in terms of creating an idea, developing a design doc, developing the system, implementing the code, and, most importantly, hosting your app. Also, this has pretty decent resume value and will give you a good insight if you really like this field or not.
- Network Your Tail Off: Have no shame, ask everyone. Some family friend, uncle, aunty, everyone is on the table because of the market these days. Don’t leave any stone unturned. Getting your foot in the door is your utmost priority, and nothing should stop you (within reason of course) from getting to that finish line.
- Leetcode, leetcode, leetcode: This is your golden ticket. After doing the hard part, which is getting the interview, now you have to absolutely knock the OA and the live interview out of the park. You can’y rely on a CS background, because you don’t have one. This part of the process which has to have the highest success rate, because you’ve studied your brains out for it.
–> one thing I will note is that I did go to a T-10 CS/Engineering school. I know this dramatically increases my chances compared to other schools, and I can’t speak for those experiences. However, I am more than happy to try to be of help for anyone going through this process!
Final Remarks:
Thank you for bearing with this first, and long post, but my journey at Cal and this process was scary, fun, and ridiculous. I had a lot of fun doing it, and it was for sure a grind. I am truly grateful I got a lot of clarity on my career and interests before I graduated, especially during a major inflection point in the engineering field right now. If I can be of any assitance for those trying to break into SWE, please let me know! My inbox is always open. Good luck, and looking forward to connecting!