Nathaniel's blog
All tags

#Node.js

27 posts tagged with “Node.js

Turborepo: Scaling Your TypeScript Monorepo
TypeScriptDevOpsNext.js

Turborepo: Scaling Your TypeScript Monorepo

As your project grows from one app to multiple apps sharing packages, a monorepo becomes the natural architecture. Turborepo makes monorepos fast and manageable by orchestrating builds, caching result...

Mar 2, 20267 min read4
CI/CD Pipelines with GitHub Actions
DevOpsTypeScriptNode.js

CI/CD Pipelines with GitHub Actions

Continuous Integration and Continuous Deployment (CI/CD) automates the journey from code push to production. GitHub Actions makes this accessible with YAMLbased workflows that run on every commit, PR,...

Feb 24, 20267 min read2
Relay vs Apollo: Choosing a GraphQL Client
GraphQLReactNode.js

Relay vs Apollo: Choosing a GraphQL Client

Both Relay and Apollo are productiongrade GraphQL clients for React. But they have fundamentally different philosophies. After using both extensively, here's how they compare. Philosophy Apollo is fle...

Feb 21, 20267 min read6
Docker and Kubernetes for Frontend Developers
DevOpsTypeScriptNext.js

Docker and Kubernetes for Frontend Developers

If you're a frontend developer who's never touched Docker, you're not alone. But as fullstack development blurs the lines, understanding containers is becoming essential — not just for deployment, but...

Jan 31, 20268 min read0
GraphQL Schema Design Best Practices
GraphQLTypeScriptNode.js

GraphQL Schema Design Best Practices

A welldesigned GraphQL schema is the foundation of a maintainable API. Unlike REST, where endpoints evolve independently, your schema is a contract — every type, field, and argument is part of a publi...

Jan 28, 20267 min read1
Building Type-Safe APIs with TypeScript and Zod
TypeScriptGraphQLNode.js

Building Type-Safe APIs with TypeScript and Zod

Runtime type checking has always been a pain point in TypeScript projects. You write beautiful interfaces, but the moment data crosses a boundary — an API request, a database row, a JSON file — all be...

Jan 19, 20268 min read0
Building a transparent LLM proxy with Cloudflare Workers and Hono
TypeScriptDevOpsLLM

Building a transparent LLM proxy with Cloudflare Workers and Hono

The core idea behind an LLM inference gateway is deceptively simple: intercept LLM API calls, forward them transparently, and capture data along the way. Implementing it cleanly took more thought than...

Jan 15, 20268 min read7
Six months with MCP: the good, the bad, the weird
TypeScriptDevOpsNode.js

Six months with MCP: the good, the bad, the weird

I've been building with Model Context Protocol since around early 2025, first integrating tools for an AI agent security platform, then building a multiMCP gateway. Here's where I actually stand after...

Aug 10, 20258 min read2
Context management is the real challenge in LLM engineering
TypeScriptNode.jsLLM

Context management is the real challenge in LLM engineering

Everyone talks about prompts. The more I build on top of LLMs, the more I think context management is actually the harder and more important problem. What I mean by context management A language model...

Jan 20, 20257 min read2
Cutting LLM costs by 20%: what actually moved the needle
TypeScriptNode.jsLLM

Cutting LLM costs by 20%: what actually moved the needle

We were burning through LLM API budget faster than expected. After a few weeks of profiling and experiments, we got costs down by about 20%. Here's what actually worked versus what sounded good in the...

Jul 15, 20246 min read5
Kafka at 200k DAU: what breaks and how to fix it
TypeScriptDevOpsNode.js

Kafka at 200k DAU: what breaks and how to fix it

We hit about 200k daily active users on our platform at peak. Most of the stack held up fine. Kafka was where we learned the most. Here's what I wish I'd known before we got there. Partition count mat...

Feb 10, 20247 min read3
Writing my first Solidity contract: lessons from the trenches
TypeScriptReactNode.js

Writing my first Solidity contract: lessons from the trenches

Before I joined my current company, I had exactly zero production Solidity experience. I'd read the docs, deployed a toy contract on a testnet years ago, and that was it. Three months in, I've shipped...

Aug 20, 20237 min read4
Migrating from C# to TypeScript: mental model shifts
TypeScriptNode.js

Migrating from C# to TypeScript: mental model shifts

I've been writing C professionally for about a year now on the backend of some ad serving systems, while also writing TypeScript on the frontend. Switching between the two throughout the day is intere...

Sep 10, 20226 min read1
From Jobless to FAANG - My three year journey
TypeScriptReactGraphQL

From Jobless to FAANG - My three year journey

Disclaimer: this post is all about my personal experience, only representing my point of view, take it with a grain of salt. About three years ago, I was graduating from college with a CS degree. Drea...

Oct 16, 20214 min read203
How I make memes inside code
TypeScriptDevOpsNode.js

How I make memes inside code

Just another day, I was making memes on reddit, and writing code in the interval. It suddenly struck me, why can't I do both at the same time? Making memes inside code is totally possible, just make a...

Jul 31, 20214 min read270
Building a high concurrency student course selection system
TypeScriptReactGraphQL

Building a high concurrency student course selection system

Intro Remember those days when your school system suck so much that you can never pick the course you want? Well, those days are no more. After learning how to design a high concurrency student course...

Jul 24, 202110 min read256
Migrate to typescript - the advance guide
TypeScriptReactDevOps

Migrate to typescript - the advance guide

About a year ago I wrote a guide on how to migrate to typescript from javascript on node.js and it got more than 7k views. I did not have much knowledge on javascript nor typescript at the time and mi...

Dec 7, 202011 min read125
Let's talk about design patterns
TypeScriptReactDevOps

Let's talk about design patterns

What is a design pattern Design pattern is a method of solving specific problems through definition, use, and testing. It is a universal and reusable solution proposed for the repetitive problems in s...

Jul 8, 20202 min read19
Migrate to Typescript on Node.js
TypeScriptReactNode.js

Migrate to Typescript on Node.js

Recently I've migrated one of my personal projects from Javascript to Typescript. The reason for migrating will not be covered here, since it's more of a personal choice. This guide is for those who k...

Oct 3, 201910 min read23
Build a Javascript async function error handler
Node.js

Build a Javascript async function error handler

Background If you are a Js developer, you probably have used and , and you love them. No more callback hell or chains. Just like writing a synchronous program. Util you run into or You begin to wrap e...

Sep 12, 20192 min read10
Getting Started with Tensorflow.js
DevOpsNode.js

Getting Started with Tensorflow.js

Computer science is no more about computers than astronomy is about telescopes. Edsger Dijkstra In order to have easy way of Machine learning in Javascript, you need , this guide will help you setup w...

Sep 2, 20192 min read9
ES-Next dynamic import
TypeScriptNode.js

ES-Next dynamic import

Problem Recently when writing a project of mine, I've written some javascript like this: I'd really like some syntax like this: Turned out there's this called that goes like: and it's supported by all...

Aug 28, 20192 min read11
Basis of computer networks
TypeScriptGraphQLDevOps

Basis of computer networks

By learning computer networks, I've gather some most useful knowledge and put them here. What is a threeway handshake? The first handshake: Client sets SYN to 1, randomly generates an initial sequence...

Jul 8, 201927 min read2
JS asynchronous operation summary
Node.js

JS asynchronous operation summary

问题的起源 最近两天被这个异步给坑了好久,这里总结一下Javascript的异步操作。 一切都源于下面这样结构的一段代码: 你认为执行完res是什么?结果不是,也不是,而是,我也是服气了,后来才搞明白这就是所谓的 IO模型。就是说还没有执行完,就了,相当于开启了一个子进程去做的事情,使得二者并行进行了。然而JS是单线程的,因此就用了这种奇怪的异步的方式来进行。 所以我们要让它像同步代码的顺序一样执...

Jul 3, 20192 min read15
The new blog is officially online
Node.js

The new blog is officially online

全新Blog上线了,仔细回味,从最早的寄居在博客网站,到Hexo+Github Pages,再到现在的自己开发的CMS+全部高度Customized的,也算是"Came a long way"了吧。 说起来也算是惭愧,之前这么多些时间,写的博文也太少了点,好多还都是工具使用,什么随笔,就是乱写一气,没有多少技术,大佬看了要笑掉大牙的。 自己BottomUp写了这个博客,可谓让我十分满意了,各个细节...

May 12, 20191 min read12
All things Database
TypeScriptGraphQLDevOps

All things Database

What are the concepts and characteristics of transactions? Concept: Transaction is a sequence of operations, an indivisible unit of work, starting with BEGIN TRANSACTION and ending with ROLLBACK/COMMI...

Jul 8, 201823 min read4
Why write a blog
DevOpsNode.js

Why write a blog

Yeah,it's on 开端 一直想要一个自己搭建的Blog,今天下午,说干就干,花了23小时的时间,成功的把博客搭了起来,也算是了却了我长久以来的一个心愿。 我一直想要的是自己搭建的博客,而不是去Cnblogs,博客园等地方凑合凑合。 一方面,那些博客站广告和限制一样多,过时的Web设计,天朝特色的气息铺面而来(不好的那种),而自己搭建的Blog,没有广告,控制权在握,而且只要主题选的好,可以...

Apr 27, 20161 min read42