<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SJ.Wu</title><link>https://sj-wu.com/</link><description>Recent content on SJ.Wu</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><copyright>© 2026 SJ.Wu</copyright><lastBuildDate>Sun, 07 Jun 2026 03:00:00 +0800</lastBuildDate><atom:link href="https://sj-wu.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Avatar, OG Image, and Favicon in Blowfish: Three Things, Three Params</title><link>https://sj-wu.com/posts/blowfish-avatar-og-favicon/</link><pubDate>Sun, 07 Jun 2026 03:00:00 +0800</pubDate><guid>https://sj-wu.com/posts/blowfish-avatar-og-favicon/</guid><description>The profile avatar, the social-share OG image, and the browser favicon look like one &amp;lsquo;site picture&amp;rsquo; — but in Blowfish they are three independent settings in three different places. Here&amp;rsquo;s which param does what, why homepageImage is none of them, and how I generated an SJ favicon from one command.</description></item><item><title>Moving a GitHub Pages Site to a Custom Domain (Cloudflare Registrar)</title><link>https://sj-wu.com/posts/custom-domain-github-pages/</link><pubDate>Sun, 07 Jun 2026 02:00:00 +0800</pubDate><guid>https://sj-wu.com/posts/custom-domain-github-pages/</guid><description>Pointing a freshly registered apex domain at a GitHub Pages site, end to end: the repo changes, the Cloudflare DNS records, the one proxy setting that breaks HTTPS, and how to verify the cutover — plus domain verification to stop anyone hijacking the name.</description></item><item><title>Building This Site with AI in a Day: From Résumé and Notes to an Automated Deploy</title><link>https://sj-wu.com/posts/building-this-site-with-ai/</link><pubDate>Sun, 07 Jun 2026 01:00:00 +0800</pubDate><guid>https://sj-wu.com/posts/building-this-site-with-ai/</guid><description>Using Claude Code with Hugo + Blowfish + GitHub Actions to turn a PDF résumé and a pile of scattered tech notes into this bilingual, auto-deployed personal site — in a day. The workflow, the disclosure discipline, and the gotchas.</description></item><item><title>A Terminal Dev Environment Built for AI Collaboration: NeoVim + Yazi + tmux + LazyGit × Claude Code</title><link>https://sj-wu.com/posts/terminal-dev-environment/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://sj-wu.com/posts/terminal-dev-environment/</guid><description>Claude Code is a terminal-native AI coding tool. Wrapping it in tmux + NeoVim + Yazi + LazyGit gives an all-keyboard, all-terminal workflow where the human focuses on reviewing and gatekeeping what the AI produces — plus the gotchas I hit setting it up.</description></item><item><title>A Practical Guide to AI-Assisted Development: Agent.md + Skills</title><link>https://sj-wu.com/posts/ai-collaboration-guide/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://sj-wu.com/posts/ai-collaboration-guide/</guid><description>How to use Agent.md (CLAUDE.md / AGENTS.md) and Skills to make AI-assisted development more effective: core concepts, meta-prompts, skill-creator, and the differences between Claude Code and Codex.</description></item><item><title>KYC Liveness &amp; Deepfake Detection</title><link>https://sj-wu.com/projects/kyc-liveness-detection/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://sj-wu.com/projects/kyc-liveness-detection/</guid><description>A production computer-vision service that decides whether a face-verification submission is a real, live person or a spoof / deepfake.</description></item><item><title>Sharing Feign API Contracts via a Common Module in Spring Cloud</title><link>https://sj-wu.com/posts/feign-api-shared-module/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://sj-wu.com/posts/feign-api-shared-module/</guid><description>Put the Feign interface, VOs, and DTOs in one shared module: the server implements the interface as its controller, the consumer just injects and calls it — removing the legacy duplication where the interface and its client drift apart.</description></item><item><title>Backend Microservices Platform</title><link>https://sj-wu.com/projects/backend-microservices/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>https://sj-wu.com/projects/backend-microservices/</guid><description>Spring Cloud microservices for a customer-management and transaction platform — refactoring, performance, and engineering practices.</description></item><item><title>From Adoption to Integration: Automating Database Version Control with Liquibase</title><link>https://sj-wu.com/posts/liquibase-database-migration/</link><pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate><guid>https://sj-wu.com/posts/liquibase-database-migration/</guid><description>A write-up of my JCConf 2024 talk: how to automate database migration with Liquibase and integrate it seamlessly into a Spring Boot project, without sacrificing stability or security.</description></item><item><title>Notes from the 91 Speed-Coding Workshop</title><link>https://sj-wu.com/posts/speed-coding-workshop/</link><pubDate>Tue, 14 Nov 2023 00:00:00 +0000</pubDate><guid>https://sj-wu.com/posts/speed-coding-workshop/</guid><description>Toward &amp;lsquo;human-machine as one&amp;rsquo;: using the TDD rhythm, deliberate practice, and IDE/Vim mastery so that coding speed is no longer held back by physical operations.</description></item><item><title>Spring Boot for Beginners: My Study Notes</title><link>https://sj-wu.com/posts/spring-boot-notes/</link><pubDate>Sat, 24 Dec 2022 00:00:00 +0000</pubDate><guid>https://sj-wu.com/posts/spring-boot-notes/</guid><description>My notes from self-studying Spring Boot: IoC/DI, AOP, Spring MVC, RESTful APIs, request validation, Spring JDBC, the three-tier architecture, and unit testing with JUnit 5 and Mockito.</description></item><item><title>About</title><link>https://sj-wu.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sj-wu.com/about/</guid><description>&lt;p&gt;I&amp;rsquo;m a software engineer based in Taipei. My day-to-day is &lt;strong&gt;backend
microservices&lt;/strong&gt; — Spring Boot / Spring Cloud services, distributed transactions,
caching, observability, and CI/CD — and I&amp;rsquo;m currently building &lt;strong&gt;applied machine
learning / computer vision for identity verification&lt;/strong&gt;: face liveness and
deepfake detection running as a production service.&lt;/p&gt;
&lt;p&gt;Before backend I spent several years in &lt;strong&gt;SSD firmware&lt;/strong&gt; (FTL, garbage
collection, wear-leveling, power-loss recovery), which is where I got comfortable
reasoning about systems from the hardware up.&lt;/p&gt;</description></item></channel></rss>