Uploaded February 2026 | Updated September 2026, 2 weeks ago
What if you never had to commit, stash, or deal with Git's staging area again?
After 6 months of using Jujutsu (jj) full-time, Matias Pan, senior software engineer, shares why he completely replaced Git for all his projects. The killer feature? Every change is automatically tracked:
- no more "temp commit"
- no more stashing when switching tasks
- no more losing work in the index
Git worktrees were supposed to solve the "multiple features in progress" problem, but they come with overhead: separate folders, deciding upfront if something is "long-running", and managing tmux sessions per worktree. Jujutsu takes a different approach - you work on groups of changes (revisions) that you can freely move around, rebase, and switch between.
What you'll learn:
- Why the Git staging area creates friction when context-switching
- How jj's "everything is auto-committed" model eliminates an entire class of problems
- Rebasing changes without checking them out first
- Conflicts that don't block your workflow
- Powerful aliases: jj work, jj catchup, jj old, jj fresh
- Bookmarks vs branches (spoiler: they're the same thing, different name)
- When you actually need jj workspaces (hint: probably never)
The best part? Jujutsu works alongside Git. Run jj init --colocate in any Git repo and start using it immediately. Your teammates don't need to change anything.
Links mentioned:
- Jujutsu: https://www.jj-vcs.dev/latest/
- Steve Klabnik's Jujutsu Tutorial: steveklabnik.github.io/jujutsu-tutorial
- jj init by Chris Krycho: v5.chriskrycho.com/essays/jj-init
- jj Tip: Rebase All Branches Matching a Revset by Chris Krycho: v5.chriskrycho.com/notes/jj-tip-rebase-all-branches-matching-a-revset
- Jujutsu Megamerges and jj absorb by Chris Krycho: v5.chriskrycho.com/journal/jujutsu-megamerges-and-jj-absorb
If you enjoyed this and want to explore more:
- Become a member at πΊ makeitwork.tv for the full length content & no ads
- Tune into π§ https://makeitwork.fm for the podcast
- Let's pair-up on something together π¨βπ» makeitwork.club (share real workflows, tools, and hard-won lessons from production systems)
0:00 Intro
1:45 Long vs. short features
4:04 Project terminals & git worktrees
6:59 My Jujutsu Way
13:09 Conflicts in Jujutsu
15:58 Long-running feature branches
18:09 Seeing all my active work
19:24 Jujutsu aliases
25:04 Sharing changes
29:49 Jujutsu resources
34:02 Takeaways
38:21 One more thing...
What if you never had to commit, stash, or deal with Git's staging area again?
After 6 months of using Jujutsu (jj) full-time, Matias Pan, senior software engineer, shares why he completely replaced Git for all his projects. The killer feature? Every change is automatically tracked:
- no more "temp commit"
- no more stashing when switching tasks
- no more losing work in the index
Git worktrees were supposed to solve the "multiple features in progress" problem, but they come with overhead: separate folders, deciding upfront if something is "long-running", and managing tmux sessions per worktree. Jujutsu takes a different approach - you work on groups of changes (revisions) that you can freely move around, rebase, and switch between.
What you'll learn:
- Why the Git staging area creates friction when context-switching
- How jj's "everything is auto-committed" model eliminates an entire class of problems
- Rebasing changes without checking them out first
- Conflicts that don't block your workflow
- Powerful aliases: jj work, jj catchup, jj old, jj fresh
- Bookmarks vs branches (spoiler: they're the same thing, different name)
- When you actually need jj workspaces (hint: probably never)
The best part? Jujutsu works alongside Git. Run jj init --colocate in any Git repo and start using it immediately. Your teammates don't need to change anything.
Links mentioned:
- Jujutsu: https://www.jj-vcs.dev/latest/
- Steve Klabnik's Jujutsu Tutorial: steveklabnik.github.io/jujutsu-tutorial
- jj init by Chris Krycho: v5.chriskrycho.com/essays/jj-init
- jj Tip: Rebase All Branches Matching a Revset by Chris Krycho: v5.chriskrycho.com/notes/jj-tip-rebase-all-branches-matching-a-revset
- Jujutsu Megamerges and jj absorb by Chris Krycho: v5.chriskrycho.com/journal/jujutsu-megamerges-and-jj-absorb
If you enjoyed this and want to explore more:
- Become a member at πΊ makeitwork.tv for the full length content & no ads
- Tune into π§ https://makeitwork.fm for the podcast
- Let's pair-up on something together π¨βπ» makeitwork.club (share real workflows, tools, and hard-won lessons from production systems)
0:00 Intro
1:45 Long vs. short features
4:04 Project terminals & git worktrees
6:59 My Jujutsu Way
13:09 Conflicts in Jujutsu
15:58 Long-running feature branches
18:09 Seeing all my active work
19:24 Jujutsu aliases
25:04 Sharing changes
29:49 Jujutsu resources
34:02 Takeaways
38:21 One more thing...





![CDN PURGE with Elixir
https://makeitwork.tv π full version shipping any week now
We implement the following one-liner bash script the Elixir Wayβ’:
dig cdn-2025-02-25.internal AAAA +short | while read ipv6; do curl -so /dev/null -w %{http_code} %{method} %{url_effective}n -X PURGE http://[$ipv6]:9000/; done
Find the code and the conversation in this pull request π https://github.com/thechangelog/changelog.com/pull/549
π€ THE PROBLEM: CDN is serving stale content, with some entries expired for over 4 minutes. We need a way to explicitly purge cache across all CDN instances rather than waiting for user requests to trigger refreshes.
πββοΈ THE SOLUTION: DNS lookups to discover all instances and coordinate purges across them.
π§βπ§ THE DNS THING (02:26): Using Fly.ios internal DNS system, we implement IPv6 lookups to discover all CDN instances. Claude Code helps. It works the first time π
π BUGS & PREDATORS (3:00): Undefined function errors, mock testing issues, and the classic double-slash URL bug. No Claude Code, just experience.
π§ DID IT WORK? (6:56): Lets force push straight into production and see what happens π±
This session isnt just a tutorial - its an authentic look at collaborative coding, where DNS magic meets Elixir elegance to conquer distributed caching.
If youre into DevOps, CDNs, or just love seeing bugs squashed in real time, this gives you the tools to understand (and maybe implement) your own purge system.
00:00 The Problem
00:46 The Solution
02:26 The DNS thing
03:00 Bugs & Predators
04:43 Lets fire this up
06:56 Lets force push it
07:25 Is it working?
08:53 No no no CDN PURGE with Elixir](https://i.ytimg.com/vi/fhQd9XaZTr8/mqdefault.jpg)




