12 questions that I get asked the most about social media

A lot of people know me primarily through social media – this blog ( and SAP blogs in past) , LinkedIn , Facebook and Twitter . This has generally been a net positive experience for me .

I have been stopped for conversations at airports around the world by random folks. I have walked into meetings with clients where they knew my point of view from my social media posts and hence felt like they knew me already . I was quite active in training and showing dogs till few years ago – I keep in touch with them on Facebook . I have hired quality talent , and made great friends over LinkedIn and Twitter . Just last week a guy who went to college with me and stayed at the same hostel in India – he was in Phoenix for a conference and looked me up on LinkedIn . We had lunch at my house and caught up after a few decades . The list goes on and on – and it more than makes up for the handful of terrible experiences I have had on social media .

I routinely get asked a bunch of questions about my views on social media and how I use it – mostly by people who want to learn , but occasionally also to just imply that they don’t think very highly of it

So I thought why not just address the common questions here .

1. You seem to have a lot of time to be active on social media . Don’t you have a real job ? I can barely keep up with my day job

Contrary to popular belief , I do have a real job and that needs my full attention 🙂 . However , over time I have figured out how to integrate social media into my daily routine . I generally use social media only on my phone – including for long form blogging. That saves a lot of time .

A lot of what I write about is of course regarding my day job . The conversations I have with my clients and colleagues and people I meet on my travels are usually the triggers for my posts .

We always find time for what we like and prioritize . I like to eat Indian food and don’t mind driving 10 miles extra to find an Indian restaurant . Another person might like working out daily and will spend that time running or finding a gym. “I don’t have time” translates usually to “it’s not important for me”.

2. Aren’t you worried about what you say openly in public domain ? Does your manager yell at you for writing something ?

I only talk about my personal views – and usually only about things where I have a strong point of view. So I don’t feel any worry . If I suspect people will mistake it as my employer’s opinion – I state upfront that it is just my views . It has worked well for me so far . I also have no problem standing corrected in public when proven wrong .

Thankfully none of my managers have ever yelled at me for blogging (they do so occasionally for others things) – and have only encouraged me to do so . And I have been their mentor a few times to ease them into social media.

3. Do you have a time table for social media ?

No I don’t blog or tweet at set times . I say something whenever I feel inspired to do that . I don’t check what times I should post to make biggest impact . I don’t aim to get a certain minimum number of page views. I do check statistics on my blog when WordPress alerts me and it’s usually something like “20% of what I write get 80% of views” . Time tables and fine tuned analytics work for many bloggers I know personally – I just haven’t taken that route yet .

4. How do we get started on blogging , twitter etc ?

I can only say how I progressed . My primary use then and now is as a source of curated information . I read at least 10x what I write . Then I started commenting on blogs that I started following . It took me a couple of years to have the confidence to write a blog myself – that was on SAP SCN site . A few years later I figured I have things to say that have nothing to do with SAP – so I started this blog on WordPress .

Twitter use has evolved over time . I use it less and less these days to say something . But it’s still one of the best places to get information . I only follow 150 people there and I think close to 9000 people follow me . Some folks think it’s rude to not follow back . I ignore that policy – I can’t stay on top of a feed any bigger than what I have now . I keep changing the list every now and then .

5. Do you only talk about work ?

Hell no ! I write about anything around me – politics , religion , economics , cricket, dogs … whatever inspires me is a fair topic . Some folks aim for depth on any one topic like Technology . That’s not my approach – all topics that interest me are fair game .

I try to not deviate from work related stuff on LinkedIn . But the truth is all popular social media platforms now have content overlap . You can use the controls they provide to tune your experience to some degree but it’s hard to completely set hard boundaries . I do have a handful of work friends on Facebook for example – and it has not stopped me from expressing what I have to say .

6. Do you take a break from social media ?

Yes I do ! Throughout the year , I take a few months off each channel I use . At the moment, I am out of Facebook . I delete the app on my phone to prevent the temptation to take “a quick look”. These breaks are one reason I continue using these platforms over the years . It also gives me time to read more books !

And there are a few months every year when I just can’t find any inspiration to blog . I have considered just giving it up altogether . But then magically one day I feel like it again and I open the app. The opposite also happens occasionally – I will post multiple blogs back to back .

7. What does success look like ?

For me , engagement is the big prize . When people comment and share and email me about something I wrote – I feel I did something worthwhile . Page views are a feel good metric too – and over the years a lot of page views happen for reasons I can’t always explain rationally . Some of the blogs that I thought I wrote terribly have had the most views – and sometimes even the most comments .

I push all my blogs to LinkedIn and twitter . And if I see someone tweeting or sharing , I will retweet or like. That’s the extent to which I promote . I don’t do any active SEO etc . As the networks have increased over time for me in various channels , I do get more people reading and commenting .

8. How long should a blog be ?

I am a minimalist by nature and quite lazy . So I try to use the minimum words to state my point of view. English is not my first language – so I don’t always succeed . Since I read most blogs on my phone, I tend to favor shorter blogs . There are amazing bloggers who do 5000+ words on average – I don’t have it in me to do that . 1000 to 2000 words is the most I can do.

9. Does someone review what you write ?

Not at all . I am kind of ashamed to admit this – but I also don’t do any proof reading or spell checks . When I finish typing, I hit publish . My wife usually spots errors when she sees it on her feed and routinely criticizes me on not being more careful . Generally this has worked for me so far so I don’t think I am going to change it . On the flip side – this is my biggest fear about writing a book . The process of professional editing scares the crap out of me 🙂

Strangely – I am fanatic about proof reading every document I create at work .

10. Who is your target audience ?

This may not come across very well – but the truth is – I write for myself . I like to believe someone other than me and my mother will find what I write to be useful – but as I mentioned before , only a relatively small proportion of what I write evoke any reaction from my readers . I am cool with that . When I do get feedback , I incorporate it as much as I can the next time I write .

11. Has blogging helped your career ?

Oh yes , without a doubt . While it’s hard to make a specific attribution – blogging and tweeting has generally been quite helpful in making me stand out at work. And as I said before – knowing my POV through my writing has generally been a help in my interactions with clients and business partners . To the best of my recollection – I have never been promoted or given a raise because of what I do in social media . I have been asked this a lot over the last decade . Career progression has historically been generally all tied to traditional metrics likes sales and delivery numbers and people management and so on . But indirectly , social media has only helped my case .

12. Do you use your blog to evangelize your employers products and services ?

In general, I don’t . I don’t think I sound credible pimping what we sell . However – I am very proud of where I work and what we do . So that might occasionally reflect in what I say . There are a few notable exceptions to this . Last year, an analyst criticized Watson in his report and I felt strongly that it was unfair – so I posted a rebuttal in my blog . I did explicitly state though that I am an executive at IBM and I own stock in the company . I have also written about SAP HANA when I worked at SAP Labs in the engineering team .


Math and Science in daily life – Part 2

Last time, we discussed how Pythagorean theorem helps us in every day life. Today, I would like to invite your attention to Pi , a beautiful constant (yet one we cannot fully measure) that is in practically everything we see and use.


Image courtesy https://firstnewnan.com/casual-pi-day/

So, what is Pi ?

The common definition is that it is the ratio of the circumference of a circle to its diameter. How cool is that ? ALL circles have the same ratio of circumference to diameter – and thus all circles are similar figures. In Math we represent it as the greek letter  π .  There is a lot of interesting trivia to know about pi – so lets start there

Pi goes on and on

π is an irrational number ( a geeky way of saying it cannot be represented as a regular fraction like 1/2 ). It goes 3.1415926535897932384626433… with no repeating pattern emerging in its decimals.  It can be approximated to 22/7 for use in daily math. Its a standard test for supercomputers to see how many digits after decimal point of pi can be computed. Practically only a few hundred are needed even for the most complex applications though.

Pi is the reason you can’t square a circle !

Ď€ is not just irrational – its also transcendental ( yet another geeky way of saying it cannot be expressed as the root of a polynomial ). Not all irrational numbers are transcendental – like for example the square root of 2 is irrational, but not transcendental. Its a very special class of numbers – mostly because it is very hard to prove a given number is transcendental. You may have heard of “Squaring the circle” as a way to say “trying the impossible”. It is because of pi being transcendental that you can’t create a square with the exact same area as a circle with a compass and straight edges. 

Pi has Indian connections 

While the origin of pi is attributed to the Greek mathematician Euclid, several Indian mathematicians like Aryabhatta, Madhava led the effort in providing proof and to calculate its value – usually based on infinite series of numbers. Its also interesting how the algorithms used to calculate pi has changed over time. It started with infinite series, then moved to iterative algorithms – and then switched back to infinite series again thanks to the use of an equation developed by the genius mathematician Srinivasa Ramanujan

OK, so now about the use of Pi in daily life

Finding the area, volume, circumference of anything that has a curve

Anything that is curved has some association to a circle in math – and circles all have pi as the ratio for their circumference to diameter. Consequently calculations for all those curved things like circles, spheres, cones, bell curves and so on ALL have pi in it.

Pi is also useful with straight lines and angles

While we commonly talk about measuring angles in degrees, math geeks measure it in radians. Quite simply a full circle is 360 degrees and in radians it is 2Ď€ radians. In other words 1 degree is π/180 radians. Thanks to pi finding its way into measurement of angles – it features in most of trigonometry as well – even though all you see is straight lines and angles between them. This extends to Calculus and other branches of math which we will explore later. Pi is the one constant that is everywhere !

Pi in the sky…and elsewhere

Every aspect of transportation uses Pi in its calculations. This one is personal for me – being a mechanical engineer by trade. Think of a plane or a car – everything from calculating surface area to wind resistance includes pi (remember all curves lead to pi !). Not only that – pi is integral to the calculation of all navigation be it in air, water or land – including finding the distance between stars and planets etc ! This is especially critical for planes that always have to fly in arcs, and where fuel consumption calculation can be a life or death issue.

Pi and the length of rivers

Prof Stolum of Cambridge University showed using Fractals that the ratio between the actual length of rivers from source to mouth and their direct length as the crow flies can be approximated to pi !

Pi is a friend of random numbers

We saw how Pi helps with curves and angles between lines. But it also shows up in seemingly unrelated domains. Here is an example – among a collection of random  numbers, the probability of two numbers with no common factor is 6/Ď€2 . If you are a math geek – you can find many other examples like this – like Cesaro’s theorem and Buffon’s needle problem where pi comes up unexpectedly.

Pi as a safety net 

Whether we are designing a beam which should not break apart from vibrations ( My mind is racing back to my machine design classes) , or a video game (much more pleasant memories from creating games on BASIC) that should not crash when users do random things – the engineers factor in some “randomness” into their model to account for real life. No surprise – all those models typically include pi ! This is just a result of something we spoke above – such probability distributions typically use “area under a curve”, and that by definition needs pi

Math and Science in daily life – Part 1

In my job, I spend a lot of time explaining technology topics to my clients in simple english. Off late, a lot of such conversations are about AI, Data science, Quantum Computing etc . Those topics are rooted in maths and physics (amongst other things), and I often find there is some fear about math and science that exists in the minds of some people listening to me, and it gets in the way of their appreciation of technology.

I am also the dad of a teenage daughter who loves math and science. From my daughter and her friends and teachers – I got the feeling that many a time students get education in math and science in quite an abstract way, and it leads them to think “Why should I really learn any of this? I am not going to use this in real life”. In a few weeks, I am going to give a talk to high schoolers on how the math they learn in school manifests in real life in ways they may not have realized .

So I am going to try a couple of posts here to see if I can explain how simple math leads to powerful and beautiful things we see and use in our daily lives. I would really love your feedback on each topic including alternate/better explanations, and also your suggestions on what else would make good examples. If anyone wants to post a guest blog – we can consider that too.

Let me ease into it with simple math and see how it goes . We can build up from there . Here we go !

Pythagorean theorem

Lets start with the very simple and quite powerful Pythagorean theorem . It states that the square of the hypotenuse (the side opposite the right angle) is equal to the sum of the squares of the other two sides. We remember it via this elegant equation

 A2  + B2 = C2 Screen Shot 2018-03-02 at 4.33.04 PM

This theorem has been proved in several ways , so we will skip that part and get to the fun aspects . If there are three positive numbers A, B and C where A2  + B2 = C2    is true, then it means that there exists a right angled triangle with A and B as the short sides and C as hypotenuse. Some of the fun is based on this converse property of this simple theorem.

How to make square edges on your garden bed

Any three numbers which make true is called a pythagorean triple. The numbers 3,4,5 form one such triple ( 3 squared is 9, 4 squared is 16. the sum of 9 and 16 is 25 which also happens to be the square of 5 ).

Here is a simple problem – lets say you are making a garden bed to plant vegetables.  How do we make the edges square if all you have is a tape measure ? Easy – just make a a triangle with sides 3, 4 and 5 units using the tape and mark the end points on the ground. Voila – You have edges at perfect square !

How big of a ladder do you need ?

An extension of this is also true for finding the length of a ladder required to paint a wall – probably a question kids get in school exams. If the point where the ladder needs to touch the wall is 4 meters, and the bottom of the ladder is 3 meters away from the wall on the floor – the length of the ladder needed is 5 meters !

Or let’s say you want to convert stairs into a ramp on your back porch – the same concept applies .

Real engineers use this information frequently – the one I remember the most from my college days is in surveying land, finding length of trusses etc .

Planning your next painting project

Lets say we draw three similar figures using the sides of the right angled triangle forming one side of those figures. Similar figures just mean the lengths of sides have same ratios, the included angle between sides are the same.  Easy way to think about it is zooming a picture on your phone . All parts increase or decrease in size – but their ratio to each other stays the same . It does not matter what the figure is – it could be a square, a pentagon or another triangle. The area of the largest figure (the one using hypotenuse as one of its sides) is ALWAYS the same as the sum of areas of the two smaller figures. How cool is that ! See this picture from wikipedia to see what I mean


Lets say these three squares are walls you need to paint . For the same quantity of paint you will need to paint the largest square – you can paint both the smaller squares !

How much marinara do you need ?

It’s not just about squares either – this area computation via Pythagorean triples also applies to circles . So for the the quantity of marinara you need for a 5 inch pizza can be used to coat both a 3 inch and 4 inch pizza ! If your mom is like mine – I wouldn’t advice trying this math on her while she is making you pizza . Theory of “mom is always right” over rules every other rule 🙂

If you are a social media marketer

You probably are a fan of Metcalfe’s law which says the value of a network is proportional to the square of the number of connected users in it . Let’s say you are given access to three potential networks . A has 3 connections , B has 4 connections and C has 5 connections . Since The squares of A and B add to the square of C – you get as much out of a network with 5 connections as you would get from A and B which together add to 7 connections . Spend your time and money wisely !

PS : I have my own misgivings on this – but would like to hear your feedback anyway . I didn’t come up with this myself and can’t remember anymore who told me this originally . But I have teased many a marketer friend with this at social events 🙂

What’s next

I think I would like to example the wonderful pi next . There is pi in pie !

Looking ahead – what jobs will technology take away ?


As with a lot of things like politics, religion and so on – the world is sharply divided between people who believe AI and Robots (or automation in general) will take more jobs away than it creates.  I was drawn into this debate yet again by a few friends couple of weeks ago – so let me jot down while I still have it fresh in my mind. My crystal ball is not any more effective than yours when it comes to looking into the future – but there are a few scenarios where I do think jobs will be taken away. If your job is in one of these categories, the smart thing to do is to gain additional skills. Just to be clear – I also think there won’t be any net job losses. As always – this is all strictly my personal views on the topic, and not that of my employer.

Another way to look at this is – many companies will automate tasks and eliminate labor where they can to save costs. If you have skills that can make them earn more revenue directly or indirectly, you get to stay employed. Otherwise instead of reinvesting the savings, the company will probably treat it as profit, or keep the cash for future. The job itself might stay in many cases – but there just won’t be a need for as many people to do it. Granted – there will always be exceptions. Technology will also create a bunch of new jobs – which I will write about in another post.

I think there are at least four categories of jobs that will get disrupted soon.

1.If most of what you know is public knowledge

This is especially true for my own profession, which is consulting. In the 90s when I got out of college – there was no google. If I knew something special ( from books , professional magazines, training etc ) – a client would pay some money for me to tell them what I knew that they did not. That does not happen much any more – there is no premium for internet access . Clients and consultants both have access to similar information – so you need to know more than what is available on internet to fetch a premium. It might sound ridiculously obvious – but this is a bigger threat to (especially junior) consultants than almost anything else .

You absolutely need to stay couple of steps ahead of market to add value to a client today. Having a logically defensible point of view, knowing what others in the industry are up to, what disruptions are on the horizon, what untapped opportunities exist are all still things a client will pay a premium for.

Consultants are not the only ones at risk either. As an example – A hotel concierge function could also fall in this category. You don’t need a human to get you a restaurant reservation, check weather, know the local tourist spots and  so on. However, it will be hard to replace a human who can help you score a last minute Hamilton ticket in Broadway, or one who can answer questions from four different customers in parallel and make them all feel special.

2.If your work is all about short tail questions from a customer 

A lot of systems we use were not designed with end users in mind. Thanks to that, a lot of human intervention is still needed for people to use things they bought. A good part of customer service calls are about answering questions like “whats my account balance”, “can you reset my password”, “Can I set up a payment plan”, “Can I use a different credit card” etc. Automation is mature enough already to do those things without human intervention . If that is all your skill is – your job probably will be taken away soon.

But there are lot of things automation cannot do in this scenario  – at least not yet. For example , talking a customer out of canceling a service is not something AI can do very effectively like a trained retention specialist. From a customer’s point of view – an automated way of resetting a password, or making a routine payment would be easier/faster than needing to talk to someone. But when you are upset with poor service , or want to talk through multiple options – there is nothing worse than listening to a machine with a long menu. Also think of this – as tech (and laws) improves all around, in most categories customers will have zero or low switching costs.

So if you are skilled at higher value service – you should be in hot demand. The money an employer saves by automating the short tail responses is what lets them invest more in higher value services. Of course we can also take a cynical view that some companies will just add it to bottom line and not bother re-investing. While that is a short term possibility, I doubt they can do it in long term without risking their whole business.

3.If you are in a job where process trumps thinking 

There are several jobs where the job needs very little original thinking. The critical thinking is done by few people who designed the workflow, and not by people executing. This would include things like preparing fast food, paying invoices, checking totals, scanning documents etc. These jobs are generally at risk given they are easily automated – and probably the only reason they are still around is because of the one time cost of implementing new technology. Given all tech will eventually commoditize, this is only a temporary safety net.

The human intervention will be limited to exception processing in these workflows, especially those that involve safety, brand issues, downtime issues etc like – what if the lettuce delivered is rotten and you need to run to local grocery to buy some ? What happens if the scanner stops working the last day of the fiscal period ? Do you want to harass a customer on collecting $100, when you know in 3 months they are due for a $1000 renewal?

4.If your job is only about answering questions, and not about asking questions

Computers – and all the advances in AI and Quantum computing and whatever comes next – will keep getting better at answering more and more complex questions. There are questions a computer can answer faster and more frequently than humans today – like who was the 44th President of US? What planet is closest to earth in the solar system ? . There are questions that are really hard for computers too, where a human can often answer effortlessly – like who was the quarterback of the super bowl winning team the year the 44th President of US took office ?  But over time, we should expect computers to generally be able to answer most questions we ask.

But humans are way better than computers when it comes to asking questions. At some point, computers probably can interpret a medical image better , and compare it against a million other images faster than any trained human medical expert. However, that is only a starting point – human experts are way better at asking better/unique/complex questions and explore any body of knowledge and expand on it. This is why I think no expert system will eliminate doctors – they will just make the quality of medical service a doctor can provide a lot better, and reduce mistakes. In short – We get to ask the smart questions, and mostly leave finding the answers to machines.

In various forms – this phenomena will play out in every job . People who have access to smart machines that can find better answers get to make decisions faster and cheaper than others, and that is how competitive advantages will be created in the market.

So in a nutshell – differentiation in future will be based on humans who can ask better questions than they can ask today, and machines which can answer better, faster and cheaper than they can today.

Sounds pretty straightforward, but we will of course fight this every step of the way. When horse drawn fire engines were first introduced, humans used to race them on foot to prove their superiority. We know what happened after that. For many reasons – political, legal, social and economic – just because technology can be used to effectively solve a problem does not mean that it will happen fast. So in my view, there is practically very low risk of massive unemployment any time soon. But without a doubt , every job around us will evolve in a way that human value add will become all about asking better questions and technology’s value add will be about giving better answers.

Microservices – What have we learned ?

Yesterday, I shared some of my thoughts on serverless architecture  and ended up getting a lot of feedback and a lot of it went back to SOA and then logically on to Microservices. So I thought it may be worth penning some thoughts on this topic as well. Microservices are not a fad – they get used quite a bit today across big important companies, although perhaps not very consistently. Also, I think we have enough experience by now to calibrate our expectations compared to a few years ago.


What is microservices architecture?

I am sure there is an official definition out there somewhere. But a simple way to describe it is as a way to design a solution as a collection of services, each of which does one thing quite well independently. Each service is its own thing – own process, implementation, language etc . The collection of such services that solve an end-to-end problem is then orchestrated with a lot of automation capabilities to form an application.

Why is this a good thing compared to a “monolith” architecture ?

Separation of concerns is not a new idea in designing systems. Microservices architecture is built on this principle. The traditional way of building an application includes a front end ( html/js) , a database ( SQL/NoSQL/File/…) and App server to handle logic. When we hear people criticizing “monolith” apps – they are usually referring to the serverside logic built as a logical whole.

Monoliths are not bad per se – they can be designed and implemented in a modular way, and can scale with the help of good design using load balancers etc. Just that when it comes to scaling, testing etc – you have to deal with the whole even though only a small part needs to change. As cloud becomes more and more the default deployment option, the flexibility to scale and change quickly becomes a bigger need than in the past. Microservices is a very good way to deal with it. Many monolith systems will co-exist with the world of Microservices .

How micro is a microservice ?

This is one area where the wisdom from actual projects tend to throw cold water on the theory and philosophy of microservices. The tendency for many engineers is to go super granular in service definition . Almost without exception, everyone I know who started with this approach has regretted it and agreed to start with fewer services and then break them into smaller chunks over time. The operational overhead is quite significant as you play with tens of services – you now have to maintain and monitor several services, and at some point there is a performance penalty for too much communication across a bunch of services that all do one little thing.

Another interesting aspect is whether your system needs to behave more in a synchronous fashion or an asynchronous fashion. When you break the system into smaller chunks, essentially you are favoring asynchronous communication between them. Then if you need to make it work in a synchronous fashion – you may question your granularity decision quickly.

What about the product/project team?

I have seen several ways in which teams are organized , and have spoken to folks who worked in such teams where I had no direct involvement. There are a few consistent themes

  1. The need to communicate frequently and freely is a make or break criteria, way more than traditional approaches. With great flexibility comes great responsibility !
  2. One big advantage that comes with microservices is that each service can be implemented with a different fit for purpose language. And each service might choose a different database for persistence. While that is all great in theory, just because you can should not translate to you should. For large projects – too many technology choices leads to diminishing returns. Choose wisely !
  3. There is practically no good way to hand off to an ops team when dev is over. Microservices forces a DevOps culture – or at least DevOps tooling for sure. Its probably a good idea to get EVERYONE in the team some training in tooling. You need different muscles for this world than dealing with a Tomcat cluster. The promise of CI/CD needs a highly trained, high performing team. I may even venture to say that best practice is to have the same team that builds the team to continue to support and enhance systems built on microservices. There are just too many moving parts to effectively transition to a completely new team.
  4. There is no substitute for experience. There are not enough highly skilled folks around , so the ones you get need to carry the weight of mentoring their less experienced colleagues. Written standards might not be enough to overcome this. A common observation is two services looking at the same business object – like a vendor object that is of interest to an accounts payables service and a compliance service – and interpreting the semantics differently. Only with experience can you catch this early and converge.

Is it truly easy to make changes compared to monoliths ?

If you are a microservices fanatic, you probably are well versed in all backward compatibility tips and tricks, and hence your answer has to be YES. I will just say that there are some cases where you wish you were working in a Monolith, especially when faced with pressing timelines. A good example is the changes many apps will need due to GDPR  . When multiple services need new functionality – you need to wrestle with the best approach to get this done. Would you create a new service that others can call ? Maybe a common library? Maybe change each service and make local changes? Each has obvious penalties. No silver bullets – decisions taken in designing the app will dictate whether you buy aspirin from Walgreens sized box or Costco sized box 🙂

What about monitoring, testing, debugging etc ?

All the overheads on these topics that comes from distributed computing are in full force here. This is one area where the difference is significantly more noticeable than in the monolith world. Many of us are fans of doing Canary releases . You should have some consistent philosophy agreed on upfront for release management. Whether we admit it explicitly or not, lean and fast deployment has a tradeoff with testing effectiveness. Essentially you are relying more on your ability of montiring your app ( via all the services and messaging frameworks and redundancies) and making quick changes vs trusting impeccable test results . This is a significant change management issue for most technology teams and especially their managers.

So is microservices architecture a safe bet for future ?

There are plenty of public success stories today of microservices implementations – and conferences and tech magazine articles and youtube videos and all that. All Major SIs have expertise in implementing them. So in general, I think the answer is YES. However, I am not sure if microservices over time will be any less frustrating than monoliths in how they evolve. I probably will get some heat from my purist friends for saying this – but perhaps one way to smoothen the journey is to start with a monolith as we have done in the past, then as it evolves – perhaps have services that call the monolith’s APIs. And as you learn more, break down the monolith to a full set of services. I am not saying this because I am a non believer – I am basing it strictly on the talent available to do full justice to a pure microservices based architecture in a mainstream way. Just because Netflix did it does not mean everyone can. In any case – the mainstream pattern in large companies any ways is to start with their old monoliths and roughly follow the approach I mentioned.

Is Serverless for you ?

One of the more recent architecture choices we can play with is the idea of serverless aka FaaS (Function as a Service). Thankfully, it is not hyped like say Machine Learning is. But nevertheless, it is widely misunderstood – often leading to bad design choices. I am just going to list a few questions I have been asked often (or I have asked fellow techies) , and give my point of view on those. I will try to keep this at a level where it makes sense for people who are not full time technologists .


Are there really no servers?

To begin with the name serverless itself is quite misleading. Your code does not execute in vapor – it still needs servers. From a developer point of view – you choose a provider to handle a lot of things servers do (but not everything) , and you can focus on your application tasks. That is not the same as there being no servers. Its one of those things where my developer friends smile and wink, and my Ops friends roll their eyes 🙂

Is it really much simpler than other options ?

A very hard question to answer with a YES or NO. If we look back 10 years or so, it was all about service oriented architecture (SOA). Now think how many well designed services were created in the time since then ? I personally have seen way more badly designed/implemented services than good ones. My point is when you try to deconstruct an existing application into smaller ones – it often (not always) becomes more complex, not more simple. I know it is counter intuitive till you think through it, or work on an actual project. The simplicity argument is strongest in favor of FaaS when you eliminate server management from what a developer has to worry about – but even there, you need to be careful about where the server logic goes. Sometimes you implement it in client, sometimes you move it to the function, and some times you need dirty hacks to keep everything working. Simplicity is in the eye of the beholder.

It is cheaper ?

When used for the right scenarios, it is indeed cheaper. The obvious case is bursting – where once in a while you get a lot of traffic to handle. If you are not careful about designing – and especially if you don’t test with production level data, its quite possible that you may end up with a more expensive solution than having to deal with full time server management. That is hardly unique for serverless though. Poor choices have a price to pay now and/or in future.

What does the developer not have to worry about ?

For the code implemented as a function, the provider ( like AWS Lambda) takes care of making sure it will get executed when triggered. So things like horizontal scaling, fault tolerance and high availability are things you don’t need to worry about. Needless to say, you have to make sure your code is friendly for parallel execution. And it is still on your plate how the application as a whole works – Lambda etc only controls what you passed on to it. So developers can enjoy more breaks ( or officially , they can work on making their app so much better ) 🙂

Also, if your server code is in java – which is true for many cases – you save a lot of time because you don’t have to redo the whole code. You can lift and shift with low effort. Another thing to gain more coffee breaks !

Also, API gateways become a good friend for developers in mapping parameters to and from functions. This makes development and maintenance more efficient in many cases. API Gateways themselves are fairly new too – so there is that. I guess you can also consider authentication to be implemented via the gateway – but my security expert friends may not like this idea. I need to think through this one more.

What is the big difficulty for developers in FaaS world ?

If you are like me, you spend more time debugging than actually writing code. As with all distributed computing scenarios – you have a tradeoff to make here. As we introduced these paradigms in quick order, the monitoring and debugging tooling has not kept pace. So the first movers typically spend more time debugging across all the layers without useful tools and it can be quite frustrating and inefficient.

How about testing ?

Since computing is distributed, you should plan for higher quality of testing in general. Its also about setting expectations with testers and users. Since the server is not always on waiting for a request – it needs to be switched on every time, and then it stays on only for a few minutes. If you have a lot of near real time needs, implementing it as FaaS is perhaps not the first option to cross your mind. Also – a lot of dirty hacks get introduced while testing if you are not careful with designing. A common one is to keep pinging the service to keep it awake since you realized some tasks take longer. You really need a close approximation of production peaks and valleys in testing to make sure you don’t get a midnight call to debug.

isn’t FaaS stateless ?

Short answer is yes , of course. But often we need some hack to hold state – usually by using a cache or database . Some logic on session management could be in client side too.

Is AWS Lambda the only option ?

Lambda is definitely the most popular and have been in the market the longest. But a lot of big players like IBM (OpenWhisk), Miscrosoft ( Azure functions) and Google ( Google cloud functions) . So you do have choices – they all have different things they support, but probably will converge over time. I will resist the temptation to talk about standardization 🙂

So what is a good place to start ?

Serverless is a newbie in the world of architecture – so proceed with sufficient caution. Since my playground is in large enterprise space, what I have seen the most is large existing apps offloading small parts of their functionality to functions. Those companies who have embraced DevOps also consider serverless when they create new apps . At the moment, I don’t expect to see a lot of pure serverless architecture options in large enterprises. Some kind of hybrid approach is probably where we are headed. Once the tooling gets strong, I am sure we will see definite patterns emerge.

Hopes and Dreams of a new CTO

On Friday 1/19/2018, I got a new role in IBM services as the CTO for North America.

It was an honor and privilege leading the CBDS business and I am very grateful to our team and our clients for a very fulfilling time. Pat Eskew and Rafi Ezry will lead it to greater heights and I look forward to working with them and cheering on the team every step of the way.

There are a few people to explicitly thank specifically for this new adventure I am embarking on. First, my boss Ismail Amla who runs services for North America for his trust in me. Second, my uncle Dr Krish Pillai who gave me his computer and the Dennis Ritchie book on C, when I was in eighth grade. I learned BASIC on that computer to code video games and had a huge collection of custom games on cassettes. And I struggled through the K&R book line by line till C became how I think of logic. Third, Prof Kalyanaraman who taught me statistics in Business School – he bridged the gap between math, computing and business for me.  I owe a huge gratitude for my parents who never questioned or hesitated in finding ways to support my varied interests , even when times were REALLY hard. And it goes without saying – more people than I can list here have helped me and continue to help me. Please know that you have my sincere gratitude and I will continue to seek your guidance.

I have some hopes and dreams about the journey ahead of us.

What I would like us to do for our clients is to be a champion for technology minimalism and simplicity. 

Technology has become incredibly sophisticated over time, and unfortunately also quite complex. On top of that there is the constant noise on hype. Every category of tech is a trillion dollar opportunity if you believe the analyst reports. This complexity and hype leads to clients not being able to use the sophisticated tech to solve their biggest problems. Instead – best case they get stuck in endless proofs of concepts, and worst case they stay still and risk becoming irrelevant for their customers.

Its very rare that any one technology is going to add value by solving a big problem. It usually takes the convergence of multiple technologies to arrive at meaningful solutions. This comes with the risk of over engineering , low speed of execution, and a real danger of designing a brilliant solution that can’t change on a dime when market changes. Striking a balance between all these is where engineering meets art.

I have a degree in engineering and business. And though not by design – I had a career where I had one foot each in tech and business. Growing up as a developer and later as an architect, I absolutely enjoy tech for the sake of tech – and I am not ashamed of it in the least.  But with roles in delivery, sales and general management,  I equally appreciate that in enterprise software, no one cares about tech that does not make or save money for our clients. Bringing biz and tech together – discussing the art of the possible, providing reality checks on emerging tech, ethics and trust issues that come with tech, connecting clients with each other and with ecosystem partners, building business cases to justify investments , debating usability of code for humans and machines etc are all things I look forward to working with clients on.

End of the day, its not what we make that is important – its what we make possible for our clients !

I would love for us to be known as the team that our clients depend on for solving their unknown unknowns  

We have an amazing team with a multitude of backgrounds, skills and experiences. Thanks to the opportunity to work with clients across several industries and solving a variety of problems, we know several common problems and also the solutions for those. That minimizes the risk of reinventing the wheel, and maximizes the execution speed.

But that is just the starting point – we need to be able to help uncover problems and opportunities that are not well defined yet. For any given problem – I have no doubts we have the skills to solve it. But a problem is only as good as how it is defined – simply because solutions depend on how a question is asked. The speed with which the world around our clients is progressing – we need to feel comfortable with the unknown unknowns, asking better questions and constantly striving to iterate towards better answers. Technology might not even be the lone answer for many questions – it could be a change in process or people.

This needs us to keep learning, and teaching each other  – broadly and deeply. Tomorrow belongs to the polymaths ! A very wise leader told me once that learning is like breathing – you just can’t stop. I plan to actively continue with our learning initiatives – both as a student and as a teacher/sponsor. The world of technology consulting is changing quickly , and in quite disruptive ways. I hope and dream for us to be on the right side of this change.

On the personal front, there are two things I am committed to this year . First is to exercise more . And after procrastinating for over a decade, I finally signed up with a personal trainer yesterday. I told him that I will hold him responsible for my success in my new role since I will need a lot of energy and strength .  He nodded, and there is a possibility that he may have rolled his eyes 🙂 .

The second is to teach programming to my daughter, to supplement the class she has started . Today I helped her with some nested conditional logic. She was impressed for about 10 seconds and then started telling me that such complex code is useless because she won’t be able to remember later the reason for writing it and none of her friends will get it . A part of me is proud that she immediately realized something about the big picture that took me a few years as a developer to get . And the other part of me is wondering if I have it in me to keep up with this despite my resolution . I see a lot of eye rolls in my future 🙂