Compile Zod (30x faster Zod validation)
Learn how to optimize Zod validation by 30x using aot compilation.
Gajus blog posts.
Learn how to optimize Zod validation by 30x using aot compilation.
Ablation lets you disable parts of a model one at a time to figure out what each part does. Once you know which components handle a specific capability, you can fine-tune just those parts instead of retraining the whole model.
Supply chain attacks are surging. If you use pnpm, three settings can significantly reduce your exposure.
Sentry's Babel component annotate plugin bloats SSR HTML with attributes that are only useful in the browser. Here's how to apply it client-side only using a custom Vite plugin.
Branches and worktrees isolate code, but not services. In the age of agentic development, that gap becomes a real problem. Here's how combining Git worktrees with OrbStack VMs gives every agent its own world.
How to use DataLoader to batch individual Redis GET calls into a single MGET roundtrip.
I rebuilt my entire blog without writing a single line of code. Here's how Claude Code, voice dictation, and autonomous agents made it happen.
A comprehensive test of all markdown edge cases and styling scenarios.
Summary of X's For You algorithm.
Lists is a better form of social categorization.
Run-through of how to train OpenAI models with a custom data sets, and a summary of what to expect in terms of accuracy, speed, and cost.
Designing a dictionary of visually unambiguous characters for IDs.
Setting up PostgreSQL for tests is crucial for achieving performance and reliability. In this article, I'll explain how to set up PostgreSQL for tests and discuss some common pitfalls to avoid.
Discovering a new perspective on a familiar path. Unveiling the inherent flaws in a longstanding one-to-one design pattern and embracing a superior approach
Dangers of DISTINCT and implicit assumptions in SQL queries
Challenges adding OpenTelemetry and Sentry tracing to a Node.js app
Sparse notes on what makes great engineering teams
A playground for testing Rehype Pretty Code and styling code blocks.
In the world of Node.js development, the combination of Fastify, a high-performance web framework, and Slonik, a robust SQL query builder and executor, offers an enticing proposition.
A comprehensive guide to integrating Slonik, a battle-tested SQL query building and execution library, with Express.js for Node.js applications.
How to use GPT-4 to automate large code refactors, transforming 83 files with a React component export pattern change, including gotchas and lessons learned.
My learnings from tracking down dead code in a frontend application.
A journey of debugging mysterious traffic spikes coming from Boardman, OR.
Using jsonb to process and insert large and complex datasets into the database in a single query.
Discover how using jsonb_to_recordset instead of unnest can dramatically reduce database query load when inserting large datasets with nested data structures in PostgreSQL.
Load balancing application between read-write and read-only PostgreSQL instances using query routing.
Learn how to build a program that parses user search queries and converts them into SQL statements, supporting field-specific searches, exclusions, range queries, and boolean operators.
A walkthrough of common patterns of writing SQL queries in JavaScript with the help of Slonik.
Exploring a simpler approach to imports in Node.js by using fully qualified names from a single entry point, eliminating the need to remember complex file paths.
Using OpenAI's text-davinci-002 model to rewrite tests from one framework to another.
Learn how to use GPT-3 to automatically migrate 400+ Cypress tests to Playwright, saving massive amounts of manual work by leveraging AI for code transformation.
Learn how to use Zod and Slonik to add runtime validation to PostgreSQL queries while inferring static types, preventing database drift issues and catching schema mismatches before they cause problems.
Learn how to create atomic commits that make code reviews easier, enable safe reverts, and demonstrate good engineering practices through proper interactive staging and thoughtful git workflow.
Understanding the difference between CTO and Head of Engineering roles at a growing startup, including when to split these responsibilities and how they complement each other.
As the world becomes "virtual first", businesses need to step up their company culture game beyond motivational posters in the office. Learn the 5 pillars of success for maintaining vibrant remote team culture.
A story of shameless persistence to inspire those who are seeking their first job in IT.
Learn why .gitignore should be a whitelist, not a blacklist, and how to properly configure it to avoid common mistakes.
How to get feedback from early product adopters
Tips for when the novelty of remote working wears off
What I learned from OnDeck & why you should join it too
Tips based on experience evaluating hundreds of remote work job applications daily.
A practical guide to running effective daily standups using Slack, focusing on meaningful communication rather than just ticket IDs
A video chat roulette for distributed teams as a way to stay in touch with each other when working from home
Unsafe use of md5 hashes
How to test database interactions without a database using Slonik
How to use domains and Roarr to associate context with asynchronous call chains
I had requirement to evaluate remote JavaScript using Headless Chrome, but requests had to be routed through an internal proxy and different proxies had to be used for different URLs.
I am traveling and working remotely on my startup from Japan. As I travel, I keep making notes of things that surprise me that I share with my friends and family. In no particular order, below is a summary of 20 oddities.
One of the most popular support questions I answer is a variation of "how to terminate a HTTP server" or "why does HTTP server not stop after calling server.close()".
We can all agree that IDs should be unambiguous, i.e. if I told you to fetch a resource "1", I expect to get the same resource every time. I also expect that I can store a reference to that same resource by storing this ID and use that reference to fetch the same resource at a later date.