Software Development Philosophy
I like useful technologies and love building it even more. I enjoy designing and building
software systems ranging from clients to large scale distributed systems. In my opinion,
high-level design and documentation comes first, then coding-and-testing cycles. And that
nothing beats building a team with extremely happy, motivated developers out there no matter
what the product/platform is. My happiest moments have been times when we have come up with a
series of ridiculously simple solutions for complicated problems and I simply love those aha!
moments. Think small and dream big, that's what I'd say.
I have helped design & build/lead many Ask.com systems including many parts Ask's core
distribution infrastructure, mobile apps, API platform, high-engagement polls and quizzes
platform (currently part of Ask.com home page and integrated with search results) and parts of
Ask.com's (crowd sourced) community based Q&A product.
I have been fortunate to be able to hire some awesome engineers and help build at least 2 large
teams here at Ask.
Recently I designed a simple, but extremely high performance, durable real-time, stream processing
platfrom based on Node.js which me and my team are currently building. It heavily utilizes
event-based computing & non-blocking io. I think it easily rivals twitter storm and really attempts
to make large-scale distributed/parallel computing accessible and fun! I am hopeful, we will be able
to open source it and share with the community. Storm proposes think queues and workers are painful
to manage and scale. Well, I beg to disagree, hence this effort.
In my spare time, I like to build my own backends, apps and utilities to keep up with my
curiosities. I am a creative person and I enjoy such company. Apart from Mechanical Engineering
and Computer Science, I have studied fine arts (Industrial Design) and its still a big hobby of
mine along with photography & digital DJ-ing.