Most software companies have to make decisions on whether to build a custom software or buy it from a vendor. Some of these decisions are mentioned below.
Continue reading “Questions to ask when making Build versus Buy decision”
- Should we build the recruitment tracking system or buy it?
- Should we build a custom video KYC solution or buy an existing one?
- Should we build a custom CRM or buy it?
- Should we build a custom CMS or buy it?
- Should we run your own CI server or use a cloud service like CircleCI?
- Should we build our search engine using Solr or Elastic search or use a service like Algolia?
To come up with the answer I try to find answers to following questions in context of the organization:
Continue reading “Questions To Ask When Choosing a Programming Language”
In my current role as Chief Technology Officer (CTO), I am responsible for the engineering quality of our software delivery teams. We are an IT service organization where every now and then, we get to work with different kinds of customers in different domains and each at a different maturity level in software delivery.
One thing that I often struggle with is how to unite the individual engineering teams working for different customers with a common shared belief system that is actionable, pragmatic, and less abstract.
You may ask, isn’t that what organization values stand for? Before we answer, let’s define the three common terms: Values, Principles, and Practices.
Continue reading “Defining Your Engineering Team Principles”
A monorepo is a software development strategy where a single version control repository has source code for multiple projects, libraries, and applications irrespective of their programming language. Also, the organizations using Monorepo strategy often use a common build tool (like Bazel, Pants, Buck) to manage all the source code. Some of the popular examples of organizations that employ monorepo strategy are Google, Facebook, Twitter, Microsoft, and Uber.
Before we start let me give some context on my background so that you can better understand my thoughts on Monorepo.
I head technology at an IT services organization. Most of the products that I build are using Microservices architecture, have multiple frontends(web and mobile). The biggest product that I recently built had close to 30 microservices, 1 web client written in React, and native mobile app built using React Native. These numbers are nowhere near the numbers big product companies have shared.
Continue reading “My Thoughts On Monorepo”
I prefer Macroservices over Microservices. I think most products don’t need more than 10 microservices.
In the last couple of months I was involved in a couple of consulting assignments where I had to understand the platform the team has built and give my recommendations. Platform is a broad term and it means different thing in different context.
Continue reading “How To Think About Platforms”