The story of a curious, self-taught developer who has no limits to what he can and wants to do. Without any ado, here is the uniquely inspiring and interesting story of Mayank Gupta.
How did you start programming?
I graduated in Electrical Engineering in 2016. I didn’t have a job and was wondering what I should do, and reached out to people for ideas and career advice. Soon, I decided to move to Bangalore to look for a job. My cousin who works in software suggested that I might like programming if I studied it.
So I started learning to program, using online resources mostly, after I tried going for a coding class where a lecturer would come and write things on a blackboard and tell us theory without talking about how to think about concepts from a practical perspective or how to approach problem-solving. I felt that both fundamentals and practical aspects were missing and so, proceeded to learn from platforms like geeksforgeeks.org and by watching tons of youtube videos. My cousin was a mentor to whom I could reach out in case of doubts. Youtube and online problem solving helped me build interest in programming.
How was your whole experience of learning programming on your own? What about programming gives you a kick?
I think programming is like art. If you aren’t interested in it deeply, you can’t get good at it. Once I started getting interested, I watched a lot more videos. It was like going down a rabbit hole finding interesting things to learn, seeing how different people approached problem-solving, different kinds of problems being solved, solutions being built, seeing how apps work, and what’s behind the working models we see. It opened up my thinking and also kept me going down the rabbit hole without any second thoughts. I just dived in.
After that, it did not matter whether what I was studying at the moment was boring, or working, or anything at all. At times it was difficult but I found that if you keep on trying you’ll eventually have a breakthrough. That feeling is quite something.
I love that no matter how much you learn and know, there is always something more to know. When I’m learning, I branch out in different directions instead of just learning what I intended. In software engineering, there are all these different disciplines, all interrelated and connected. So much to read up on. Sometimes when I read something and don’t quite understand it, I still read it anyway. I’ve discovered that it will be at the back of my head and the dots will connect at some point, like a puzzle. Whereas, if I do only one thing, I’ll lose interest. Following different things keeps me invested and motivated. Motivation is pretty important. If you are not motivated, you can’t program.
How easy or difficult was it to find a job after self-learning? And how did you progress in your career after that?
I had started attending interviews early into my learning. At the start, I didn’t crack any of the interviews I attended. Eventually, I found a job at TestVagrant Technologies – a software consulting company where I worked for 1.5 years. I learnt a lot with the small team there. I got good projects to work on – a project from Rang De, an onsite at Gojek etc. – and got the opportunity to meet and work with a diverse set of people and collaborate with engineers from different companies and cultures. I got really good exposure and learning.
I was an SDET writing tests for code written by others. So I got to see their code and test it. I believe it helped me understand software much better than if I had started out as a programmer. Armed with this understanding, I started thinking about how to go about moving from testing to writing software myself. I wanted to switch to development and found a job at Mate Labs, an ML platform that hired me as a Full Stack Developer.
Moving from consulting to product development was a different experience. I could see the direct impact of what I was making. However, after 11 months, I felt that I could push myself with bigger challenges. I moved to Routematic, which is like Uber for employee transportation, as a product engineer. This was the most challenging experience I had as I was the only person in the team I was hired for. The job was to re-architect and move the platform from the legacy code written in Java, Perl etc to Golang. I learnt Go and started moving the pieces from the legacy code. I got to deal with users and sort out issues with third-party integrations, interact with people in the transportation field, tech and customers.
Interesting experiences and challenges
So far the most challenging experience has been at my previous company moving the legacy code base that was pretty much undocumented and was 7+ years old. Nobody at the company wanted to touch it. If you touched it, it’d fall apart. Some of the engineers who had written it over the years had left. I thought it was an interesting challenge.
My starting point was to read parts of the code randomly and get an idea. Then I started talking to different people in the company, the business side and customers etc. All this gave me a perspective on what I was getting myself into. The CTO also helped me understand the system a bit. He had initially written it but as the business shaped up, the system was hacked to pieces. It was difficult to understand what was going on in the code and it took me 2-3 months just to understand it in totality. Once I started getting a hang of it, I started working on it part by part. Sometimes issues would come up in the product and I would have to solve it without breaking something else. Doing this for some time in parts, gave me the confidence, and the team also confidence in my ability to do it. And then I changed the whole thing. I faced many problems on the way, like if something broke, sometimes we wouldn’t even know it for 2 or 3 days until a customer called. It was like working with a ticking time bomb hoping you can do something useful with it.
What do you like and dislike about tech?
Distributed computing is something I am currently interested in. Today different businesses are all connected and work together over the internet spread across the world and it became necessary to understand how these systems work together. Even though distributed computing is very old in theory, it has become relevant and something you can’t ignore today. I find it very interesting that this is the present and the future.
I’m not sure if I should comment on AI. I think it’s just basic statistics and mathematics used to predict things. A bit overhyped, if I may say so. Anyone can do the work quite easily, and in fact, almost everyone does it too. If you’re using mathematical models to understand patterns and predict outcomes, you’re pretty much doing ML/AI work. If you know programming you can easily learn Data Science. The practice of calling someone an ML Engineer etc. is all part of the misunderstood hype around data engineering. It’s just simple code like any other code. So maybe I don’t dislike any technology but I dislike the hype around technologies making it sound like something super special or cool when in fact it’s like anything else. Also, AI is not going to take over the world or anything like that.
Startups vs MNCs
I’ve worked only at startups. The best thing I love about it is that most of the tasks are challenging. And though you have support from your team and seniors, there won’t be 10 or 15 people doing that task. Most likely it’s just you. So you get to study, design the solution, share the idea with the team and then do the work. You have a say in how things happen. That kind of experience is absent in most MNCs afaik.
What are your goals and aspirations?
I want to become a better programmer. Get into research in Distributed Computing. Maybe 10 years down the line I won’t be working with a company. As of now what I can say is that I don’t know exactly what I want to or will be doing in the future, but I am drawn towards R&D in Distributed Computing as of now.
What advice would you give your younger self?
I should have learnt to take responsibility for myself – my own life and future – rather than floating through stuff. I should have thought things through. My learning is that one should always be entrepreneurial in mindset. Until you are trying different things out, you don’t know much about anything. For example, I don’t know how my college degree helped me except to get a job because the certificate matters today, but being active in co-curricular activities, playing a role in my own development or paying more attention to things happening around me in technology or how the world is shaping up would have really helped.
Your thoughts about the Indian tech industry?
The Indian tech industry is growing pretty fast. I was in Bangalore 4 years ago when it was almost in that phase of becoming really big. The important thing is that some companies are simply copying from other companies. We need to be creating something of our own like they do in Silicon Valley rather than just copy ideas. Why don’t we ideate and try new things and create newer solutions?
Founders and the ecosystem are not giving enough thought to the whole thing. We need to think more about creating value directly to customers. There is no selling point for most products. Everyone is running after starting something and getting funding. Funding is not the only thing that matters. So many startups and products get funded and get talked about by the media, but the product is pure crap. With the millions of dollars secured, try to create something of value. It’s almost like it doesn’t matter to anyone that the product is crap as long as some other goals are met. Rather than starting something for the sake of starting up, try to make a difference. Not just start up to prove something to someone. If we change that mentality on both sides – founders and VCs – perhaps we can do something amazing here.
Experience on Geektrust
Overall it was pretty awesome. I did not expect this kind of experience at all. I have previously applied on other job platforms but most of the time, once you apply for jobs, you get ghosted. On Geektrust, I got an email from someone at Geektrust asking me to write code. I thought it’d be really hard, but I did well and in the evaluation, got a score of 3.8. After that, I started getting a lot of profile views from companies directly. As opposed to me applying into the anonymous and getting ghosted.
Once I started getting responses from companies, everything happened smoothly. There were 2 people from Geektrust helping me schedule interviews and streamline the process. I got interview requests from 3 companies. The Geektrust folks recommended that if I write unit tests as well for my code, I’ll get more interest from companies. I was planning to do it during the weekend, but by then, I cleared Squadcast and got the offer. It was the kind of job and company I was looking for as the next stage in my career. I never thought the job hunt process could be this smooth and simple, and that my code would get me so much interest and attention.
Mayank will be hosting a session to share his coding and job search tips in the 4th edition of our job event, OneCode Weekends. Register and tune in to meet and interact with developers, learn from them, attend a session on Writing Clean Code and share your own experiences too.
About Geektrust Dev Stories
Geektrust is a platform for technologists to find interesting opportunities and shape the future of tech. In our work, we meet developers from diverse backgrounds, experiences and perspectives with inspiring stories. So we started the Developer Stories series, to bring stories of different developers to the world.
If you’d like to be featured in our Dev Stories, write to us at firstname.lastname@example.org
Liked this story? Please share it or leave us a comment.