I am still in love with JavaScript, even more

August 30, 2023

As you may not know

As a senior back-end software engineer at LinkedIn, the assumption might be that I'm disconnected from front-end development. That's not the case. JavaScript was among the earliest programming languages I learned, and my GitHub repository demonstrates this — my first pull request involved adding Promise support to lowdb, showcasing my early engagement with JavaScript when Promises weren't yet mainstream.

My early years with JavaScript

During my freshman year in college, I discovered JavaScript while studying Java. The appeal was immediate: rapid visual development without compilation delays, instant feedback, and a rich ecosystem of packages. Java felt cumbersome by comparison, particularly for building interactive interfaces beyond AWT and JSP.

I invested significant time in Python as well, but JavaScript — combining browser-based vanilla JS with Node.js for backend work — captivated me most. This sparked my interest in full-stack development.

My JavaScript experience included:

  • AngularJS for demonstrating Dijkstra's Algorithm
  • Vue for building interactive teaching tools with mind maps and presentations
  • React for personal projects, introducing me to functional programming concepts
  • Node.js for server-side development and Docker containerization, deepening my understanding of async patterns

Take a break, and explore distributed systems

Node.js bridged my return to backend engineering. Its event loop model fascinated me, but during my Carnegie Mellon University studies, I encountered limitations. While achieving baseline performance proved straightforward, optimization required different approaches.

In a competitive Cloud Computing course building Twitter-like distributed systems, graded on server performance (READ QPS), I discovered three challenges:

  1. Apache HBase support in Node.js lacked optimization compared to MySQL clients
  2. Scaling beyond single-threaded performance to utilize multiple CPU cores complicated state management
  3. Without TypeScript's type safety — uncommon at that time — team collaboration and rapid debugging suffered

Within two weeks of intense competition, pivoting to Vert.x proved advantageous. Its extensive database support, performance capabilities, and strong typing resolved these issues, earning me an A. Post-graduation at LinkedIn, I've tackled various backend and distributed systems challenges.

Resume - serverless and more

The generative AI surge reignited my JavaScript interest. Building a podcast analysis platform — generating transcripts, summaries, and breakdowns — demanded rapid, visible development across both frontend and backend. JavaScript became the natural choice.

Modern frameworks transformed possibilities: Next.js and NestJS are now default choices for web development. Platforms like Vercel, Cloudflare Workers, and fly.io enable convenient, powerful, and economical serverless deployments with JavaScript as a first-class option.

As stated, "Any application that can be written in JavaScript, will eventually be written in JavaScript." Despite excellent alternatives like Go and Rust, JavaScript's vibrant ecosystem endures.


This piece was inspired by Simon Willison's "What to blog about"