// engineer · operator

Hi, I'm Xiujun Ma

I build things and write about the hard parts.

// latest entriesview all (48) →
Jun 28, 2026v2026.06

How to Serve a Next.js App on FreeBSD with Caddy

Install Caddy on FreeBSD and reverse-proxy a Next.js app with automatic HTTPS — no certbot, no manual renewals. A tested pkg, rc.conf, and Caddyfile guide.

freebsd · caddy · next.js · 6 min read
Feb 23, 2026v2026.02

Setting Up CrewAI for a Software Development Pipeline

I've been experimenting with multi-agent AI systems to automate parts of the software development workflow — not just "AI writes code," but a proper pipeline where specialized agents handle planning, coding, reviewing, and testing like a real dev team would. After trying a few frameworks, I settled on **CrewAI** as the fastest way to get a working software development pipeline up and running. Here's exactly how to set it up.

ai · 9 min read
// about

Software engineer with 20+ years shipping web applications — from early-stage products to enterprise systems. I care about performance, reliability, and code that holds up under pressure.

This site is where I document what I build, what I learn, and what actually works in production. No fluff, just the real stuff.

reactnext.jstypescriptnode.jsjavascriptjavakotlinfreebsdnginxseoweb performancetechnical writing
// projects
// get in touch

Open to interesting conversations about systems, AI infra, and building reliable software on unglamorous hardware.