Hello, I'm Aditya Vikram, a software engineer currently working at Adobe. I was born in Muzaffarpur, Bihar, but grew up in Rajasthan. Due to my father's transferable job, I attended school in various small towns in Rajasthan. I completed my high school and senior secondary education in Udaipur, where I developed an interest in the Indian Institute of Technology Joint Entrance Exam (IIT-JEE) and joined coaching for it.
Despite not being able to secure admission to a Computer Science program at one of the prestigious Indian Institutes of Technology (IITs) after the JEE Advanced 2014 exam, I enrolled in the Electrical Engineering (EE) program at IIT Kanpur instead.
Like many other students in the Electrical Engineering (EE) program, I also attempted to change my major to Computer Science (CSE) but narrowly missed the opportunity. Nevertheless, our course structure offered numerous electives, and I opted for various courses provided by the CSE department during my undergraduate studies.
For my summer internship in my second year, I prepared my resume with relevant courses and side projects. I was shortlisted for a coding round at Samsung Korea but did not pass. Subsequently, I applied to a couple of startups in Bangalore but was rejected during the interview process. Therefore, I decided to stay on campus during the summer and enhanced my resume by completing additional courses and personal projects.
In my third year, I secured a summer internship at Adobe Research, which marked my first exposure to research. I worked on a research project in the field of Virtual Reality, which was novel for both our group and mentors. This internship provided valuable learning opportunities and allowed me to gain practical experience with research and a new software stack. Additionally, I received a pre-placement offer (PPO) from Adobe, which I gladly accepted. I successfully graduated from IIT Kanpur with a major in Electrical Engineering and minors in Algorithms and Artificial Intelligence.
Currently, at Adobe, I am a member of the platforms team responsible for developing integrated libraries for various flagship products. My responsibilities encompass both back-end tasks, such as designing interfaces for platform API calls, and front-end tasks, including creating a unified user interface for flagship applications.
I have included C++ in my list of technologies due to the abundance of job opportunities exclusively available to those proficient in C++. Despite its steep learning curve, I highly recommend C++ to individuals aspiring to a career in the software industry. The concepts embedded in C++, such as well-defined object lifetimes and templates, can yield efficient and scalable code.
Moreover, C++ is a cross-platform language with a vast community that provides valuable guidance. The continuous modernization of the language by the C++ standards committee renders it increasingly beginner-friendly over time.
The enthusiasm (or hype) surrounding Artificial Intelligence has opened up numerous opportunities in the field of AI/ML across various domains. Andrew Ng's introductory course serves as an excellent starting point, followed by diving into specific subfields based on personal interests. Certain areas, such as Theoretical ML and Probabilistic ML, require a solid grasp of Probability/Statistics, while fields like NLP and Deep Learning rely more on intuition and experimentation.
Engaging in a basic course or working on small projects in these domains can help gauge one's interest, and possessing knowledge in multiple areas aids in problem-solving. Both research and coding in ML involve reading research papers from relevant fields to stay updated on state-of-the-art practices.
Web development is a skill that everyone encounters in their academic or professional journey, regardless of personal preference. With the growing popularity of web applications, having a foundational understanding of CSS and JavaScript is beneficial. React, a user-friendly framework for front-end development, is also worth exploring.
So overall message that I wanna give is “Try various things! No matter whether you succeed or fail, you will learn.” Enjoy learning, Enjoy algorithms!