454: Workshop design with Aji Slater
Episode
37 min
Read time
2 min
Topics
Health & Wellness, Relationships, Design & UX
AI-Generated Summary
Key Takeaways
- ✓Relational Access Control: Uses directed graph data structures where entities connect through relationships, enabling fine-grained permissions for individual items rather than broad role-based rules. Originated from Google's Zanzibar paper for managing complex cross-app permissions in social networks.
- ✓Workshop Pacing Reality: Workshops cover approximately one-third the content of equivalent talks due to participant typing speed, environment issues, and hands-on time. Plan save points via Git commits every 10-15 minutes so attendees can catch up without derailing the group.
- ✓Incremental Learning Structure: Design workshops with small feature-based loops where participants learn one concept, implement it to solve a practical problem, commit working code, then move forward. This creates dopamine wins while building knowledge progressively rather than teaching theory upfront.
- ✓Workshop Catch-Up Mechanics: Provide repository checkpoints at each exercise completion, enable offline text-file alternatives to avoid WiFi dependency, and assign teaching assistants for individualized help. This prevents single participants from blocking entire group progress when encountering local environment problems.
What It Covers
Aji Slater explains relational-based access control systems derived from Google's Zanzibar paper, contrasting them with role-based systems, then discusses workshop design principles including pacing strategies, hands-on learning approaches, and catch-up mechanics for participants.
Key Questions Answered
- •Relational Access Control: Uses directed graph data structures where entities connect through relationships, enabling fine-grained permissions for individual items rather than broad role-based rules. Originated from Google's Zanzibar paper for managing complex cross-app permissions in social networks.
- •Workshop Pacing Reality: Workshops cover approximately one-third the content of equivalent talks due to participant typing speed, environment issues, and hands-on time. Plan save points via Git commits every 10-15 minutes so attendees can catch up without derailing the group.
- •Incremental Learning Structure: Design workshops with small feature-based loops where participants learn one concept, implement it to solve a practical problem, commit working code, then move forward. This creates dopamine wins while building knowledge progressively rather than teaching theory upfront.
- •Workshop Catch-Up Mechanics: Provide repository checkpoints at each exercise completion, enable offline text-file alternatives to avoid WiFi dependency, and assign teaching assistants for individualized help. This prevents single participants from blocking entire group progress when encountering local environment problems.
Notable Moment
Chris Toomey's Git workshop fundamentally changed how Aji conceptualizes version control by teaching the underlying data model from the bottom up, demonstrating how pedagogical approach—whether top-down or bottom-up—dramatically impacts long-term understanding and daily workflow habits.
Episode Transcript
Hello, and welcome to another episode of the Bike Shed, a weekly podcast from your friends at Thoughtbot about developing great software. I'm Joel Kenville. And today, I'm joined by fellow Thoughtbotter, Adi Slater. Howdy. And together, we're here to share a little bit of what we've learned along the way. So, Aji, what's new in your world? In my world, I've been getting to play with a concept that was new to me upon joining the client project that I'm with right now. That's one of the things that I really love about consulting is that not only do you get introduced to different businesses and different teams, but you might also get assigned to a project with a new kind of, like, tech or concept that you haven't been introduced to. And this one in particular is to revamp our clients' access control system. They've gotten a little bit bigger. They've gotten more sophisticated in their needs. Their hand rolled system that they started out with is not working out for them anymore. And so they're moving on to a relational based access control system. And that's actually something that I had, not really encountered. I've set up role based access control plenty of times, but the relationship idea was new to me. You familiar with that? No. Explain to me what, relational access control is and how that differs from more conventional role based access. Yeah. So the relational access control, the underlying data structure is a directed graph. So you'll have different entities, resources, and subjects in this particular case that have a relationship to one another. So the entities are the nodes in the graph and the relationship being the edge. This way, you can connect between two points in that graph. Say it's a user and, like, a post or something that a user might own. If there is any kind of connection along that graph between those two points, then that is a allowed permission. And so it's kind of an easy way to conceptualize what can get pretty complicated if you're going to have different access control needs on particular individual items in a system. So in this case, basically, my user record just gets a connection to every entity in the system that I have access to. Yeah. There's a couple of different ways to handle it. Because it's a directed graph, you can have a relationship to something like a group or an organization or even a role. You can build role based access control on top of these systems so that if you have a connection to a role or an organization and then from the other direction, entities have a connection to that organization saying anyone that is related to you can also edit or whatever with me, then you have both fine grain control of the user directly connected to a particular instance, or you can have that kind of group control of, a more broad allowances. …
Get the full transcript (6,410 words) + summary by email — free
One-time email with the complete transcript and AI summary of this episode. No account needed.
One email, no spam. We’ll also show you what SignalCast does.
You just read a 3-minute summary of a 34-minute episode.
Get The Bike Shed summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from The Bike Shed
506: The Muppet Software Team
Jul 14 · 38 min
Deep Questions with Cal Newport
How I’m Organizing My Life this Fall | Advice
Sep 7
More from The Bike Shed
505: What is a “principal” or “staff” engineer?
Jul 7 · 34 min
Eye on AI
95% of AI Agent Projects Fail to Reach Production. Here's Why | Manoj Saxena, TrustWise
Aug 24
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links.
other
by Google
“Relational-based access control systems derived from Google's Zanzibar paper, contrasting them with role-based systems. Originated from Google's Zanzibar paper for managing complex cross-app permissions in social networks.”
More from The Bike Shed
We summarize every new episode. Want them in your inbox?
Similar Episodes
Related episodes from other podcasts
Deep Questions with Cal Newport
Sep 7
How I’m Organizing My Life this Fall | Advice
Eye on AI
Aug 24
95% of AI Agent Projects Fail to Reach Production. Here's Why | Manoj Saxena, TrustWise
Software Engineering Daily
Jul 30
Docker and Sandboxing AI Agents
The Knowledge Project
Jun 9
Mental Models That Change How You Think | Bill Gurley
Cognitive Revolution
Jun 3
Nested Learning: Ali Behrouz on the Quest for Continual Learning & Illusion of AI Architectures
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Health & Longevity Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into The Bike Shed.
Every Monday, we deliver AI summaries of the latest episodes from The Bike Shed and 192+ other podcasts. Free for one show.
Start My Monday DigestNo credit card · Unsubscribe anytime