From IT Support to Quant Trader: My OMSCS Journey
Background
I got my first job out of college as software engineer at an investment bank on Wall Street (think Goldman Sachs, JP Morgan, etc). It sounds sexy on paper but it was really disappointing. The technology infrastructure was already well established & matured that there was no truly new innovative dev work, but rather mostly maintenance work on the existing legacy systems. So the job was essentially a glorified IT support (or "config dev" as we called it).Also it was a large organization. The entire company had 70k employees, with 10k employees in the technology department alone. There was a lot of bureaucracy and office politics, which I found stressful. Banks are heavily regulated so there was always a pile of paperwork and lengthy approval process to have to go through to make even a small upgrade on the production systems. Efficiency & speed are not the priority. I still learned a lot, in terms of both tech stack & industry domain knowledge.
In my 3rd year, I was so bored and was desperately looking for intellectual stimulation. Then I found OMSCS: a computer science masters program by Georgia Tech that you can attend fully online as part time student. Sold ! I applied and got in.
My expectation was Computing Systems specialization would help me grow further as SWE. But my ultimate goal was to learn for the joy of learning. Luckily, my employer had tuition reimbursement benefit so I didn't have to pay for it. I'm grateful for that.
First semester: Near Burnout
I was so excited and motivated for my first semester. And like many first semester students, I made a rookie mistake of taking two courses while working full time. I took KBAI & Computer Networks. The courses were fine, but it required significant time commitment to handle the sheer workload of juggling two courses. I was spending 100% of every weekend to barely keep up with the lecture, homework, projects and exams. It was relentless, and I felt utterly burned out. I managed the letter grade A in both classes in the end, but it was not sustainable. The whole semester felt like constant busy "get work done" grind than learning.My idea of "learning" was to have enough time to really digest the material. Maybe do extra reading on optional textbooks & papers to dig deeper into topics of interest. Maybe even do a side project. I absolutely had no time for any of that. So I decided to take one course per semester going forward. OMSCS is a marathon, not a sprint. The lesson learned the hard way :-)
CS 6250: Computer Networks (CN)
I took this class because I like the subject and also because I have a bit of networking background (previously published an IEEE conference paper as first author on wireless sensor network protocol virtualization). The lecture content was so much fun. The assignments are hands-on with lots of Python coding, simulating various network events (routing, congestion, topology design, flow measurement, etc). It's not too difficult so it's a perfect first course, assuming you have interest in computer network as a subject.CS 7637: Knowledge based Artificial Intelligence (KBAI)
I personally didn't enjoy the course. The lecture was so abstract that it didn't connect to the actual coding assignments. Also the course involved sooo much writing (than coding), which didn't particularly interest me. Overall it's an easy course but time consuming. (Here came another lesson: "easy does not mean quick")Prof Joyner is fantastic though. He is so committed to teaching. His courses are so well organized.
CS 6515: Graduate Algorithms (GA)
My second semester. I got in on free-for-all-Friday. It was hard, yet rewarding. Content-wise, it's a great class that every MSCS student should take.During the semester, I was so bored in my day job that I started interviewing for new jobs. Luckily, I got a job offer for a hybrid role of SWE + data engineer at a market maker (it's a form of electronic securities trading business). I don't think OMSCS helped in any direct way. Maybe having Georgia Tech name on my resume marginally helped land more interviews. But once I got to interviews, 100% of questions were about domain knowledge + live coding tests.
CS 6475: Computational Photography
I took this class because I like photography. Unfortunately, my new job got extremely busy, and I barely had time to watch lecture videos. So I just did bare minimum to get a B. Those of you in financial industry know that once you join a trading division of a sell-side firm, you must pass securities license exams: I had to take Series 7 and Series 57, which consumed all of my free time for a few months.CS 6200: Graduate Introduction to Operating Systems (GIOS)
This is a great course. All the project assignments are so well designed to really get you hands-on with OS fundamentals. The lecture content really connects with the projects. However, I personally didn't enjoy the memorization aspect (a lot of rote memorization is required for the exams). Until this semester, I was thinking of pursuing Computing Systems specialization, but this course made me reconsider my choice.CS 7646: Machine Learning for Trading (ML4T)
This became my favorite class in the whole program. Obviously I'm positively biased as I do ML4T for a living. It was refreshing to see my day job being taught as a course in an academic setting. By this time, I got more interested in the machine learning side of things, rather than traditional software engineering. So I decided to pursue ML specialization. Similarly, for my career, I started thinking about transitioning to a more ML/research focused role, away from conventional SWE career path. In retrospect, I think it's perfectly normal (and encouraged) for people in their mid 20s to explore interests and figure out a career path.CSE 6242: Data Visualization & Analytics (DVA)
This was a busy course. It's the only course for which I pulled all nighters (twice !). I liked how the course focused on implementation. All the assignments were "get things to work !" as in, this is a software engineering course, rather than computer science course. I personally enjoyed it.CS 7641: Machine Learning (ML)
It's a controversial course with its unique delivery style. Students either love or hate it. The lecture format is two professors having conversation in front of a drawing board. Instead of giving you a 10 minute concise powerpoint presentation with definitions & formula, the lecture video goes on for 90 minutes with the two profs discussing problems, debating ideas for solutions, and eventually arrive at known ML algorithms with hand-written derivation of formula. I personally loved this interactive style of lecture, as I get to see their entire thought process and intuition behind ML algorithms. Assignments are also controversial. They just tell you to conduct "interesting" ML analysis. They don't reveal rubrics because it's part of the assignment for you to think about what specific details to analyze. Each of 4 big assignments took me 20~40 hours. It was hard but rewarding. I learned so much.CS 6750: Human Computer Interaction (HCI)
I needed a chill summer course to recover from an intense semester of ML. So I went with HCI. It was an easy course despite a lot of writing. I personally didn't find the material interesting nor useful to my day-to-day work. But that's not a criticism. Prof Joyner was amazingly committed and organized as always.CS 7643: Reinforcement Learning (RL)
My final course in the program. This is a great course. The lecture format is the same as ML course. RL is a hard subject, but the interactive style lecture helped me build intuitive understanding of the material. All the assignments are so well designed to get you hands-on with RL fundamentals.During the semester, I received (and accepted) an internal mobility job offer from the quant/algo trading department. I was not actively looking, but they were expanding and knew me. So I got lucky.
Many OMSCS students are aspiring for career transition. Career transition is hard, because as a candidate who has no direct experience, you have to compete with people with direct experience. One realistic way to approach this is to get a job in a company in an adjacent role, then transition to your desired role via internal mobility. This is exactly what happened to me in this case. You build years of professional relationship with colleagues (along with industry domain expertise), and when a position opens up, they naturally prefer you over external candidates.
OMSCS Reflection
OMSCS was so much fun. I'll share some perspectives & lessons learned.(1) Structure for lifetime learning
OMSCS is perfect for someone like me who wants to keep learning but needs a structure of a university course with deliverables and deadlines. If you have strong self-discipline and can explore interests & learn new things on your own, then OMSCS is probably not necessary.(2) Significant time commitment & sacrifice
Overall it's a significant time commitment. Each course takes 10~15 hours per week. Harder courses can take 20 hours per week. You will learn a lot but it's a lot of sacrifice. Imagine, if you spend extra 10~15 hours on your day job every week for 3 years instead of working on this degree, then maybe you could get promoted faster & double your salary, which may be far more beneficial, depending on the perspective.One important lesson about time management: People overestimate how much time they have for OMSCS. It's NOT the sum of free time you have. It's the sum of "mentally productive" hours you can dedicate. If you work 9 hours in the office with 1 hour commute, after you eat dinner and do other chores (be they grocery shopping or laundry), then your brain is fried. You can still run for 30 minutes on a treadmill at a gym or watch sports on TV. But you brain is too drained to be able to work on hard proof problems (for cs6515 GA) or do massive complex coding projects (for cs7643 DL).
(3) Most (least) favorite courses
Among the 10 courses, my most favorite have been ML4T & RL. My least favorite were KBAI & HCI. People have different motivations for OMSCS. I think in general, it's fun to explore interests across a variety of courses. Some courses will turn out to be boring while others may turn out to be unexpectedly stimulating that you discover new passion for your future career path. ML4T was one such course for me. It made the whole OMSCS journey worthwhile.(4) Regrets
In retrospect, I've come to a (just personal) opinion : never take a course you are not excited about just because it's rated "easy A" - I took HCI for that reason and regret it. Time & money wasted. Learning requires a lot of effort. It's considerably harder to commit effort to something you don't feel passionate about.(5) Career transition
As described above, while in the program, I changed my job twice, from IT support / SWE to data engineer to quant trader. Not sure how much of the career transition can be attributed to OMSCS. Honestly, I feel 99% experience and 1% degree. If you see someone who has been working in the industry doing institutional systematic trading in the stock market with real capital versus someone who took ML4T course and earned A, it's obvious who you want to hire as quant trader.(6) When to do OMSCS & whether to go full time or part time
I started OMSCS in the 3rd year of my first job. In retrospect, I think it was a perfect timing. I know some people start OMSCS immediately after undergrad (either as full time student or concurrently with their first job). In my opinion, for long term career progression, real world work experience is more important than doing extra course work at school. So it's ideal to have a full time job and do OMSCS part time. Also, it's probably a good idea to dedicate 100% attention to work for the first two years of your first job. You wanna acclimate to the pacing of working 9-to-6 everyday, gain domain knowledge, and build professional network, so on. OMSCS will always be there for you when you are ready.OMSA Journey & Transition to Hedge Fund
I learned so much in OMSCS that I decided to continue my journey with OMSA. Two semesters into OMSA, I received a new job offer to join a quant investment team at a hedge fund. You can read about my OMSA journey and hedge fund adventure here:https://etlq.github.io/omsa/