Guilds
I’ve been meaning to gather my thoughts on this for some time now, and I’m finally glad I had the push to get this done. I’ll separate this into to sections. The first will discuss how to implement a guild system in a full-stack corporate environment. The second part focuses on my thoughts about Ben Franklin’s “Junto” and how a modern mutual-aid society might operate.
Corporate Guilds
Trevor asked me to share some notes about my experience running a cross-functional guild system at startup we both worked at. I wore many hats during my time there, but one of them was asssisting our CTO in implementing an effective guild system across product-focused teams. I believe this was popularized by “Spotify”, but I’m going to leave my thoughts about Spotify alone for now. If you want to look more into that, be my guest.
Our tech stack was Ruby on Rails backend, Vue.js frontend, and native iOS and Android mobile apps. The frontend was coupled to rails but used common web API’s shared by the mobile apps. Effectively, we had three “clients” for the same backend API.
As the team grew from 5 to 50, we shifted into “two pizza” kanban teams led by a development lead and product owner. Each team had their own mobile and web developers, but it was really expected that everyone would work on the backend to some extent. Our codebase was monolithic, so across kanban teams, other iOS or Android developers would theoretically help review any code going into their codebase.
In an effort to formalize our technology-focused, cross-team collaboration, we implemented a guild system. We had four guilds: frontend, backend, iOS, and Android. Each guild had a leader, the de facto technical lead for their respective technology. The guild leader wasn’t always the most experienced developer in the guild - I actually stepped down as the frontend guild lead to allow a more junior, but more passionate graduate of my intern program lead the guild.
A core responsibility of each guild leader was to schedule regularaly occuring guild meetings. It was expected that each developer participate in at least one guild regularly. By the nature of our tech stack, the backend guild became the real heavyweight. The majority of the development team would attend that guild.
Guild meetings consisted of trainings, announcements, questions and answers, and an informal technical discussion. The bane of my existance as frontend guild leader was moderating debates about adopting the latest and greatest javascript library, convert to typescript, convert to jsx, convert to etc. I would literally announce “I bumped lodash from 2.34 to 2.35 so let me know if you see anything weird with that”. I can recall looking at our Package.json together and going line by line explaining why we needed each item. Guild meetings were also helpful to clue each other into their team’s work. Questions specific to upcoming work could be brought before the guild for input. I think a larger company might have formal technical architects but for the size we were at, I really enjoyed the democratic, grassroots style meetings.
Guilds also had their own slack channel. These were great for posting the latest platform news, seeking reviews on pull requests, and general camaraderie. Guilds could plan their own activities as well. For example, our iOS guild had a big hackathon when “dark mode” was announced to bring dark mode support to our app. I remember them coming in in full goth to be in the spirit. Typical emo Apple developers (jk jk fr tho).
Like any organization, we lived and died by our leadership. At times, corporate leadership was supportive of independent guilds promoting the best platform practices we could come up with. Other times, the guilds became used as political weapons. I recall an attempted coup where the UX team tried to invent their own component library but had no development help to actually implement it so they all showed up to a guild meeting and tried to call a vote or something. It was strange. If only we’d had AI back then! 🙃
Eventually, our backend guild leader and de-facto lead developer was promoted to something like Chief Technical Architect. I believe as part of that, the guild leaders began meeting together with the CTA as kind of a “guild of guilds”. In theory that makes sense to me but I can’t imagine what they’d all need to discuss in private. It seems like guild leaders could simply attend another guild and promote their goals and influence there, instead of behind closed doors?
I think that’s a key element as well - our guilds were open. As I mentioned, we had UX people in the meetings. QA was heavily involved. If there were folks elsewhere in the company that thought they might want to “get more technical”, attending guilds were a great opportunity to be a fly on the wall of the sausage factory. I know for a fact that several folks from support, success, and elsewhere successfully joined and contributed to the development team utilizing this resource, in addition to incredible gumption.
I would start by asking yourself “Why do I want to have a guild system?” What do you hope to accomplish? A year from now, you’ve executed your plan, and it’s gone amazingly well. What does that look like? Do you want “guild lead” to be a job title, filled with responsibilities that are justifiably compensated for? Or should it be an informal, honorary role? Should it be democratic or should it be chosen by a manager? Understand that by “having a guild”, you’re spending money on it. Probably a lot. Understand that. Don’t spend the money and then when the check comes, you realize you don’t want to spend the money. That’s just painful and embarrassing.
Next, ask “What would the best guild of all time look like?” Are they going on weekly team retreats to the antarctic? Are they on a camera-off basis but are capable of collaborating in a distributed environment effectively? Do you have the best tech stack of all time? Do you want that? I really think most things in life can be optimized greatly by simply thinking about it for one second. Most people simply don’t care and things suck. Care!
One of the things I personally took an interest in was having a tech blog for our engineering team. I started hearing about the really interesting scaling problems any startup has and felt compelled that we should document and share these “wins” with the tech community. In addition to physically managing the blog, I worked closely with the various guilds to identify interesting blog topics and then work with a developer to publish it. I think that was a really interesting and unique activity for our development team to do, a lot of people had never really written anything for fun like that. Please for the love of all that is holy do not put your “blog” behind your corporate “knowledgebase”. If you’re going to write it, publish it. Stand by it. Honor it!
The Junto
The Junto, also known as the Leather Apron Club, was a club for mutual improvement established in 1727 by Benjamin Franklin in Philadelphia. The Leather Apron Club’s purpose was to debate questions of morals, politics, and natural philosophy, and to exchange knowledge of business affairs.
A recent fascination of mine is a YouTube channel called “Tor’s Cabinet of Curiosities” He puts out the most fascinating deep dives into the most interesting rabbit hole you’ve never heard of until now. Very well researched and presented, I very highly recommend you subscribe to his channel and check out his back catalog for highlights as well.
A few days ago, he published a video titled “The Lab That Invented The 21st Century”. I’ll embed it below for your convenience.
It’s an excellent history of Bell Labs. From the wiki:
Bell Labs and its researchers have been credited with the development of radio astronomy, the transistor, the laser, the photovoltaic cell, the charge-coupled device (CCD), information theory, the Unix operating system, and the programming languages B, C, C++, S, SNOBOL, AWK, AMPL, and others, throughout the 20th century. Eleven Nobel Prizes and five Turing Awards have been awarded for work completed at Bell Laboratories.
So exactly what kind of crack were the fellas over there smoking exactly? The video does a fantastic job at going into the full details, but Tor helpfully provides an excellent summarizing point:
The most crucial catalyst to innovation isn’t state-of-the-art technology or a dizzyingly high IQ - It’s having others you can bounce ideas off of.
I was invited by my friend Sam to join “The Bullpen”. Long ago, we were fellow interns at a different company than the one I’ve been talking about, and we sat in this open area of the office they called the “bullpen”. It’s a pretty common term. Everyone else had offices. Some were in the halls. We had the bullpen.
As enterprising young interns, grateful for any scrap we could extract out of our job benefits, we eventually profiteered our own mini fridge, microwave, and stock of drinks and food. We (I) unscrewed most of the lightbulbs so it was a dark corner. I had a lamp. One time one of our coworkers fell asleep. It was awesome!
It was an open office, and we had a shared whiteboard where fellows could debate and plan out code issues. Close collaboration became a staple in the bullpen. Occasionally we’d have mentors sit with us.
I left that job but stayed in touch with Sam and some others. A few years ago, Sam invited me to “The Bullpen” discord server. I’d never really caught the discord bug, and in a lot of ways I don’t prefer the app. But it’s super cool. Sam, Carter, and some other folks that I guess are unnamed in their association with me hang out and chat about whatever. To be honest, and this has been true of any chat app I’ve ever been on, about 90% of the posts are me being loud about everything. I’m quite self conscious of it, since I’m the newest member of the discord server and I know I’ve changed the vibe quite a bit.
I feel like I’ve done some of the best professional and personal work of my life since joining The Bullpen. I think I thrive when I put my strong internal monologue in chat and get real-time feedback about my ideas. I think for others that can be intense. To me, it’s a form of extreme collaboration on thought. To others, it can be a hostile interrogation of their individuality.
Being a part of the Bullpen has provided me with that crucial key element Tor pointed out about Bell Labs - people I can bounce ideas off of. We are professionally affiliated, but we don’t work together anymore. It’s unique to have a professional, non-work based group. Oh, and the Bullpen is completely digital right now. Most of us have never even met. Though we are planning and discussing a mega-HQ that’s something in between a wizard tower and a bomb shelter. Our wives will likely not be thrilled.
I’ve been inspired by Benjamin Franklin’s Junto club. I’ve thought a lot about how an organization like this might best be implemented in 2025. How would they have done it? They met on Friday nights and it sounds like they just took turns asking the group questions and for feedback and advice. Questions also lead to research and essays, which would be presented to the group. In 1727 that was probably really effective.
I’d love to build a community such as this for anyone who wants to join. How could it be done? What platforms should be used? I’d genuinely love to hear your thoughts on this. How can we make it safe, and accessible? A strict code of conduct and rules list seems like it would go a long way, if nothing else but to keep us united in our direction. I’m generally speaking very much “out” closed platforms and the “fediverse” seems very exciting. Then again, mailing lists and IRC have been around forever. I have built Replies into this blog, seeking to encourage people to get in touch. It lacks the consistency a dedicated community might have.
Are you interested in a modern Junto? How would you like to participate in it? Please get in touch and share your thoughts with me!