AWS Lambda functions are very popular in the developer world right now. While these are a popular choice, a lot of developers still struggle to understand their execution behavior when it comes to runtime sharing and state sharing. If you ask a somewhat fundamental but critical question like “do two different lambda invocations share their runtime or any common state between them?” you will probably get a “NO” answer. AWS documentation clearly explains that they DO share some common state such as SDK clients, database connections, and other static resources But it won’t give any insights into sharing the runtime…


Several years ago, I wanted to host a simple web application that watches server logs and summarizes the health of some servers. This was before tools like NagIOS came along. I still remember the pain I had to go through to make this work — setup a linux machine, set up a web server and configure it correctly, configure my network to make it work, build a naive user authentication system to control who can see it, etc. The code to scan logs and summarize health itself was simple and didn’t take too long to write. …


With the proliferation of chat bots, there is a lot of attention towards conversational UIs. But every UI is a conversation — between your application and the user. As engineers, we tend to focus more on what our application needs and what we need from the user. That works, but if you want to make a good UI, you have to enter the user’s mind and focus on what they are trying to accomplish and create an experience that works for them. Like any good conversation, make it intuitive, thoughtful, and delightful.

Ten years ago that was hard to do…


As an engineer, you spend a lot of time with APIs — you’re either building APIs for others or consuming other’s APIs. Working with APIs therefore is as much an art as it is science. One of the most common mistakes that engineers make is not thinking enough about performance from the ground up. We want to make things work first and deal with performance later. That’s perfectly fine, but it helps to be aware of it while building that v1 so you can avoid chaos later. …


When there is a need to pull the data from different databases and analyze your data, I used to depend on Talend Data integration studio. You can just drag and drop the connection components and set its properties and ready to go. Sometimes IDE’s are painful. It is easy to explain what you want to do with a simple query instead of drag and drop hundreds of columns and map them or join them.

Then I learned about Presto server developed by FaceBook and is now open source. Imagine running a query like below where mysqlDB is referring to a…


As an Engineer, we have our own preferences in writing our code. Our own beliefs in how something should be written and what is the best way to write a piece of logic. When we want to apply our thoughts and ideas on something that is already existing ( which we call it as refactoring ), we should be pretty careful about unexplained internal details of the existing logic or unknowns in our new logic. With refactoring, your goal is not to mess up the existing functionality but to do the same thing in a better or cleaner way (…


My previous company CEO used to say this in his speech

“Jack of all doesn’t make you fame but Master one skill’

But then I recently came across another quote

“As Scott Adams explains, it’s much harder to become the best at one specific thing, than to become the top 25% of 2 or more skills that you combine to do extraordinary things. “

I totally agree on the second one. What do you think?

Santhosh Gandhe

Software Engineer, Engineering Manager and a Dad. Love to talk about serverless technologies.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store