I started with SAM but eventually moved to serverless framework (serverless.com). Severless was made to be cloud agnostic so I didn't want that overhead.

But it turns out that serverless has more support (if you're googling for how to do things, you get more hits from serverless) and more developer friendly.

On of the best features is deploying just the code changes. This speeds up development time as a just code deployment is around ~3 seconds vs ~30 seconds for deploying the whole resource.

On my first serverless projects, I used hapi (the whole shebang) and wrapped it in a lambda. On my current project, I am using AWS HTTP Gateway as the router.

This means each endpoint points to a different lambda.


- Each endpoint can be released separately

- No overhead of a router. Depending on the library used, my zip files are usually less than 1 MB

- Each endpoints log is separated into its own log group. This turned out making debugging easier.


- Every lambda has to be cold started. I'm getting 1-2 seconds cold start. It…

I see a lot of negative comments. It's true, this article is full of holes, however it still got recommended by Medium because it received a lot of eyes. I was going to add a negative comment as well, but would it better to see articles as a start of a conversation instead as a source of truth.

So for this conversation starter, I would say you don't need a docker file (at least in AWS, that magic is done for you on their end). You can create a serverless method in seconds with just source code*

However, you would…

I really liked how we designed our websocket architecture. After all the infrastructure is written, it’s easy to use and fast to implement new features.

Why Websockets?

Websockets is used for bidirectional communication. Browsers usually communicate only one direction. The browser requests information from the backend. Without bidirectional communication, to get the latest data, a browser would need to poll (continuously make calls to the backend). With websockets, the backend can send information back to the client without a request.

Typical usage

  • User to user communication — another user’s action updates information for a different user.
  • Long process — a process takes a long…

I ended up with something similar. I started with hapi wrapped in lambdas. But on the next project, I went straight nodejs. This is because I didn't want the unnecessary bloat and also I was using AWS API Gateway as the router. So I ended up with 3 JOI validators methods (body params, query params and path params) that I may or may not use per endpoint (similar/influenced by hapi).

Being Passionate is the key differentiator between getting hired and getting a rejected.

At the end of the interview day, all the people that interviewed the job seeker gather in a room to give the thumbs down/up. We talk about the applicant, pros and cons. Is he/she better than the other candidates. Some companies try to science it, by having categories that you score. But it boils down to personal intuition. Should we hired this guy?

Now consider this two real comments from my past companies. “This guy is young and does not have the experience but he was very…

Ideally you would go for what you have passion for. However, you need to mix in pragmatism.

Look at companies you would like to work for, check their careers page. What technologies are they looking for? Take note of what technology pops up all the time.

Do a search on indeed.com or any job site. For each technology, how many jobs are listed. Make sure you add the location that you are willing to work at. There could be a lot of C# jobs but nowhere near you.

How to learn new technology?

The best case is to convince your boss/co-workers/Product Manager to use it…


Software Doodler with 20+ years of Noodling Experience

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