Tate Jennings
blog
Blog
All async-awaitclaude-codeconcurrencydeveloper-toolsgitiosswifttutorialworkflowxcode
  • Making Claude Code Work for iOS Development
    Making Claude Code Work for iOS Development
    A practical guide to setting up Claude Code for iOS projects — from protecting your .pbxproj to closing the build-and-run feedback loop with XcodeBuildMCP.
    iosclaude-codexcodeswift
  • Async/Await Pitfalls: 5 Patterns That Look Right But Aren't
    Async/Await Pitfalls: 5 Patterns That Look Right But Aren't
    Five common Swift async/await patterns that compile fine but silently cause performance issues, bugs, or crashes—and how to fix them.
    swiftconcurrencyasync-awaitios
  • Stop Stashing and Start Using Git Worktrees
    Stop Stashing and Start Using Git Worktrees
    A quick-start guide to git worktrees — check out multiple branches simultaneously without stashing or context switching.
    gitworkflowdeveloper-tools
  • Git for GUI Users: Actually Understanding What You're Doing
    Git for GUI Users: Actually Understanding What You're Doing
    A practical guide to Git commands for developers who've been clicking buttons in GUI tools. Learn what those buttons actually do.
    gitdeveloper-toolstutorial
  • Swift Async/Await Best Practices
    Swift Async/Await Best Practices
    A practical guide to writing clean, safe, and performant asynchronous Swift code — from structured concurrency to actors to the patterns that actually matter day-to-day.
    swiftiosconcurrency
© 2026 | Tate Jennings