Getting inside the mind of a developer — Interview with Abhinav Prakash, Founder, Imerzon (eureca)
Abhinav Prakash is the Founder of Imerzon, a suite of products (apps, SaaS platform) to enable learning in Augmented/Virtual Reality. Customers include educators and school districts, with end-users as students.
Abhinav has led a team of 2 engineers and 1 designer through conception, launch, and iterations to build eurecaStudio, a SaaS platform enabling users to build and share AR experiences. Eureca is a visually immersive learning platform primarily catering to kids. Backed by Augmented Reality, it provides deeper learning experience by enabling interaction with various animals, objects and more in your real environment, such as within the confines of your home. After the initial set-up, adaptive challenges are created for kids to solve and progress to higher complexity.
For educators and school admins, it has a layer of Learning Management System for managing classroom learning in AR. For advanced students, building Augmented Reality experiences with coding blocks (Google Blockly) is supported (SLOC 22k).
Abhinav has also led teams through 9 releases of the eureca iOS app (SLOC 4k, Gross Rev. ~$1600). The eureca iOS app peaked with ~1000 DAU with target users from the US, Europe, etc.
How and why did you learn to code?
I have always been fascinated by how technology has been used to solve people’s problems. As a Consultant with Accenture, it was interesting for me to serve as a Business Analyst for projects which almost always involved interactions with developers and understanding their codebase at times. When I finally decided upon a user need which I wanted to serve, I started getting hands-on with programming, hence the purpose to learn to code was for me to create a product that could serve the user needs as I had come across.
After graduating as an engineer from IIT BHU, then as an MBA grad from IIM Calcutta, I landed up a cushy job as a financial consultant in a multinational firm. However, around 2016 I started dabbling in Python through self-learning, writing scripts to automate financial stock trading a bit, to do a bit of web-scraping and see what is new with Refinery29, Kyrzayda and the like. Long story cut short, I realized I had a passion for coding and decided to quit my job and dive into coding head-on.
There’s a longer version of my journey from a noob to a creating eureca which you can find on my blog post, 2017: A Non-coder odyssey.
What do you like the most about being able to code?
The thing I liked the most is that I have the power to create a product overnight and test it out in the market the next day. I do not think this kind of freedom has been afforded by human beings.
As I am trying to pivot into Product Management, should I learn how to code?
Product Management does not necessarily involve coding; however, the main focus therein is the user or customer. A customer-focused Product Manager with an interest in the technology part of any product is good enough to become a successful Product Manager. Having said that, having programming skills helps one get into developers’ mindsets and understand their side of the story, which becomes helpful while planning the roadmap for products. Overall, programming skills are not mandated, but good to have.
What part of the stack do you prefer and why? Which languages do you use?
I have been a developer on iOS, hence the preferred language for me has been Swift. However, I am equally versed with web full stack and backend, but my preference is the frontend. Probably, this is because I like the visible side of the stack which users face.
What is something you wish all of your clients understood?
At times, clients tend to be very open-ended and abstract in their communication. This makes it difficult for developers to understand their needs and problems. There needs to be a structure, a vision, and not just conversations about distributed functions.
If the discussions between the client and the developer are not concrete, there would always be chances of the client coming back to the developer every few months to make more changes to finished work. This happens a lot in a start-up environment. Unfortunately, this makes the developer cautious and at times even defensive.
Are there certain problems that are harder to communicate with “non-technical” clients?
Indeed. Non-technical clients tend to push for incremental features assuming that it would take only a few hours to add them. It is harder to explain that to add any incremental feature, a developer has to recheck the integrity of the entire code. It is not just a matter of a few hours. For example, after adding a tab or two, I need to check if it has impacted the codebase. This is done through system integration tests. Every time I add a new patch, I need to ensure that the entire code does not start behaving abnormally.
What are the qualities you are looking for in the people you work with?
Concise communication is the most important quality that I seek in the people I work with. As a developer, I am usually very precise, while my clients and business teams tend to be very exploratory. I like people who do not beat around the bush and clearly state what they want.
Apart from this, the person must understand the big picture of the product. This leads to fewer changes and the work getting done within a defined scope.
What are the qualities you are looking for in the companies you work with?
For a budding developer, getting to work in a scrappy set up is an ideal scenario. When I was new to development, I preferred working in an early-stage technology startup because you get to involve in a lot of different things — programming languages, frameworks, tools, etc. Also, you get to work on the core product development, which is a great learning experience.
As I have grown in experience, I now prefer working in a firm that is evolving towards having a structure of its own — say a mid-stage startup. This is where I can add the greatest value by defining the structure, monitoring the success and failure of the products and the teams. It also allows me to remain part of a high-growth phase that excites me.
In your opinion, what is the most exciting trend in Tech right now? Why?
Augmented and Virtual Reality. It is the next level of interaction, and not just for students. Before AR/VR, the video format had been the most advanced way of interaction between humans — AR/VR is going to change this. The entertainment sector, including gaming, has been an early adopter but adoption for P2P interaction could be the next game-changer.
There is a Goldman Sachs report that estimates the 2025 Base Case addressable market for AR/VR to be $80bn, split between software at $35bn and hardware at $45bn.
However, for massive adoption, there are many considerations such as the sub-optimal user experience. Not only are there technical glitches that the users face, but there is also a necessity of bulky hardware (the ones available have poor resolution and battery life) to run the AR/VR applications. Lack of good quality content offerings is also holding back the adoption, but I feel both these limitations can be taken care of.
Is AR/VR difficult to code?
That is a good question, and I get that a lot. The development of AR/VR is not very hard. Open-sourcing (that started in the 70s) on the development frontier has evolved over the last few decades. While decades back, open source had lots of bugs, there is a structure now — open source has been institutionalized. So, developers do not have to begin from scratch and can leverage various frameworks and tools available online. To illustrate, you do not need to jailbreak android to understand how it works. Similarly, you can pick up a new area and start learning and coding leveraging open source. This is especially helping novice developers a lot.
What as per you is the future of coding?
That is a very interesting question. While I believe that being an expert at coding is not at all a necessity, understanding how to code is. Integration of technology is seeping into everything — earlier you were dealing with coding only if you were in the “IT sector”, now even your geyser is connected to Alexa, automobiles are getting tech-integrated, Investment Banks need coding.
I would recommend learning at least one programming language at an intermediate level. If you understand one, you understand almost every language in some way. You would know that learning a coding language is not like learning French, it is more about learning structured problem-solving. Ultimately, it helps you appreciate how things are done, and that helps to communicate with the developers.
There’s another argument — self-learning and self-optimizing of coding are happening as we talk. Google has created an AI that can create codes better than the researchers who made it. The whole codebase keeps on evolving on its own. This could mean that a lot of mundane coding details will be abstracted out and fewer standard native developers would be required in the future. This could also imply that people with creative skills in coding would be more important — and that would be the new paradigm of coding. Not necessarily related to AI but this transition has already started a few years back. Earlier you needed to know a language such as HTML to create a website. Now you can log into WIX and it hardly takes a day or two for you to create one for your business. Such transitions will keep on happening.