Over this past summer, (the summer after my sophomore year), I began working for a well-funded, just-past-series-A startup. I wasn't officially on the engineering team, but I worked very hard to do a lot of data engineering, data visualizations, built some critical integrations and task automations, and otherwise took on tasks that others wanted not to have to do, but that were critical to the company. The summer went by quickly, and just before I was to return to school, one of the cofounders took me out for a chat. He told me that he'd hate to see me go, and offered me a full-time position on the engineering team. When I said no, he offered a half-time position as I finished school. I said yes. A week later, classes started, and I also made the transition to working with the engineering team. I quickly began to run into problems. I could definitely pass my classes and continue to work; don't get me wrong. But the reason I'm even remotely valuable as an incoming junior is because I become almost childishly curious about the subjects of my study. As they put more responsibility on me at work, I worry that I will not have the time to dive in depth into critical courses such as linear algebra, database systems, linear regression, vector calculus, operating systems, etc. I worry that even if I pass these courses with a B, not taking the time to really play with them will leave me permanently stunted from my true potential as a computer scientist and engineer. I aspire to go into machine learning research, and I worry that taking this job has surrendered my long-term potential for a short-term reward. But on the other hand, I've already taken the job, and it is giving me some experience. People tell me that the knowledge that I receive at work is more valuable than that which I receive at school. But all I've been doing is data visualizations, and end-to-end test automation. So I worry that if I stay, I'll be trained for a position below what I aspire for, but if I leave, I'll have a bad employment track record and burn some bridges. I already accepted this job and I really like the team, but it is also interfering with my education much more than I originally anticipated. I fear there is no good way to cut an engineering position to "half time", and that I will not be able to compartmentalize the time needed to think about work. For those experienced engineers, what would you do in my position? I'm curious about different perspectives, from the self taught, to the phds, etc. Is it worth it to stay at the risk of my understanding of some courses? Would it be bad to leave now? I'm only getting 3k a month TC and I worry I'm losing precision and detail in my knowledge of important fundamentals. But I also dont want to have bad marks on my name and employment record, so I'm really scared. What should I do?
I worked a software engineering job while in school, I didn't really have a choice because I needed an okay paying part time job, but I also thought it would help me in the end. It helped in the sense I know how to navigate the professional world much better than someone else fresh out of school, but I just skated by with all my classes and graduated with a lot of holes in my knowledge (or at least not understanding some things as deeply as I would have liked). You only have so much brain power in a day and with the nature of the job, unfortunately most of the went to work, the thing paying me. If my goal was just to get some whatever job I would end up fine. But I wanted a FAANG job and I still have a ton of learning to do for that (beyond just leetcode). I think if my life had been all about school I would be more prepared than I am now. Work tends to be focused on one area so although I got good in that, it doesn't translate to the wider breadth of knowledge I need for FAANG. If your goal is academia, leave the job and focus on school. Telling them it's interfering with your studies is a perfectly valid reason. They will understand and you're not a slave, you can leave at any point. Part time school could be a valid option too depending on what you can handle but I personally wouldn't have wanted to extend school for a job.
Thank you for such a thoughtful response. I really appreciate hearing your perspective and it's certainly something I needed to hear.
Good luck. Oh, and the "employment record" thing - nothing to worry about. At worst you would not be able to use them as a reference. But I bet you they will still happily give you an excellent references if you explain your reasons for leaving. It sounds like they really like you.
I would talk to your boss about your studies interfering with you job performance. Provide some options on how to improve the situation, including working part time. If you can't work something out quickly, you should quit.
Quit the job. Don’t worry about your “employment record” — it’s highly unlikely that future employers will ever hear of this, and if they do you can explain it as you explained here.
You want to do ML research in two/three years. Work backwards from there -- what would a person do to make that happen? They would talk to professors about doing research today. They would quit the job that they don't need and distracts from their goals. They would choose classes wisely, focus on the important ones, and not worry too much about the rest (although GPA matters for grad school). They would hopefully realize they only get to be a college kid once, and take advantage of the social environment they'll never experience again (assuming you're young). Get in shape while you're at it, and try to fix bad habits. College is an amazing opportunity to work on yourself if you don't have to work. This job means jack for your goal of doing ML research. You won't burn bridges by quitting. Even if you did, who cares. It's not relevant to your life. Your boss might be disappointed, but he's looking out for his own skin and understands how the game is played. I say quit tomorrow, figure out what it takes to get into a high-tier ML grad program in 2 years, and go hard. It is so easy to make decent money in software engineering that the downside risk for chasing your dreams and failing is a joke. Take your shot while you still can.
I would recommend this. Ensure your GPA is top notch, not for the sake of GPA , but for the money you're paying for, you need to make sure it's worth it. I unfortunately, went for a path which was work on my internship part time in hopes for a full time offer, but I ended up not getting an offer from them after graduation. They used me for cheap labor. In essence, pain is temporary, GPA is for life. The company you're working for does not give a rats ass about your education and learning. But probably is enjoying the fact that you're going to a top school
Drop some courses - take fewer of them. May be that will be manageable. It might take a couple of more semesters but since you be working full time it should play out fine.