Architect for Scale - My Learnings in Node.js (A case study)

Abstract

When faced with the inevitable question of choosing a framework, people often times go for the most popular and hardly do the research on why others may serve their purpose. Deployment is another issue; microservices? Monilithic? Docker? What about testing? And security? They are a lot of questions. With this conversation (rather than a “talk”), I will try to justify the good and the bad use-case of each of the technologies.

By the end of this talk, the attendees should have a nice grasp on the pros and the cons of some of the most popular libraries, design patterns and mechanisms in the Node.js/JS world and when should they use which.

Outline

Why this talk

Introduction

How not to do Logging

My experience with security and JWT

JSON vs. RPC

Why “express” isn’t the answer to every problem

Detecting and debugging memory leaks in production.

Network and service mesh layer

When to use HAProxy (vs. nginx)

Bits of bad code I have seen

Conclusion and QA

Speaker bio

In my career as a JavaScript developer and backend architect, oftentimes our teams have faced these age-old questions and have opted to choose whichever was the easiest. While good for RAD/MVP, every technology has its side-effects which are, more often than not, misunderstood or misconstrued. Further, a talk with just a bunch of slides gets boring really fast. I try to combine experience, story-telling and technology (and some humor) to keep the audience engaged while making sure that they learn as much as they possible can.

I have worked with startups of all sizes (a pretty cliché line) and I have faced numerous problems (read: disasters) while writing code; some have been slipped under the carpet whilst others have led to some losses. In the end, there is a saying - “if a developer wrote perfect code, everyone else would be out of a job.”