• BBS 21: jj - It's Not All Sunshine and Roses
    Nov 20 2025

    Key Moments

    Onboarding & docs are weak: They highlight that JJ’s official website has limited documentation, there’s no clear “I’m a Git user, how do I switch?” guide, and the flexibility of many possible workflows can be overwhelming for newcomers.

    Tutorials that stop halfway: Wojciech describes learning JJ via Steve Klabnik’s tutorial (great for basics and GitHub PRs), but notes it stops at a “to be continued” point and doesn’t cover advanced workflows like stacked PRs or mega merges.

    Rebase is harder to discover: Wojciech explains that he frequently has to look up how to “rebase” his feature branches in JJ, because the commands are less obvious than in Git and official docs feel more like technical references than user tutorials.

    AI help is hit-and-miss: They mention that asking AI tools about JJ used to produce outdated or incorrect commands; it’s improved, but still tends to lag behind JJ’s latest versions.

    Powerful primitives, missing batteries-included UX: JJ gives very low-level, powerful tools (like refsets and named bookmarks), but many higher-level conveniences are missing, forcing users to copy snippets from Discord or write custom commands (like tug to move bookmarks).

    Refsets are strong but complex: Refsets are described as a powerful language for describing revision sets, but way too advanced for beginners; newcomers shouldn’t be forced to learn them in their first months just to get common workflows.

    Bookmark and branch friction: Because named bookmarks in JJ effectively stand in for Git branches, users must manually move and update them, which can feel as clumsy as moving tags in Git unless you script it yourself.

    Tagging still done in Git: Wojciech shares that for release tagging he still drops down to raw Git commands, since he doesn’t have a smooth JJ-based tagging workflow.

    GitHub & divergent commits: A big pain point is that when pushing/pulling from GitHub, commits may get different IDs, resulting in “divergent changes” that JJ can’t automatically reconcile, so users must manually pick which ones to keep.

    Ecosystem still catching up: They mention tools like Tangled and an unreleased JJ-focused hosting platform being built by core maintainers, hoping it will be for JJ what GitHub was for Git.

    Performance & features on large repos: From community feedback, they note JJ can be slower on very large repos due to tracking every file change, and features like workspaces aren’t supported yet.

    Interactive rebase vs JJ workflows: Some users miss Git’s powerful interactive rebase that can reshuffle many commits at once; in JJ similar effects often require more manual work or complex refsets, though many gaps already have open issues and planned improvements.

    Real-world experience is still positive: Despite the rough edges, both hosts say working with GitHub is still nicer through JJ than pure Git, especially when checking out others’ branches and avoiding git stash/cleanup chores.

    Maturity and trade-offs: They frame JJ’s current state as “growing pains” of a young tool (v0.33), with drawbacks that are small compared to the benefits for their everyday work.

    Closing encouragement: They stress they’ve been JJ-only for months, recommend listeners give it a try alongside Git, and suggest re-listening to the previous positive episode or watching their Brain Picks YouTube video for a more enthusiastic, hands-on view.

    👋 Visit us on https://brainsandbeards.com/

    Show More Show Less
    27 mins
  • BBS 20: Why we stopped using git
    Nov 14 2025

    https://brainsandbeards.com/

    Our video about JJ: https://www.youtube.com/watch?v=J2f3Pj58wTg

    Key Moments:

    Introducing JJ (Jujutsu): The hosts explain what JJ is, where it came from, and how it works as a Git-compatible version control tool.

    Why JJ works alongside Git: They highlight that JJ can be used on top of existing Git repositories, allowing silent adoption without requiring team-wide changes.

    Undo/redo & operation log: A major selling point — JJ’s intuitive ability to undo any action and track every change, unlike Git’s cryptic reflog.

    Working with changes, not commits: JJ’s model fits developers’ real workflow better, allowing editing of earlier changes, easy restructuring, and meaningful commit histories.

    Goodbye git stash: JJ removes the need for stashing or temporary commits when switching context, making branch changes effortless.

    MegaMerge capability: JJ allows temporary merging of multiple branches for testing without permanent commits — something Git can’t replicate cleanly.

    Improved review workflow: JJ makes checking out others’ branches and cleaning up afterward much easier compared to Git’s messy local branch management.

    Tools & ecosystem: Terminal UIs, graphical interfaces, and merge tools already support JJ, making it beginner-friendly.

    Path to wider adoption: Discussion about the future potential of a “JJ hub” that works natively with change IDs.

    Closing reflections: Both hosts emphasize that switching to JJ was easier and more valuable than expected — enough to inspire them to restart the podcast.

    👋 Visit us on https://brainsandbeards.com/

    Show More Show Less
    40 mins
  • BBS 19: Documentation in Software Projects
    Dec 15 2023

    https://brainsandbeards.com/

    Key Moments:

    • Documentation comes in different forms like code comments, README files, external documentation in Confluence, and architectural decision records (ADRs).
    • Code comments can become outdated over time as the code changes, so it's better to rely on clear naming, TypeScript types, and unit tests to document code.
    • README files should focus on project-specific setup instructions rather than general language/framework documentation, and link to external docs when possible.
    • External documentation is better suited for business context, team decisions, and diagrams that involve multiple teams. It's easier for others to contribute to compared to code docs.
    • Using a shared terminology ("domain language") is important for communication between teams working on the same codebase or product. This vocabulary should be documented.
    • ADRs are useful for documenting past architecture and design decisions in case they need to be revisited. They improve decision making and prevent rehashing the same discussions.
    • Writing documentation forces one to better understand a topic. Developers should practice writing to improve their communication and learning.
    • Tests can double as a form of documentation, like regular expressions explained through example test cases.
    • Commit messages should be concise and avoid too many changes in one commit to allow for informative messages.
    • TypeScript's "expect error" is better than "ignore" for documenting expected errors in code.

    👋 Visit us on https://brainsandbeards.com/ 

    Show More Show Less
    36 mins
  • BBS 18: Working with mobile teams
    Nov 27 2023

    https://brainsandbeards.com/

    Key Moments:

    • Mobile development teams have responsibilities beyond just writing code, such as providing guidance on design, UX, platform best practices, and APIs.
    • Mobile developers should proactively communicate with other teams like design, product, and backend to ensure mobile needs are met.
    • Designers may not be aware of mobile constraints, so developers should point out issues and suggest better solutions.
    • Developers add value by understanding business needs and constraints around payments, analytics, and security rules.
    • Developers should help educate other teams on the latest mobile changes to avoid outdated approaches.
    • APIs need to consider mobile use cases around battery life and offline usage.
    • Versioning, deprecation, and error handling are especially important for mobile APIs.
    • Automating workflows can save significant time spent on manual tasks.
    • Mobile teams can build internal tools and services to streamline their work.
    • Change logs and release notes should have useful information for users, not just be technical.

    👋 Visit us on https://brainsandbeards.com/ 

    Show More Show Less
    42 mins
  • BBS 17: What's on My Desk?
    Oct 10 2023

    Find us on https://brainsandbeards.com/

    • The hosts discuss their daily work setups and what equipment they use, including standing desks, laptops, external monitors, headphones, microphones, and other accessories.
    • One host uses a standing desk to avoid sitting for long periods and stays engaged by walking while in meetings or working.
    • Their laptops of choice are MacBooks for iOS development. One also uses an iMac Pro but it has started freezing.
    • Other items mentioned include pens, a Rubik's cube for focusing, an external SSD for extra storage space due to limited internal storage, and a cloudlifter microphone amplifier to reduce noise.
    • A mechanical keyboard is used for programming tasks, with custom key mappings for shortcuts.
    • An external hard drive is used for video editing projects and backups due to large file sizes.
    • A multi-channel audio interface and microphone setup provides easy, high-quality and noise-free podcast recording.
    • A separate webcam is used for higher quality video calls compared to laptop cameras.
    • Photos and decorations on the desk provide smiles and breaks from work.
    • The hosts discuss focusing on technical development tips or sharing more of their work environments and setups in future episodes based on listener feedback.

    👋 Visit us on https://brainsandbeards.com/ 

    Show More Show Less
    31 mins
  • BBS 16: Maintainable React Native course
    Oct 3 2023

    You can find us on https://brainsandbeards.com/

    You can find our course on https://brainsandbeards.com/mrn

    Key Moments

    • The podcast discusses a new online course called "Maintainable React Native" which teaches developers how to build maintainable architecture for mobile apps through practical examples and techniques delivered via weekly emails.
    • The course covers major topics like handling remote data, state management, design systems, and mobile DevOps from the perspective of ensuring long*term productivity and software maintainability.
    • The course is aimed at experienced React Native developers but does not require expertise in specific tools or libraries.
    • Symptoms that the course may benefit a developer or team include productivity declining as codebase grows, difficulty understanding data flow, and lack of architectural vocabulary.
    • Completing the course will teach developers how to structure codebases that can be modified without slowing down, avoid unnecessary complexity, and explain architecture clearly.
    • The instructors have extensive experience with over 20 React Native projects and have seen how codebases and teams evolve, providing valuable lessons.
    • The course considers both technical and non*technical aspects like communication, project structure, and handling changing requirements.
    • For now, the course is free to join and provide feedback to help shape its content as it is still in development.
    • The instructors have experience not just with frontend development but also backend development, providing a full-stack perspective.
    • While the technical content is a focus, architectural decisions also require considering flexibility, trade-offs, and how choices may limit future options.

    👋 Visit us on https://brainsandbeards.com/ 

    Show More Show Less
    20 mins
  • BBS 15 - Juggling JS Bundles
    Sep 25 2023

    You can find us on https://brainsandbeards.com/

    Key Moments:

    • React Native allows separating native app skeletons from JavaScript business logic bundles, providing opportunities for faster updates without app store reviews.
    •  Code pushing allows remotely delivering JavaScript bundle updates to users without app store reviews.
    • Bundles can be replaced on the fly to test features before merging code.
    • Developers can validate work locally before merging to avoid broken builds.
    • Multiple bundles can be hosted for different teams to test features independently.
    • Bundles are detected and restricted to avoid crashes from incompatible native changes.
    • Build times increase significantly with large apps, slowing down testing.
    • Automation saves developer frustration from manual tasks and support burdens.
    • Infrastructure costs for hosting bundles can be reduced by building custom solutions.
    • Remote bundle loading allows selecting different bundles from an in-app menu for testing.

    👋 Visit us on https://brainsandbeards.com/ 

    Show More Show Less
    28 mins
  • BBS 14: What's new on Internet
    Aug 28 2023

    Wojciech and Patryk are talking about recent quirks of the Internet. In this episode, we focused mostly on the infosec news, as there were plenty of disturbing discoveries in this space.

    Links from the show:

    • https://downfall.page/
    • https://www.righto.com/2013/09/intel-x86-documentation-has-more-pages.html
    • https://robins.one/notes/uninstall-the-nightowl-app-now.html
    • Stealing Keystrokes Through Sound - https://www.youtube.com/watch?v=-gDrgj7AOQg
    • Most promoted and blocked domains among Kagi Search user - https://kagi.com/stats

    👋 Visit us on https://brainsandbeards.com/ 

    Show More Show Less
    29 mins