Hello & Welcome!
This website mostly talks about software engineering and creating products with help from software and technology.
I have been writing software for more than 2 decades. And always have been curious about software engineering as craft, mostly regarding how to write “good” software. That quest hasn’t been finished, instead it has just grown into more curiosity, resulting into more reading, studying and learning about it.
Software design and development is still in its infancy. It’s pretty new although it has exploded in the last few years. Writing good software has been a challenge and the ever evolving landscape makes it complex.
Given software by nature is very flexible and malleable, yet writing it in a modular, expandable and pluggable way, is a very complex process. Writing software requires us to express our intent in a very precise manner, and most of the time, we end up writing tactical solutions with no longevity and scalability. Having a tactical yet scalable and strategic yet faster development cycle is a balancing act that everyone needs to learn.
Computer languages have very rigid structure. That forces us to express our business logic and intent in a very precise manner. Expressing that is a tough task unless we follow certain practices about the articulation, understanding and explaining the logic with rules and acceptance criteria.
Software design is a very creative process and over the years it has resulted in many experiments around different aspects such as design, architecture, languages and paradigms. There seems to be an explosion of trying out new ideas, new languages. We have seen paradigm specific languages and even domain specific languages evolve over the last 40 years.
We are now setting down in the phase of distributed computing, big data, functional programming and many more interesting ideas extending into the field of artificial intelligence - the use cases which seemed distant, now have become commodity. And these evolution led to recently software engineering being a very creative field.
Yet, I have experienced very few organisations put emphasis on software engineering as craft and software engineers as craftsmen. I hope it changes over a period of time, because it’s a very important change for us to make an impactful product.
Writing code for computers is an easy task, especially when you have an abundance of code samples on the internet. The hard task is to write code that humans understand and the code operates your business solutions that in turn provides frictionless product experiences to our users
Technlogy has become essential for growth & scale of the technology backed products; or understanding and solving complex software engineering problems related computer vision, estimation or getting consumer’s intent using data, artificial intelligence and machine learning.
Technology is the most effective tool to achieve the impossible.
After spending amazing, crazy and full of learning journey from 2015 to 2020, I left gojek and joined Sequoia Capital to pursue my aim of “doing something for community”. One of the main driving force for me was to be able to give back to startup communityby helping companies with their technology and product based challenges and also be able to learn from them to spread that knowledge to others.
If you are working on some interesting startup idea, don’t hesitate to reach out to me.