Engineering

Technical deep dives from building a platform that processes 1M+ job listings daily.

CV document connected to job listings through AI neural network matching
Featured

Building an AI Job Matching Engine: From CV Upload to Ranked Results in Under a Second

Upload a CV, get matched to 1M+ positions with explanations. How we built the scoring engine and why weights matter more than the model.

Feb 9, 2026 3 min read
Diagram showing the flow of data from CV to parsed information using LLMs.
llm · cv parsing

Building a CV Parser with LLMs: Lessons from Production

Learn how MisuJob built a production-ready CV parser using LLMs to extract insights from resumes & power AI job matching. Discover lessons learned & best practices.

Mar 5, 2026 8 min
Trend chart with tech skill lines showing job market patterns
Career · Tech Industry

Patterns We See Across 1,000,000 Tech Job Listings (DACH Region, Early 2026)

Real patterns from 1M+ active tech listings: Python dominance, remote stabilization, AI/ML explosion, and what it means for job seekers.

Mar 4, 2026 2 min
Application health dashboard with heartbeat pulse and system gauges
Node.js · Monitoring

Building a Production Health Monitor in Node.js (Without Datadog or New Relic)

Datadog costs $15/host/month. We built a health monitoring system with daily reports for $0. Here's how.

Mar 1, 2026 2 min
Data pipeline filtering garbage input into clean validated output
Backend · Data Engineering

Never Trust External Data: A Collection of Garbage We've Found in Production

A museum of garbage data from 50+ job sources and the defensive coding patterns that save us daily.

Feb 27, 2026 2 min
AI crawler bots approaching a website with robots.txt access control
SEO · Artificial Intelligence

The Complete robots.txt for 2026: Every AI Crawler You Should Know About

Most websites accidentally block AI crawlers. Here's the definitive list of AI bot user agents and how to configure robots.txt.

Feb 25, 2026 2 min
Multiple Node.js processes managed by process manager with health indicators
Node.js · DevOps

PM2 in Production: The Lessons Nobody Tells You

Six months running PM2 in production with 1M+ listings and 7 queue workers. Here are the gotchas that bit us.

Feb 23, 2026 2 min
Email envelope with SPF, DKIM, and DMARC authentication checkmarks
AWS · Email

AWS SES Setup Guide for Startups: Domain Verification, DKIM, SPF, DMARC in 30 Minutes

The exact steps to go from zero to sending verified emails with AWS SES and proper authentication in 30 minutes.

Feb 21, 2026 2 min
Job listing with structured data tags being read by search engine
SEO · Google

Getting Into Google for Jobs: A Developer's Guide to JobPosting Schema

Exactly what you need for valid JobPosting structured data -- from a developer with 19,700+ pages indexed.

Feb 19, 2026 2 min
Database table with highlighted subset of rows having a partial index
PostgreSQL · Database

PostgreSQL Partial Indexes: The Feature You're Not Using Enough

We have 55 indexes on a 1M row table. Partial indexes keep writes fast while giving us instant reads.

Feb 16, 2026 2 min
CDN edge node routing requests as reverse proxy to origin server
Cloudflare · Serverless

Using Cloudflare Pages Functions as a Reverse Proxy for SSR (Free Tier)

Cloudflare Pages redirects can't proxy externally. Pages Functions can. Here's how we serve SSR pages for free.

Feb 14, 2026 2 min
Secure vault with key contrasted with crossed-out env file
Security · DevOps

Stop Putting Secrets in .env Files: A Practical Guide to GCP Secret Manager

How we switched from .env files to GCP Secret Manager in 15 minutes and why it's worth it for every project.

Feb 12, 2026 2 min
Hard drive nearly full with large core dump files stacking up
Node.js · DevOps

Our Node.js Server Ate 11.5 GB of Disk Space While We Slept

18 core dump files at 2.5 GB each filled our 30 GB disk overnight. Here's the 30-second fix.

Feb 7, 2026 2 min
Caching pattern with instant stale response and background refresh
Caching · Node.js

Stale-While-Revalidate: The Caching Pattern That Eliminated Our 18-Second Load Times

Every request returns in under 50ms with stale-while-revalidate -- even when the cache is expired.

Feb 5, 2026 2 min
Multiple duplicate documents merging into a single unique document
Algorithms · Database

The Unsolved Problem: Deduplicating Job Listings at Scale

The same job appears 10+ times across sources. Our multi-layer approach catches 95% of duplicates -- and why 100% is impossible.

Feb 2, 2026 2 min
Solo developer juggling multiple infrastructure components
Startup · DevOps

Running a 1M-Listing Job Platform Without a DevOps Team: A Solo Dev's Infrastructure

One VM, one database, and a lot of Cloudflare free tier -- our entire production stack for 1M+ listings.

Jan 31, 2026 3 min
Magnifying glass scanning pages with checkmarks for indexed content
SEO · Google

Google Indexing API: How to Get 1M Pages Indexed (and Why 200/Day Isn't Enough)

With 433K pending URLs and a 200/day quota, we'd need 6 years. Here's how we architected around this limit.

Jan 29, 2026 3 min
Server sending rendered HTML page to browser window
SEO · Node.js

Server-Side Rendering 175 Category Pages with Express.js (No React, No Next.js)

How we built 175+ SEO-optimized category pages with raw Express.js and template literals -- zero client-side JS.

Jan 26, 2026 2 min
Database materialized view with cached snapshot and refresh arrow
PostgreSQL · Database

Materialized Views in Production: The CONCURRENTLY Keyword That Saved Us

Our materialized view blocked all reads for 3 minutes during refresh. One keyword fixed it completely.

Jan 24, 2026 2 min
Database pagination comparison showing slow OFFSET scan versus fast keyset jump
PostgreSQL · Database

Stop Using OFFSET in PostgreSQL. Here's the Alternative That's 100x Faster.

OFFSET 50000 takes 30 seconds on a 1M row table. Keyset pagination takes 5ms. Here's why and how to switch.

Jan 22, 2026 2 min
Three isolated queue lanes with independent task flows versus one congested lane
Node.js · Redis

Why Your Bull Queue Needs Isolation: A Production Horror Story

How 1,275 bulk tasks blocked all high-priority jobs for 18 hours and why queue isolation is non-negotiable.

Jan 19, 2026 2 min
Speedometer showing database performance from 30 seconds to 50 milliseconds
PostgreSQL · Database

From 30 Seconds to 50ms: Scaling PostgreSQL for One Million Job Listings

How we made a single PostgreSQL instance handle 1M+ rows, 55 indexes, real-time matching, and 10K daily writes.

Jan 17, 2026 8 min
Data pipeline funnel processing job listings through multiple stages
Node.js · Web Development

How We Process 1M+ Job Listings from 50+ ATS Platforms (Node.js)

Real-world battle scars from building a system that ingests 1M+ job listings from 50+ ATS platforms.

Jan 15, 2026 7 min

Engineering updates

Technical deep dives and lessons from production. No spam.

User

Dashboard Profile Subscription