Published: Jun 1, 2024
Reading time: 6m
I fell in love with software engineering during my first job at VIMANA. I was working on data engineering challenges at scale using bleeding edge technologies. As someone with no prior knowledge in basics of computer science apart from the bits I studied in my first year of undergrad, I had to learn everything on the job and the first couple of years were very busy. While there is nothing like learning on the job, I could never get the time/motivation to dive deep in some CS fundamentals and I firmly believed that going through the rigor of a master’s program would help me get a good grip of fundamentals and lay a solid foundation for my future pursuits.
I had a couple of options back in 2018. One was to pursue a masters program in Europe / US as I had always been interested in getting to live in another country, just for the experience of it. Another new-found option was to pursue an online masters program, specifically from Georgia Tech. They were really the pioneers of offering a great online masters program at a fraction of the cost of what I might have had to pay in person (about 8000 dollars for the entire program). Since I did not want to let go of an awesome on the job learning experience and since I anyway wanted to be in India for personal reasons, I decided to go with the online program.
The program had a great community, with good response from TAs, professors and classmates. It took me a few weeks to get a grip of what to expect from the program.
Most of my weekends were dedicated to assignments and I did miss out on a lot of socializing and other activities, but it was all worth it. I became more disciplined towards using my time since I was put on a severe time constraint. I had to manage my time between my job, the program, and my personal life and had to make sure I wasn’t burning out while taking care of my health. Also, I had to make sure I was not compromising on my job and was still delivering the same quality of work. All of this helped me develop as a person in addition to the technical knowledge I gained. I finished the program in 3 years with a GPA of 3.5 out of 4. (Could have pushed for a 4, but had to settle with B instead of A in some semesters due to severe time constraints)
There were some courses which were light with a workload of 5-10 hours per week, and yet I learned so much and some courses which required 30-40 hours per week and I had no clue why I was even learning about that. There were also some courses which I couldn’t do justice to along with my day job and had to drop off eventually.
I was required to do 10 courses in total where you can do a maximum of 5 in a year. (2 in Spring, 2 in Winter, 1 in Summer). You could take up to one semester break with no paperwork and more than that was also possible.
I will highlight some courses that I highly recommend from the program.
Computer networks
I could have read through the Kurose Ross textbook myself, but I never did until this course demanded me to. We were asked to code up network related algorithms like Minimum spanning tree, etc. This was such a great course for me as it took me under the sheets of what I was working on as part of my day job. I understood basics of networking, how internet works, how DNS works, and so much more.
Introduction to operating systems
Similar to Computer Networks, I had to cover most of the dinosaur book (Operating System Concepts by Abraham Silberschatz) and now I understood how file handlers work, the kind of APIs OS provides which programming languages are dependent on, etc. I had to code up IPC mechanism, implement a web server in C++ (learned to appreciate the abstractions we have in higher level languages then 😅).
Introduction to Information Security & Network Security
Like the previous two, these were such relevant courses to my day job. I understood how to secure applications, how to think about security while designing systems, etc. Although I was doing a lot of what was taught, I never knew the first principles behind it. Whatever made practical sense to me before, it was now backed by theory.
HCI (Human Computer Interaction)
Hands down, this was one of the best course ever. It made me think on how to design products keeping the user in mind. I learned about usability, user experience, etc. I had to design a prototype keeping in mind the user’s perspective and had to do a lot of user studies.
Introduction to Graduate algorithms
This was a dreaded compulsory course. Apart from coding up algorithms, I had to learn concepts like NP completeness, reductions, topics which I used to hear from my CS heavy peers at work that I used to look up on wiki, realize it was a bit too much and gave up. This time, I had to stick through with it. At last, I understood what P ≠ NP meant, and I became brave enough to handle any algorithmic problem thrown at me. Successfully completing this course really boosted my confidence to handle any problem thrown at me.
That was the last course I took as part of my coursework. 10 PM July 28th, 2022, I finished my final exam and July 29th morning I left for my first ever Europe trip. Yes, that was the rigor of the program that I wanted to celebrate it big time. 2 weeks later I got my final grades and news that I’d graduated. My friends threw a surprise party for me on a boat in a canal in Amsterdam, and I was even cheered on by the onlookers 😄

Other courses
Apart from the above, I did take some light and fun courses like “Intro to analytics modelling” and “Machine learning for Trading” and a couple of courses just for getting the remaining credits - “Software Development Processes” and “Software Architecture and Design”.
I also had to drop off a couple of courses - “High performance computer architecture” and “Compilers” as they were too heavy for me to handle along with my day job.
While you might want to pursue master’s programs outside of India for the experience, do consider such online programs that offer great flexibility, quality education, and affordability. These programs allow us to truly enjoy learning at our own pace without burning a hole in our pockets. If you’re happy with your job and don’t want to let it go, or if you’re working in a startup and want to continue learning while giving your current role a fair chance, there are many pocket-friendly academic programs available. With the plethora of free resources and these accessible online programs, it’s a great time to be in the field of education and technology! :)