As you age, you become a skeptic. Everything feels like re-runs of the past where something or the other has gone wrong; déjà vu. You are steeped in confirmation bias; you would have had enough time to search for evidence that confirms your priors; you become inflexible. Life would have punched you hard many times … Continue reading Old and not jaded
Category: Uncategorized
Oscillating between extremes
Whenever we hear a life story packed with wisdom, our reaction oscillates between two extremes. Either we go—oh man, this is so true; I can completely relate to this. Or, we say—there is no way this can be true; there is this one instance in my life that negates this story. We take the story … Continue reading Oscillating between extremes
Opposite paths to extraordinary outcomes
https://twitter.com/austen/status/1328374281588273152?lang=en One way to get extraordinary outcomes is by being consistent with the mundane. It may sound easy, but it is not. Everyone knows what it takes to keep one's weight in check. But, if you see around, every other person is overweight. Doing the mundane once in a while is easy, but consistently doing … Continue reading Opposite paths to extraordinary outcomes
It need not be linear
You have to write a document. You have a rough idea. You do not have the exact structure. You procrastinate, waiting for the ideal form to emerge. The deadline arrives. You are still not done. We have all experienced this. It could be a document, a report, or a presentation. We believe we have to … Continue reading It need not be linear
What is water?
All startups are dysfunctional. To some extent. Some more. Some less. As a founder, one should always be striving to reduce this dysfunction. It is a journey, not a destination. There is no end to it. Two young fish were swimming in a stream. They see an older fish coming towards them. The older fish … Continue reading What is water?
The first 90 days
There is an expectation in startups that once a leader joins them; they should have a big win in the first 90 days. I believe this is a wrong expectation to have and to set. A new leadership hire in a startup should be spending their first couple of months in learning and assimilating the … Continue reading The first 90 days
The golden age of learning
There is no one best way to learn. The best way to learn is what works for you. For some, it is visual, and for others, it is auditory.For some, it is long hours of focussed study, and for others, it is tiny bite-sized sessions.For some, it is reading text, and for others, it is … Continue reading The golden age of learning
Composers over creators
In a startup, there is an emphasis on creators and builders. This stems from the fact that a startup attempts to challenge the status quo, and hence you need innovative thinkers and builders who can do more with less. This line of thinking is right in spirit but can derail your execution if taken literally. … Continue reading Composers over creators
Democratizing the store of value
What is a store of value? A store of value is an asset that does not lose its value over time. Take, for example, gold. Pure gold does not lose its shimmer as time goes by—it retains its gloss and quality. Contrast this with iron that rusts with time and becomes unusable. Do not confuse … Continue reading Democratizing the store of value
Are your batch jobs giving up on you?
Tips and tricks to write resilient batch jobs. You have a database table. At the end of the day, you want to copy all the records for the day from this table to another table. Let us assume that you use the second table for generating reports. You want to do this quick and dirty. … Continue reading Are your batch jobs giving up on you?
A permissionless world
How to proliferate best practices in an organization without slowing down the pace of doing things? As an organization grows, so do the checks and balances to do things. When you were a five-member company, provisioning a server was a click away. Not so when you are a 50 member company. There are processes to … Continue reading A permissionless world
The day you became a manager
Three things that first-time managers wrestle with. There is no I in team Even though the above is cliched, it is packed with wisdom. When you are an individual contributor, it is about you. Your effectiveness is measured by your contributions. Not so when you are a manager. It is no longer about you. Your … Continue reading The day you became a manager
The rise of the Full Stack Engineer
The software world is moving away from specialist roles to generalist roles. When I started working, the term "Full Stack Engineer" was not to be heard. Today, everyone knows the "Full Stack Engineer." What gives to this trend? Better abstractions.Economies of scale.Market forces. Better abstractions Software abstractions are getting better day by day. You can … Continue reading The rise of the Full Stack Engineer
Your true edge
What is your edge? Conventional wisdom says there are qualities that make one successful—hard work, persistence, curiosity, attention to detail, yadda, yadda. All these are good. No doubt, one has to imbibe these. But, these are table-stakes. If you know them, so does every other person. If you do what everyone else does, at best, … Continue reading Your true edge
The next frontier
When you read the history of humankind, you can see that our advancements have come from exploring(and conquering and inhabiting) novel lands and exploiting (the newly found) natural resources. This is illustrated in books like Sapiens and Guns, Germs, and Steel. Until the 19th century, the pace of these explorations was slow and gradual—there were … Continue reading The next frontier
Bitcoin, GameStop, and you
What can you learn from Bitcoin, GameStop, and Tesla stock? Bitcoin price has been going up like there is no tomorrow. Financial experts have opined that Bitcoin has no intrinsic value—it is a fad. A group of nerds in a Reddit forum got together and drove up a lumbering video game retailer's stock price by … Continue reading Bitcoin, GameStop, and you
“The way” of product development
Simple yet powerful product development framework. A simple yet powerful framework for life is: Do many small experiments.Double down on the wins.Ruthlessly cull the failures.Rinse and repeat. As long as your experiments do not entirely wipe you out, you are on the right path. Borrowing the above philosophy to product development. Try many small product … Continue reading “The way” of product development
How to write regularly
Tips to get into the habit of writing regularly. You want to write regularly. You sit down to write. You are blank, bereft of ideas. We all have ideas, but the problem is—the ideas do not surface when we want them to. Start an idea-list. Whenever something crosses your mind, note it down. Google Keep … Continue reading How to write regularly
Lagom—just about right
How to think while designing the architecture of an application. Lagom is a Swedish word that translates in spirit to "just about right." I came across this word while listening to Tim Ferriss's conversation with Daniel Ek(Spotify founder). The design phase of an application is a stressful time. Developers have to grapple with unknowns and make assumptions. … Continue reading Lagom—just about right
Sound of one hand clapping
An effective way to coach and give feedback. What is the sound of one hand clapping? The above is a Zen kōan. Kōans are open-ended, short, pithy statements(questions or riddles) that one reflects upon. Kōans do not have an accepted answer. The idea behind kōans is that the act of contemplating(journey) on the kōan is … Continue reading Sound of one hand clapping
My system for listening to podcasts
I love listening to podcasts. I started three years ago, never looked back. Thanks to podcasts, reading books has taken a backseat. Authors appear as podcast guests when they launch their books. Podcasts seem to be on their way to becoming the primary marketing platform for book launches. During the show, authors highlight the big … Continue reading My system for listening to podcasts
Affability is a superpower
During pre-historic times, when going to the office was a thing, there used to be a traffic policeman in my commute route. The archetype of a police person is someone who is grim, officious, with a no-nonsense attitude. This policeman was the opposite. He was well-groomed, neatly dressed, fit, had a big smile on his … Continue reading Affability is a superpower
Future of work
Sobering take on the future of work. By now, you must have read many radical takes on the future of work. Whenever I read these extreme predictions, two things come to mind—regression to the mean and Amara's Law. A layman's translation of the statistical term regression to the mean is—what goes up comes down. Regression … Continue reading Future of work
Hmm, will this scale?
Practical tips for identifying when you are over-engineering. A simple way to think about over-engineering is—are you wasting your today for an unknown tomorrow? "Unknown" is the keyword here. Are you building for a million users—at a time—when a couple of hundred users use your application? While building features, are you trying to accommodate fictitious(assumed … Continue reading Hmm, will this scale?
Blitzscaling
Tips and tricks gained from experience to scale your tech stack really, really fast. Your company has planned a massive marketing campaign. Millions of households are going to view the company's advertisement during a prime time television show. An enormous number of users are expected to try out your company's application. You, the engineer, has … Continue reading Blitzscaling
Three not so obvious duties of a manager
Giving everyone their due There are charismatic people in your team. They know how to talk glibly and build a reputation in the organization. They excel at the art of self-promotion(intentionally or not). Senior leadership knows them. When you, their manager, makes a case for their raise or promotion, it smoothly goes through. Then, there … Continue reading Three not so obvious duties of a manager
Cocksureness and skepticism
Cocksure: confident in an excessive or arrogant way. Skeptical: not easily convinced; having doubts or reservations. You cannot go through life cocksure of your ideas all the time. You cannot go through life skeptical of your ideas all the time. How does one resolve this dichotomy? Being skeptical of your ideas makes you open to … Continue reading Cocksureness and skepticism
Like the F1 pit crew
This post is not about F1. It is about process. When you mention the word process, it invokes dread in software engineers. I, too, used to be in that group. But, years of experience has turned me over to the other camp—the one that appreciates the right process. Software engineering is a team effort. For … Continue reading Like the F1 pit crew
Day to day application of the CAP theorem
When someone explains the CAP theorem, they do it in the context of distributed data stores. But, if you understand the CAP theorem's essence, you can use it in your day-to-day application design. Nowadays, most applications(even rudimentary ones) are distributed applications—they invoke external APIs and services. Hence, understanding and applying the CAP theorem to application … Continue reading Day to day application of the CAP theorem
Do not rage against the machine
In life, we have to do many pointless things; at least pointless for us. We have to fill unnecessary forms.We have to get documents signed by random people.We have to write foolish things.We have to take part in pointless activities.We have to follow senseless social norms.We have to run behind people, asking them to address … Continue reading Do not rage against the machine
Why the heck is she doing that?
Good Will Hunting is the story of Will(Matt Damon), a janitor at MIT, who is an undiscovered maths savant. Will is an orphan who spends his spare time drinking with his buddies and getting into petty scuffles. Professor Lambeau(Stellan Skarsgård) discovers Will's mathematical acumen and promises Will a fulfilling life. Professor Lambeau tries to get … Continue reading Why the heck is she doing that?
Fade to back
In this post, I will walk you through the principles to keep in mind while designing processes. The north star: If you want someone to do something, make it easy for them to do it. When someone wants to start the fitness journey, the standard advice is to start with an exercise regime that is … Continue reading Fade to back
Uncomfortable and Confrontational
No one has an incentive to tell you hard-hitting uncomfortable truths about yourself that you are blind to. Giving hard feedback is an awkward confrontational situation—to the person giving feedback and the person receiving feedback. We avoid confrontation with people we know. This behavior(avoiding face to face confrontation) of ours might have something to do … Continue reading Uncomfortable and Confrontational
Does code quality matter?
What role does code quality play in the outcome of a business? I know it when I see it—said a judge on pornography. Quality code is the same—you know it when you see it. It is challenging to define what quality code is. It is tough to come up with quantifiable metrics on quality code. … Continue reading Does code quality matter?
Communication Architecture
Organizations do not give attention to their internal communication architecture. Internal communication evolves organically. Deliberately designing the internal communication architecture makes a difference. By internal communication architecture, I mean: How does information flow? How do team members communicate with each other? When do they communicate? What is the medium they use for communication? A decoupled(push-based … Continue reading Communication Architecture
When Not to Abstract
Software developers love abstractions. It is satisfying to hide the perceived ugliness and complexity of the underlying system in a so-called easy to use, beautiful interface. Also, abstractions are considered a good design practice. The abstractions that I am referring to are those along the lines of structural design patterns like adapter and facade. ORM … Continue reading When Not to Abstract
Fighting FUD
FUD stands for fear, uncertainty, and doubt. FUD is the strategy of influencing perception by spreading false and dubious information. Fighting FUD takes energy leaving no steam for real work. Marc Andreessen, a Silicon Valley venture capitalist, recently wrote a post saying: It's Time to Build. The gist of the writing is—in the US, people are no longer … Continue reading Fighting FUD
The three pillars of scalability
The three pillars of scalability are statelessness, idempotency, and coding to interfaces. If you keep the above three in mind, your application can scale a long way with your users. Of course, I am not implying these are the only three things to keep in mind while designing scalable applications. Statelessness: If an application does not store … Continue reading The three pillars of scalability
How do I Know I am Right?
TLDR; there is no way. One thing the Coronavirus crisis has made vivid is that no one knows anything for sure. The fact that no one knows anything bubbles up every time there is a crisis. This time though, due to the severity of the mess, it is stark; in your face. Experts used to … Continue reading How do I Know I am Right?
Should I or Should I Not
This post walks you through a framework for adopting new technologies. Microservices is a placeholder in this post. It is a generic framework that you can apply to any new technology that you are planning to adopt. Should we do microservices? The above question plagues the minds of software developers. Popular programming culture made microservices … Continue reading Should I or Should I Not
Let go of Stereotypes
The key to building a great team lies in ejecting the stereotypical portrayal of the role from your mind, objectively figuring out the qualities needed for success in the role, and ruthlessly going after that. What is the stereotype of a leader? A charismatic extrovert who can spellbind an audience with her talk. Leadership is … Continue reading Let go of Stereotypes
Wild Wild World of External Calls
Today, while developing software, external calls are a given—your code talks to external HTTP services, databases, and caches. These external communications happen over networks that are fast and work well most of the time. Once in a while, networks do show their true color—they become slow, congested, and unreliable. Even the external services can get … Continue reading Wild Wild World of External Calls
Centralization and Decentralization
Top management loves centralization. Rank and file prefer decentralization. Why? Imagine you are the CEO of a company with multiple teams. Teams need software to do their work. When the need arises for a software, someone from each of the team talks to the software company negotiates a price and procures the software. As a … Continue reading Centralization and Decentralization
Working hard to be lazy
The programming world heralds laziness as one of the virtues of a programmer. Larry Wall, the creator of Perl, says - Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris. What no one tells you is that this laziness does not come for free; … Continue reading Working hard to be lazy
The million dollar question
What is the point of life? All of us have pondered over this question. Luminaries have devoted their lives in the pursuit of an answer to this question. Philosophers have written voluminous texts trying to answer this question. I am no Yogi, but that does not disqualify me from trying to answer this profound question. … Continue reading The million dollar question
Murphy’s Law Of Software Abstractions
All software abstractions, sooner or later, leak. When this happens, it hurts. To drive a car, you need not know how it works internally. The mechanics of an automobile is well abstracted from the driver. Similarly, software libraries, tools, and frameworks promise abstraction to the engineers using them. They promise that one can use them … Continue reading Murphy’s Law Of Software Abstractions
Charlatans and Us
Charlatan - a person, falsely claiming to have special knowledge or skill. "How do we hire amazing engineers fast?" is a question people ask me often. When someone asks me the question, they usually expect a profound answer, which will cure all their hiring pains. Hiring, especially good people, is a long, involved, and arduous … Continue reading Charlatans and Us
The Games We Play
Two members of a criminal gang are arrested and imprisoned. Each prisoner is in solitary confinement with no means of communicating with the other. The prosecutors lack sufficient evidence to convict the pair on the principal charge, but they have enough to convict both on a lesser charge. Simultaneously, the prosecutors offer each prisoner a … Continue reading The Games We Play
Becoming a Guru Programmer
Are you in awe of the Jedi programmers who seem to produce bugless code? Are you bewildered by the Guru programmers who fight inefficient code with their hands tied and eyes closed? They are not superhumans; these are mere mortals who have a repertoire of bug patterns in their heads owing to their experience. They … Continue reading Becoming a Guru Programmer
Enablers, not doers
How do you run effective Platform Engineering teams? All organizations have Platform Engineering teams in one form or the other; these are centralized engineering teams providing building blocks for other engineering groups within the company. The customers for these teams are the internal engineers, not the end-users of the product. For Platform Engineering teams to … Continue reading Enablers, not doers
Optimists, Pessimists, and Better Coders
Whether one is an optimist or pessimist is dictated by genetics. Wise people say that you can give your genetics a run for the money by making happiness a conscious choice and learn to be deliberately happy. What does this have to do with coding? How do you decide whether a code is good or … Continue reading Optimists, Pessimists, and Better Coders
NOT – Not Only Testing
How do you create a quality assurance strategy? Is quality assurance the same as testing? Companies nowadays do not have a separate quality assurance(QA) team. People coming from the old world find this difficult to digest. In the last decade, the way of developing, deploying, and monitoring applications has changed. Gone are the days of … Continue reading NOT – Not Only Testing
Reflection on AWS re:Invent
AWS re:Invent is an annual event hosted by Amazon in Las Vegas. It is a celebration of all things AWS, as well as an opportunity to advance one's AWS skills and meet the teams behind the various AWS services. Approximately 65,000 people attended the event this year, and I was one of them thanks to … Continue reading Reflection on AWS re:Invent
Generalization – The Superpower
I was reading this Twitter thread on Ben Horowitz's new book on culture. The book's content is apparent to anyone who has spent time in a corporate setup. I have been listening to the audiobook - "Zen: The Art of Simple Living." Again, the content is not radically new, something you would already know instinctually. Off late, … Continue reading Generalization – The Superpower
Critique of Critiques of Daily Standups
In HackerNews, I read yet another write-up on daily standups and how they suck. Periodically, a post pops up on daily standup and how it is a nuisance. This entry of mine is an attempt at importing the importance of daily standups and how it adds value. We will also look at some of the … Continue reading Critique of Critiques of Daily Standups
On Competition
I believe keeping an eye on the competition is a good idea. Keeping track of competition makes you aware of what is the new normal; it helps one to gauge current trends. If your product experience deviates from the prevailing standards, it might be time for a re-think. When a behemoth does something well regularly, … Continue reading On Competition
Zen and the Art of Mind Tricks
All of us wish to be in a state of zen. We desire to be cheerful and have a positive frame of mind. We aspire to be clean of bad habits. We want to calm our monkey mind and experience a higher conscious. Let alone achieving these, we find it tough to start. Below are … Continue reading Zen and the Art of Mind Tricks
Intuitive Introduction to Big O
The post is going to be an intuitive introduction to Big O notation. I am not going to be rigorous or mathematical in my approach. Big O indicates how an algorithm behaves when the size of the input changes. The behavior might be either the computation time or the storage required for computation. What Big … Continue reading Intuitive Introduction to Big O
Thoughts on Product and Feature Development
The post is a listicle on product and feature development in no particular order. There are three rules for creating a successful product. Unfortunately, no one knows what they are.1 If the success of your product depends on changing a deeply ingrained habit, it is going to be challenging. Your product should be attractive enough … Continue reading Thoughts on Product and Feature Development
Why work at a startup?
I have been pondering for a long time - Why is startup experience invaluable? How is it different from working at a big corporation? I have a good vantage point on this as I have been part of many startups, traditional process-driven enterprise corporations, and in-betweens. I knew the benefit of the startup experience. I … Continue reading Why work at a startup?
Security By Obscurity
Security by obscurity is one of the most common ills that plague the software industry. The most cited analogy for this practice is the act of burying your gold under a tree versus locking it in a safe. Hiding your gold under a tree is security by obscurity. You are relying on the secrecy of … Continue reading Security By Obscurity
Distributed Tracing
Distributed tracing means different things to different people - depends on whom you ask. In this post, we will look at distributed tracing in the context of debugging web application errors using logs in a microservices environment. We will also figure out the way to implement distributed tracing in the least disruptive manner. The aim … Continue reading Distributed Tracing
Designing A Great Meeting Room Experience
This post is a thought experiment in designing a great meeting room experience. This post will not go into the productive ways to conduct meetings but will deal with the mundane yet essential logistics part of meetings. We will try to design the experience based on a couple of simple, timeless principles: 1. Nudging people … Continue reading Designing A Great Meeting Room Experience
Kafka Is Not A Queue
How many times have you been part of a conversation where someone goes - "Let us use a queue like Kafka." And you are like Kafka is a distributed stream processor. There is a gulf of difference between a queue and a distributed stream processor. Kafka happens to be the most popular distributed stream processor; … Continue reading Kafka Is Not A Queue
Creating Quality Software
Creating software is easy; creating quality software is hard. In today's world of umpteen open source libraries, cloud computing platforms, and StackOverflow, creating software is child's play. You can look up things on the internet, glue together components, and voila - you have created something. What is hard is creating quality software. Software that scales; … Continue reading Creating Quality Software
Distributed System Fundamentals With An Imaginary Key-Value Store
The CAP theorem says that in the event of a network partition, a distributed system can be either consistent or available, not both. Let us first define some of the terms in the CAP theorem. A distributed system is a group of independent computers coordinating with each other to solve a problem. The group of … Continue reading Distributed System Fundamentals With An Imaginary Key-Value Store
Management distilled
There have been tomes written on team management, but, if you whittle it to the core, it boils down to the following. You set crystal clear expectations so that everyone knows what is expected out of them. You create an environment where everyone can thrive and meet/exceed the set expectations. You periodically check-in to ensure … Continue reading Management distilled
Cloud Movement
Moving from your own data center to a public cloud can be a daunting task. It can get confusing - Where to start? How to come up with a plan for the movement? The trick is to identify non-critical components of your tech stack to experiment and gain confidence. Once you are familiar with the … Continue reading Cloud Movement
Choosing Open Source Libraries
Confused how to choose an open source library? Read on. Nowadays, the barrier to entry for creating open source software has come down; this has lead to a boom in open source libraries. When it comes to picking one, there are tons of options; it can get confusing. Here are some simple and actionable tips to … Continue reading Choosing Open Source Libraries
Lessons from Indian elections
Before you ask, I do not have any. But, election season is the best time to get a front-row seat for the show on human behavior and psychology. Now that polls are over, it is time for all to draw lessons from the mandate. It is the best time to witness hindsight bias in action. … Continue reading Lessons from Indian elections
“Intentionally” Leaky Abstractions
Software abstractions that developers create should leak enough to let non-developers design the right product experience. Eons back in internet history, Joel Spolsky wrote a post on leaky abstractions. The gist of the writing is that even though we create software abstractions to make life easy, they somehow unintentionally leak through. With technology getting a … Continue reading “Intentionally” Leaky Abstractions
Re-Think
Amara's law says - "We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run." I see a lot of shared two-wheelers on Bangalore roads these days. The expectations of the companies which buy these for shared mobility would be very different from individual buyers … Continue reading Re-Think
Competitive advantage
Are you focussing on developer productivity? If not, read why you should. Technology is getting commoditized. In the yesteryears, you could have counted on your software frameworks and technologies, hardware prowess, access to capital and talent pool as competitive advantages. In a world, which is getting commoditized, the access to these has been democratized, thus … Continue reading Competitive advantage
Daily Standup
Are you confused as to whether to do a daily standup or not for your team? Read on why you should. Daily standups are a hotly contested and controversial topic in the software industry. There are some who actively champion it, and then there are others who detest it. I belong to the former camp, … Continue reading Daily Standup
All In
As a young fledgling startup, you should not be building layers of abstraction over the technology that you are using; on the contrary, you should be going all in. I have talked to multiple startups doing this. The intention is to future proof the product; this should be the least of your concerns during the … Continue reading All In
Make It Small
"Make it large" is the mantra these days, but when it comes to releasing software, think the opposite, make it small. The secret to a successful release is to break it into numerous small deployments; this serves a dual purpose, minimizes risk as well as gives you enough leeway to fix bugs before it negatively … Continue reading Make It Small
Knowing Versus Doing
Over-engineering is ripe in the software industry; this mainly manifests in three ways: 1. Needlessly complicated design. 2. Lift and shift engineering - Picking up technology and practices from other places without understanding the context in which it was developed. 3. Being trendy - Using frameworks and languages that are currently in fashion irrespective of … Continue reading Knowing Versus Doing
Open Source and Revenue
This is the second part in a series on open source software. In the first part, we examined why equating open source with "just" free is fool's errand. In this post, we will explore the different avenues for revenue from open source software. The first one is pretty straight forward - charge for support, maintenance, … Continue reading Open Source and Revenue
Open Source != Free
This is the first post in a series on open source software. You can read the second post here. One of the most common conflations I see people making is mistaking open source software for free software; both are not the same. Being free is just icing on the cake, the more significant advantage is … Continue reading Open Source != Free
The Source
I think the minute you have a backup plan, you’ve admitted you’re not going to succeed. Elon Musk said so. Chew on this for sometime before you read the rest. I was not honest with the above. It was not Musk who made the statement but Elizabeth Holmes, at the peak of her popularity. It … Continue reading The Source
Déjà Vu
You have been trying to solve a problem for quite some time; the solution appears to be elusive. As you grapple more with the problem, a seed of a solution germinates which sprouts into an answer. In hindsight, the resolution appears obvious. You kick yourself telling why did I not think of this sooner? How … Continue reading Déjà Vu
Now You See Me
In the modern software world, where micro-services are de rigueur, observability of systems is paramount. If you do not have a way to observe your application, you are as good as dead. W A T A R I The first step towards embracing observability is figuring out what to track. Broadly, we can categorize software … Continue reading Now You See Me
Market Size
When I was working on Kwery, a lot of people used to ask me - Why are you not trying to build a team and raise money? The niche market that Kwery served was not amenable to VC money or building a team. Kwery was an experiment in creating a single person lifestyle business. Market … Continue reading Market Size
Poor Man’s Anomaly Detection
You have a feature where if someone signs up on your product, you create a wallet for that person and top it up with complimentary money. Your organization swears by micro-services; hence sign-up logic is in one service and wallet creation and crediting is in another service. Once a user signs up, sign up service … Continue reading Poor Man’s Anomaly Detection
Startups and VC La La Land
With daily morning newspapers dedicating pages and front lines to startups and venture capital(VC) investments, they are no longer the niche they used to be. Whenever a startup investment is in the news, I hear questions along the lines of: Is the VC crazy to invest so much money in that startup? Why does that … Continue reading Startups and VC La La Land
Deviation From Expected
Someone sitting at a distance asks for the water bottle near me. I pick up the bottle and throw it at that person. Surprisingly, the cap is not screwed. Water splashes all over. When a bottle has its cap on, we usually expect it to be tightly screwed. When something deviates from the expected, unless … Continue reading Deviation From Expected
Conventions
Most programming languages have conventions. These could be for naming or code patterns. How does this help? A simplistic view is that it helps to keep code consistent, especially when multiple people work on it. A deeper way to look at this I believe is in reducing the cognitive load. In cognitive psychology, cognitive load … Continue reading Conventions
Anti Features
When evaluating new technology, framework or library; a lot of importance is given to the salient features. While it is very important to know the positives, the negatives usually tend to be glossed over. Being aware of the shortcomings of a framework gives one the ability to anticipate problems down the road. For example, let … Continue reading Anti Features
Luck
I read an interesting article by Richard Wiseman on luck, which I would highly encourage everyone to read. The gist of the article is that people make their own luck and being lucky is something that can be learned. An excerpt from the article: Lucky people generate their own good fortune via four basic principles. … Continue reading Luck
Taking Calls
Making decisions is part and parcel of being a leader. It might feel empowering to take calls, but the hallmark of authentic leadership is in enabling others to do this. The smoother the decision-making process and the lesser the blockers, the better it is for the organization. One route to get there is to create … Continue reading Taking Calls
Testing legacy applications
When contemplating on introducing automated testing in legacy applications, it is easy to get bogged down in terminology; unit testing, integration testing, regression testing, black box testing, white box testing, stress testing, etc. Quite a bit of time is spent in debates on unit testing versus integration testing, I have written about this before too. … Continue reading Testing legacy applications
Build Versus Buy
Consciously or unconsciously, as software engineers, we perennially take build versus buy decisions. It might be as trivial as copy-pasting code from somewhere versus racking up our brains to write our own; using an already available library or creating one from scratch; using a time tested framework against designing one; building a piece of software … Continue reading Build Versus Buy
Context
Sapiens, the book, gives a fantastic perspective of the context in which today's religions, society, and social practices evolved and how in the current context, a lot of these are irrelevant. One of the core ideas presented in the book is that humanity, during evolution, favored social stability over individual liberty because trust was necessary … Continue reading Context
Look ma, no schema
Due to the plethora of NoSQL databases available, schema-less is a tantalising option these days. While starting on a new project, NoSQL databases look attractive but reality sets in when the maintenance problems start creeping up later. If you are doing anything with data, you need to know the schema of that data. What … Continue reading Look ma, no schema
10 things you did not know about Vietnam
Sorry, could not help with the snarky title. We recently took a vacation to Vietnam and this is a collection of unconnected thoughts and observations about the country and our journey. During our travel, we visited Ho Chi Minh City, Da Nang, Hoi An, Hue, Hanoi and Halong Bay. In all these places, infrastructure was … Continue reading 10 things you did not know about Vietnam
Shoe Dog
Phil Knight, founder of Nike, pens down the early days of Nike in this part memoir, part biography, part business book; “Shoe Dog”. The book starts with Phil Knight’s idea to sell Japanese made sneakers in his home country USA, his business school thesis supporting the same, his journey to Japan to ink the deal … Continue reading Shoe Dog
Unit test – purist versus practical
Whenever you ask a question on unit testing in a forum, there is always that one person whose only job is to point out what you are doing is not unit testing but integration testing. It is important to know the difference but it is more important to not lose sight of the goal, ensuring … Continue reading Unit test – purist versus practical
Fighting change
In my new workplace, I was assigned a brand new shiny MacBook. My first reaction was to ask for an Ubuntu laptop. My brain justified by giving several reasons, it is developer friendly, software that you run on a server runs as is in Ubuntu, etc. I was almost about to voice this opinion, but … Continue reading Fighting change
Altruism FTW
Have you observed the way Google maps asks for info about local joints and places? They word it in such a manner that it sounds like you are helping others to make an informed decision along the lines of "Give us more info to help others". What they are doing in effect is appealing to … Continue reading Altruism FTW
A little extra effort
I was sauntering on Church Street and came across a used book store. It had been long since I had been to a physical book store, hence ventured in. I started browsing around. I have been wanting to read Shoe Dog for quite sometime. I asked the proprietor did he have a used copy of … Continue reading A little extra effort
Selfie
Let us say that you want to execute a job periodically, what comes to your mind first? If you are familiar with Linux, I can hear your screaming cron. Well, no doubt about that, cron is great, but what if I told you there is another approach which you can take to execute periodic jobs? … Continue reading Selfie
SQS versus Kinesis
A lot of people are confused between SQS and Kinesis. In some ways, both act as a queue, but there is a massive difference between the two. SQS is a queue, adheres to FIFO and promises at least once delivery. Kinesis is a distributed stream processor. A simplistic and hand-wavy way to think of Kinesis is like … Continue reading SQS versus Kinesis
Release early, release often
Releasing early and often can make the difference between life and death for new age internet companies. Most of the successful dotcoms like Amazon, Google, Etsy do hundreds of deployments per day. If you are a small organization, your magnitude and frequency of deployments might not rival these big organizations, but it is always a … Continue reading Release early, release often
The Expectation Test
I got a phone lying down on road. Since I could not unlock the phone, I waited for the owner of the device to call. A couple of hours later he did call and in his opening sentence started pleading to return it. Even though he was the rightful owner of the phone, he expected … Continue reading The Expectation Test
We Are a Startup
Being part of a startup is not an excuse to shoot first and ask questions later. “We are a startup” is the most common phrase people spout when you ask them about their sloppy processes and development practices. Being a startup cannot justify having zero process or letting developers be trigger happy. Being a startup … Continue reading We Are a Startup
Let us set up an office
FreeCharge recently moved into a bigger office; this brought back fond memories of setting up the first Bangalore office. Setting up an office might not seem a daunting task, but trust me, it is. A previous company that I was part of had opted not to set up its own office and worked out of … Continue reading Let us set up an office
Nothing is sacrosanct
There is an interesting bug opened against Kafka. For those of you too lazy to click on the link and read through the description, I am reproducing it here in full.It appears that validation of configuration properties is performed in the ConsumerConfig and ProducerConfig constructors. This is generally bad practice as it couples object construction … Continue reading Nothing is sacrosanct
At what cost?
I happened to read the comic by zenpencil on Jim Henson yesterday while reminiscing on the comic by the same artist on Bill Waterson's advice. Both the comics have the same essence of escaping corporate drudgery and following your dreams. Also yesterday, I watched Inside Llewyn Davis. Inside Llewyn Davis is a melancholic movie that … Continue reading At what cost?
Requirements
We had an admin interface from which people could download an Excel report. One day, we got a mail saying that the report format is Excel version so and so and it does not work with new Excel versions. The scramble began to find out which version of Excel was used, which version our app … Continue reading Requirements
Designing for failure
In the world of software, failure is a certainty. Servers go kaput, databases go down, processes go out of memory, things break all the time. You can categorize software as good or bad based on how they behave in these adverse scenarios. I am not trying to imply that software has to be resilient to … Continue reading Designing for failure
Poor Cannot Eat Roads
Rahul Gandhi allegedly made this statement. It is sad that an armchair, untrained economist like me understands the significance of roads while someone who is poised to lead India does not. Check out this vice documentary on truckers in West Africa to get the connection between roads and economy. Jim Rogers, the author of the excellent book … Continue reading Poor Cannot Eat Roads
Moving up the value chain
In the gym that I go to, there is a guy whose job is to sanitize(spray, clean, rub etc) the equipment after each person uses them. I always pity him and think how boring his job is. How can this person move up the value chain? The other day, people at the gym were opening … Continue reading Moving up the value chain
Consumer tech
I was reading this article about a startup that is launching satellites for imaging the earth. A line from the article stuck with me, the startup is leveraging technology developed for consumer devices like laptops and mobile phones in their satellites. This is a reversal from the olden days where technology that was developed for … Continue reading Consumer tech
Go lang
Last round of the recently concluded stripectf was in Go lang. This gave me a good opportunity to familiarize myself with the language. Even though my native programming language is Java, I have worked professionally in JavaScript, Perl and PHP; dabbled in Python for my personal projects and can manage to read Ruby, Lisp(and it's … Continue reading Go lang
Startup test
Where does your startup stand on the below? Do you have version control? Do you back up data(server data, db data, etc)? Can you build using a single command or prosaically, do you have build scripts? Can you deploy code to production in a single click/command? Do you have different staging environments like dev, qa, … Continue reading Startup test
Suckers for simplicity
Let me lay it out straight in the beginning, we Indians are big time suckers for simplicity in others. It is not that we ourselves aspire to be simple but attribute unnecessary importance to it in others. Just that virtue is enough for us to weave magical stories around a person and see him as … Continue reading Suckers for simplicity
Government regulation of muliplexes
Recently I read in the newspaper that Karnataka government is planning to regulate multiplex movie ticket prices. This sounds like sweet music to ears right? Why would someone not be happy to pay a lower price for anything? I feel this move smacks of licence raj. First of all, government has absolutely no role in … Continue reading Government regulation of muliplexes
Future is in the photos
I was going through the VC interaction posted by Everpix guys. If you go through the letters, you see this repeated a lot, "You guys are in a crowded space which the biggies(Facebook, Dropbox, Google, Apple, etc) are after". Everpix is/was a service to store and organize photos. Why is this such a hot space? … Continue reading Future is in the photos
Path of least resistance
I fractured my leg and Pavitra wanted to send the x-ray to my brother in law who is a doctor. He insisted on her not e-mailing but sending it through WhatsApp. I do not use WhatsApp because I do not have a smartphone(sic, sic) but almost all of my friends are on WhatsApp these days. … Continue reading Path of least resistance
AAP, an Indian e-com startup
There have been multitude of blog posts/tweets comparing AAP to a startup. I am not sure about the comparison in general but there are eerie similarities between AAP and the Indian e-commerce(e-com) startups of the yesteryear. 1. A lot of Indian e-com startups where founded by IITians and just this IIT tag was used by … Continue reading AAP, an Indian e-com startup
The disconnect
I used to sit next to the CS(Customer Service) team for sometime and I heard them instructing certain steps to customers to redeem campaign codes the second time. The dev team had put some extended efforts to exactly prevent this sort of scenario, these campaign codes were not to be redeemed twice. Why this sort … Continue reading The disconnect
Hands On Manager
When I was new to the software industry, I always used to wonder why managers and leads delegate and ask for updates instead of being hands-on. This article is dedicated to the young novice naive me. Let us take a hypothetical manager in an organization who has taken upon herself to deliver a feature. … Continue reading Hands On Manager
What can one person do?
Someone posted a mail to a mailing list that I am part of asking us to enroll in the electoral list and vote for Narendra Modi. As expected, there were a deluge of "I am smart ass" replies like "What can one person do", "I voted in the last election, but what has changed" etc. … Continue reading What can one person do?
Appraisals
Employee appraisals are a cause of butt ache in almost every organization. Majority of the people I have known/worked with hate this time of the year. In most of the places, appraisals are done in an ass backward way, where in, during some pre defined interval, you fill a form with all the potions you … Continue reading Appraisals
Collaboration tools
Anyone who has been part of a team, be it as an individual contributor or as a lead/manager, would sense a feeling of deja vu after reading this succinct post. I personally have seen this being played in almost every organization I have been a part of. Having been on both sides of the table, … Continue reading Collaboration tools
API
Whenever I hear about the government upgrading some utility website, I die a bit inside. I am strongly of the opinion that the government has no business to be in the business of building end user utility websites. A government should act as an enabler, not as a provider. How does this apply to utility … Continue reading API
To move or not to move
In the initial days, when I was trying to bootstrap the FreeCharge tech team, my team members were always trying to make me move us away from svn to git. For the past couple of years, if you have not been living in a cave somewhere without a net connection, you for sure know that … Continue reading To move or not to move
In search of that unique idea?
Why google when there was lycos?Why myspace when there was friendster?Why facebook when there was myspace?Why wordpress when there was blogger?Why tumblr when there was wordpress?Why posterous when there was tumblr?Why instagram when there was facebook?Why twitter when there was facebook?Why etsy when there was ebay?Why pandodaily when there was techcrunch?Why stripe when there was … Continue reading In search of that unique idea?
Be Vocal
Fresh out of college, in my first company GXS, after our training, me and another guy were put into a legacy maintenance project. It was atrociously boring. A couple of weeks into it, I told my colleague that I am going to talk to the manager regarding this. It was a pretty bold step going by the … Continue reading Be Vocal
Work from home
Recently, there has been a brouhaha in the tech community over Marissa Mayer's views on work from home. As an individual tech worker, it is very appealing to side with work from home, and going by the community's reactions, I would say that I am not in the least surprised. But, when you look at it from … Continue reading Work from home
Letting go of perfection
The dark side of perfectionism. Being a perfectionist is all the rage these days. Perfectionism has a dark side to it, which gets glossed over. When you are new to something, perfectionism acts as a hindrance. Many times, you know that you cannot dedicate wholly to something. In this scenario, perfectionism prevents you from starting—your … Continue reading Letting go of perfection
Mental model of systems
One beautiful Sunday evening our quartz jobs running inside tomcat server started to freeze. At the same moment, tomcat went kaput. I sshed into the server and started poking around the logs. No error in logs. Hmm, ok. Checked the system health, again stats looked hale and hearty. Now, what do I do? I started to reason around … Continue reading Mental model of systems
The social taboo – body and mind
I just finished reading this and my mind was contemplating over the society's taboo of using your body to advance yourself in life. I do not think Sasha Grey's parents adore their daughter's achievements in the adult film industry but I am sure Nate Silver's parents are proud of his mathematical acumen. The world today is … Continue reading The social taboo – body and mind
The Algorithm and Data Structures Conundrum
Hacker news denizens have a penchant for articles on hiring. Every once in a while, a post appears on the home page followed by a passionate and vituperative debate. People conversing on this can be divided into two camps; one argues that math, algorithm and data structures are critical and interview candidates should be quizzed … Continue reading The Algorithm and Data Structures Conundrum
Programmers and movies
I just finished watching Looper and really loved it. In the beginning, for sometime, my brain was scrambling around like a headless chicken trying to fit things together. After settling into the movie for about half an hour, things started to make sense like a mist evaporating from a glass pane as the sun rises up … Continue reading Programmers and movies
Gandhians With Keyboards
6th January 1980; young, 20 something artist; supremely gifted with a melodious voice; has no connections in the entertainment industry; zilch sugar daddies who can put her in touch with the right people in the recording business. How can this artist unleash her hidden talent on the unsuspecting world? The same situation forwarded to 6th January 2013. Records her … Continue reading Gandhians With Keyboards