# Sean Behan > Sean Behan — full-stack developer working in Rust, TypeScript and NixOS. Writing about Linux, Cloudflare Workers, and building software. https://seanbehan.ca is the writing — posts, pages and the résumé of Sean Behan. https://codebam.ca is the work — open-source projects, products and services. One repository, one database, two front doors: each origin answers requests for the other's sections with a 301 to the canonical URL, so follow redirects rather than guessing which door serves what. How to fetch this site: - Every post and CMS page answers in three forms of one stored source: the HTML page, a markdown document, and JSON. Append `.md` or `.json` to the page's URL, or request it with `Accept: text/markdown` or `Accept: application/json`. HTML stays the answer for browsers, for `*/*`, and for any client that does not name a format — there is no user-agent sniffing to trip over. - The markdown forms open with a metadata header (canonical URL, author, published and updated dates, tags, reading time) and carry the body with fenced code and absolute image URLs. The JSON forms hold the same facts as fields, the markdown body in `content`, and the page's heading anchors in `sections`. - HTML pages advertise their alternates with `` and this file with ``. - The RSS feed carries the full text of recent posts in `content:encoded`, which answers questions about the corpus in one request rather than ten. - Unpublished drafts appear in no list, feed or file here; a draft's URL still renders if you already hold it, marked noindex. ## Writing - [All posts](https://seanbehan.ca/posts): the archive, newest first, with the title search over it. - [Post feed](https://seanbehan.ca/rss.xml): recent posts with full text, HTML. - [Tags](https://seanbehan.ca/posts/tags): the topic index with counts; each tag has its own feed under https://seanbehan.ca/posts/tag/. - [Search](https://seanbehan.ca/search.json): ranked slugs for a query in `?q=`; words are matched over titles, descriptions, tags and bodies. - [Résumé](https://seanbehan.ca/resume.md): the CV in its source markdown — the same file the HTML page and the PDF are generated from. The PDF is https://seanbehan.ca/resume.pdf. ## Work - [Projects](https://codebam.ca/projects): case studies of the software that runs, with what each one had to survive. - [Products](https://codebam.ca/products): paid work, with prices. - [Services](https://codebam.ca/services): what kind of engagements are taken on. - [Contact](https://seanbehan.ca/contact): the forms and the address. ## Recent writing - [How I survived a DDoS Flood](https://seanbehan.ca/posts/how-i-survived-a-ddos-flood.md): 2026-08-28. Tagged cloudflare, emdash, networking. - [EmDash and Cloudflare Workers](https://seanbehan.ca/posts/emdash-and-cloudflare-workers.md): 2026-08-24. Tagged cloudflare, emdash. - [USB Cable Testing on Linux](https://seanbehan.ca/posts/usb-cable-testing.md): 2026-04-15. Tagged linux, test, usb, wireshark. - [Secure Boot NixOS UKI Installer](https://seanbehan.ca/posts/nixos-uki.md): 2025-07-06. Tagged nixos, secure-boot, steam-deck. - [Podman Quadlets](https://seanbehan.ca/posts/quadlets.md): 2025-03-28. Tagged containers, linux, podman, quadlet, systemd. - [Email bot](https://seanbehan.ca/posts/email-bot.md): 2024-12-04. Tagged cloudflare, serverless, typescript. - [NixOS Flakes](https://seanbehan.ca/posts/nixos.md): 2024-06-01. Tagged nixos. - [Cloudflare Workers Telegram Bot](https://seanbehan.ca/posts/cf-workers-telegram-bot.md): 2024-05-15. Tagged cloudflare, typescript. - [Search bar in Sveltekit](https://seanbehan.ca/posts/svelte-search.md): 2023-12-06. Tagged cloudflare, javascript, serverless, svelte, sveltekit, typescript. - [Auth and Databases in Sveltekit](https://seanbehan.ca/posts/svelte-auth.md): 2023-11-12. Tagged cloudflare, javascript, serverless, svelte, sveltekit, typescript. ## Optional - [Sitemap for this origin](https://seanbehan.ca/sitemap.xml): every indexable URL it serves. - [Sitemap for the other origin](https://codebam.ca/sitemap.xml): the same, across. - [robots.txt](https://seanbehan.ca/robots.txt): crawl rules — everything is open apart from the admin, and the few scrapers that take without giving back.