Specialty coffee and engineering teams

Recently I’ve been trying to learn more about the world of coffee. After drinking coffee daily for years, taking a couple years off for a change of pace, then probing a little more into specialty coffee, I can safely say that it’s a very deep rabbit hole.

One of my favourite parts of engaging in this hobby is going to specialty coffee shops around town and observing the attention and care that people bring to their preparation of the drink. I have never seen anyone casually prepare a pour over. Regardless of how extra it may seem to obsess about the speed, pour height, quantity of water saturating a bed of ground coffee, people take it pretty seriously.

There are also those who obsess about more than just the finished drink. As with lots of higher end products and services, the purview of the service provider extends beyond the boundaries of the good/service in question and converges on a single goal - delight the end user.

For example, Vince at Faebrew doesn’t have a conventional menu - you just tell him what you want. Describe your mood, preferred tasting notes, anything at all, and he will make the drink you wanted to drink all along. It’s not a matter of using obscure, pretentious coffee preparation methods to dazzle and bewilder. It’s about meeting the customer where they’re at, and working together to arrive at something truly special. So while creating the perfect cup may be the thing that got us into the hobby, the essence of specialty coffee is about celebrating coffee with other people.

I wonder how we can apply the same mindset of care and collaboration to the goal of improving our software engineering teams. What does it look like when a dev team works together in a way that creates a delightful culture that people are proud to be a part of?

While my intention is to outline some qualities of an engaging engineering culture, there are plenty of folks who join companies for the paycheck, perks, proximity, or a multitude of other reasons that have nothing to do with the culture. Once a company reaches a certain size, that’s unavoidable. But a good culture is still worth striving for as it’s the backbone of an organization. Without it, you get higher turnover, apathy, lack of responsibility, slipping deadlines, resentment, and the org dies by a thousand little cuts.


I’ve had dining experiences in the past where the food was amazing, and yet the service was lackluster. I didn’t feel welcome. I’ve also been to coffee shops where my needs weren’t a priority - I was being sized up to see if I could prove that I knew what I was doing. Anyone on the receiving end of this kind of attitude will not engage with your business, regardless of how good your coffee is. As Maya Angelou said, “People will forget what you said, people will forget what you did, but people will never forget how you made them feel.”

Creating delightful experiences is not trivial. Those who are passionate about it labour for years to find the best way to solve their clients’ pain points and convey the essence of their craft. I believe that most of us are pretty good at detecting bad service or recognizing when someone just doesn’t care about what they’re doing. Good service means working with your clients to create something delightful and memorable. It means listening actively and finding ways that your offering can fulfill your clients’ needs. This is equally true for dev teams who are serious about learning to work well together.

To the extent that we are each other’s clients, we value each other, we learn about each other as individuals, and we take feedback from team members seriously. But for there to be feedback, those giving it need to feel safe and be confident that their ideas, even if critical, will be taken in a constructive spirit and that they will not be punished for them. Lies and platitudes don’t foster effective teamwork. When team members feel burnt out, micromanaged, frustrated, alienated, resentful, lost, disengaged, or any combination of these, failing to address these issues will slowly start chipping away at morale, productivity, and, of course, the bottom line.

So trust and honesty cut both ways in effective teams - those in positions of influence must trust that their team members are giving them honest feedback that they can take action on. Other team members, in turn, must trust their leaders to create a safe environment where they will not be punished for providing constructive feedback, where they can be vulnerable and talk freely about their struggles and concerns.

It’s common for companies of all sorts to have meetings where feedback is encouraged - 1-on-1’s, agile retrospectives, performance reviews, and so on. For a healthy culture to exist, our meetings and rituals have to be genuine. It’s up to everyone to contribute to ensure that the meetings are actually useful, so we must continually ask ourselves how we can genuinely contribute in a positive, constructive way.


At Sunny M and Single V, they gave me the freshly ground beans to smell before brewing. At Prototype, I had a delightful conversation about the chaos of making pourovers at home, what with so many tiny variables to control. At R Ki Coffee Lab, you pay less for your pourover if you go behind the counter and brew it yourself. And I’ve mentioned Faebrew.

A good way to nurture any relationship is to take the initiative and consider what the other person might want or need before they tell you. In the workplace we can do the same - meet people where they’re at, consider and anticipate their needs, do what we can to help.

Setting aside the time to have 1-on-1’s isn’t enough. If the meeting never moves past “How are things going?” and some limp small talk, then just dispense with the meeting altogether and go back to scrolling Hacker News. The fact is that people often don’t know how to answer “How are things going?” in a meaningful way so it’s up to the meeting host to create the conditions for a productive discussion.

This is why having productive meetings requires effort - taking notice of what direct reports are working on, anticipating what kinds of setbacks they may be encountering, practicing active listening, working together to identify problems, and coming up with a plan to address them. Caring about the outcome, not just saying you care, requires paying attention, putting in work, and planning ahead.

You would surely expect this from a coffee shop (or any other business in the hospitality industry) - the service they provide should be centered around the client, and should be the product of deliberate data-driven decision making. Even in the case of Faebrew, the decision to not provide a pourover menu is not an accident or a lack of effort, it’s a feature of an ideal experience tailored to a particular type of ideal target client.

And since employees are customers, 1-on-1’s and other meetings should be conducted with an eye towards improving the kind of work and workplace culture employees are receiving in exchange for their time and labour.


An important component of being empathetic is being clear. As Brene Brown famously says, “Clear is kind. Unclear is unkind.”

Being clear about team expectations, rituals, and conventions can help prevent feelings of alienation, despair, frustration, sadness stemming from a dysfunctional team dynamic. Embracing clarity means that each team member knows what’s expected of them, what their priority should be, what kinds of things they should be spending time on, and what their trajectory in the company looks like.

By this I mean that having some form of career ladder is a great way to boost team engagement, especially in mid-size companies. In tiny early-stage startups this doesn’t really make sense - people are motivated by the thrill of building a product, finding product-market fit, grinding to become the next Apple. Titles don’t matter as much in this context.

But as the company grows, the pace of development slows down, and new devs join who aren’t working as closely with the founding team any longer, it’s natural for them to start wondering about their future at the organization. In these cases, it’s extremely helpful to give team members the opportunity to discuss where they’re at in their career progression and what’s required for them to move forward and achieve more senior positions, or whatever positions they are aiming for. Without that people may begin to feel adrift and feel that their work is not carrying them forward to any particular goal at all.

To my mind, this is also a question of hospitality. We’ve probably all had the experience of visiting a coffee shop that doesn’t embrace clarity. We order a drink, payment is taken, and then…nothing. Where do I pick up my drink - do I wait by the cash? Do I go over to the bar? Where are the lids? Where do I pick up my pastry? And so on. Maybe the staff believe the environment suggests the obvious answers to those questions. Maybe they just didn’t think about it at all. In any case this represents a lack of empathy. And this is exactly the feeling that people often remember far more vividly than how the coffee tasted.


Building a good culture involves tradeoffs, like anything else in software. Business pressures, deadlines, budgets, and waning stamina will get in the way of the work needed to build the culture we want. Even if the team is humming along and crushing deadlines, our organizations are always changing and we have to respond to change in order to preserve the good things we have. There are reasons for not being able to execute on the plans we’ve made. But there are no reasons for not thinking about the culture of our organizations. If the organization has more than one person, then it has a culture. And that culture needs our attention and effort to flourish.

Coffee is no different. It’s all well and good to dial in your pourover technique but coffee is seasonal, it’s a product of a changing natural world which means no two harvests are the same, no two batches are roasted the same, and no two cups are brewed the same. The best cup is produced by paying attention, understanding, and dedicating ourselves to improve the result.

Thanks to Boris Smus for providing ideas and reviewing early drafts of this post.


Brown, Brené. “Clear Is Kind. Unclear Is Unkind”. Brené Brown. https://brenebrown.com/articles/2018/10/15/clear-is-kind-unclear-is-unkind/.

Lindsley, Dan. “HR’s New Why:” Dart Lindsley, https://dartlindsley.com/2021/11/07/hrs-new-why/.

© 2024. Ilya Meerovich