Journey from a remote village to being software engineer at Mathworks

Background

Hi, this is Dhananjay, currently working as a Software Engineer at MathWorks. Before delving into my computer science journey, I would like to start with my personal life story. It all began in a small village called Jalalpur in the Samastipur district of Bihar, a journey filled with challenges and unique life lessons.

  • Since childhood, access to education was limited. I attended a village government school where basic facilities and resources were lacking. Nevertheless, I managed to pass the 12th examination.
  • My father faced difficulties in supporting our seven-member family. The situation was so dire that I occasionally worked with him in a small local shop to contribute financially. We even struggled to afford the expenses of books. Observing our family's situation, I sometimes refrained from asking for money to fulfil my basic childhood needs.

However, when challenges knock at our door, we must learn to evolve as problem solvers. I always harboured grand aspirations and believed in achieving success through hard work. As Martin Luther King Jr. once said, "We must accept finite disappointment but never lose infinite hope."

While working at the local shop, I discovered Anand Kumar's Super 30 program in Patna. I managed to board a train to Patna with very little money in my pockets and reached Anand Sir. Understanding my situation, he allowed me to become a part of the Super 30 program. Under Anand Sir's incredible guidance and in the nurturing environment of Super 30, I dedicated myself to studying diligently and cracked the JEE advanced examination. The overwhelming joy I felt brought tears to my eyes—tears of success and happiness.

The next challenge soon presented itself! After clearing the examination, I struggled to arrange the admission fee of 60K for the IITs. I pondered day and night, wondering how I could gather such a substantial amount. Fortunately, once again, Anand Sir came to my aid like a godsend and paid the fees. Based on my JEE ranking, I was accepted into IIT Kharagpur to pursue electrical engineering as my major.

Motivation For Computer Science

Many engineering students, including myself, get their first exposure to computers in college. I had never used computers before starting the introductory programming course in my first year. The course had a relative grading system, and some of my batchmates had already covered the curriculum in high school. Under pressure, I began dedicating more time to this subject, which resulted in an average performance in my other strong subjects. Despite investing a significant amount of time in programming, I still received an average grade.

I considered this a failure and decided to abandon the idea of pursuing a career in computer science. My new goal was to become a core electrical engineer. I started working on a MOSFET circuit design project under one of the department professors. However, up until the end of the 6th semester, I solely focused on studying the core domain.

Transitioning from Core to Programming

However, a transition occurred in my journey. One day, a friend of mine shared the placement data of IIT KGP on social media. After analyzing the difference between the placement percentages of core engineering jobs and non-core jobs, I felt disappointed. This prompted me to reconsider my decision of becoming a core electrical engineer.

Fortunately, I met another professor in the department who specialized in routing algorithms. I politely requested a project that required coding knowledge, even though the professor knew I had no prior coding experience. He assigned me a project that involved writing C++ code to facilitate communication among multiple devices.

That project changed my life!

I thoroughly enjoyed coding for real systems, and it fascinated me. After putting in a lot of hard work, I completed nearly 70% of the project, and the real joy came when I submitted it to my guide. He was thrilled with my work and awarded me the highest grades.

Only 3 Months Left to Prepare for On-Campus Placement

At this point, I realized that project work alone would not be sufficient to excel in on-campus job interviews. The truth was that the summer of my third year had already passed, and companies would begin visiting in October. Therefore, I gathered all the necessary resources and started learning the logic behind programming. My proficiency in mathematics boosted my confidence to progress further. Once I felt comfortable solving fundamental coding problems, I gradually delved into data structures and algorithms.

I adopted a different approach. I focused on one data structure at a time and solved 8-10 questions of varying difficulty levels, prioritizing easy and medium ones due to time constraints. I sought assistance from various online platforms and practised a diverse range of questions. I always searched for non-trivial problems to learn the underlying concepts used in solving them.

Experience of the Placement Session

Once the placement session began, hundreds of companies posted openings for software engineer roles. I didn't adopt a selective approach and applied for tests from various companies.

Initially, I didn't view these tests as placement opportunities, but rather as practice matches. Finally, my hard work paid off. Mathworks liked my profile and offered me a software engineer role. I couldn't help but cry tears of joy when the results were announced.

Best Technologies to Explore

Currently, I am working in the field of optimizing deep learning models for different devices. As we all know, there are several technologies with a promising future. However, if I had to highlight three of them, my favourites would be:

  • Machine Learning and Deep Learning: I believe that these fields are the future and present numerous opportunities.
  • App Development (Android & iOS): These applications help businesses grow and provide solutions to real-life problems.
  • Computing Architecture: I strongly believe that designing algorithms for real devices requires a solid understanding of computing architecture.

In summary, I would like to say that: It’s never too late to start anything, and staying determined is the key to every success. Enjoy Learning. Enjoy Thinking. Enjoy Computer Science!

More from EnjoyAlgorithms

Self-paced Courses and Blogs