#87 - Learning to Program With Exercism and Building Employee Culture With Kaido - Jeremy Walker
“You don’t know what you don’t know. So when you’re learning something, it’s very hard to identify your own knowledge gaps, especially if you’re a programmer and you’re moving from one language to another.”
Jeremy Walker is the co-founder of Exercism and Kaido. In this episode, Jeremy first shared about Exercism, a not-for-profit online platform for learning different programming languages. He explained the importance of programming in the idiomatic way, the role of mentorship when learning new languages, and shared his experiences running Exercism as one of the largest open source program, such as how to get consensus and how to run remote distributed teams. Later, Jeremy then talked about Kaido, an employee culture platform for building happier, healthier, and better connected teams. He shared how companies could strive to do more to build company culture before then shared some practical tips on how we can improve our personal wellbeing.
Listen out for:
- Career Journey - [00:05:08]
- Exercism - [00:08:24]
- Programming in Idiomatic Way - [00:11:34]
- Mentorship When Learning Languages - [00:13:52]
- Inclusiveness & Equality - [00:17:04]
- Running Large Open Source - [00:21:19]
- Getting Consensus - [00:27:11]
- Running Remote Distributed Teams - [00:30:42]
- Kaido for Wellbeing and Culture - [00:37:00]
- Tips on Personal Wellbeing - [00:43:40]
- 3 Tech Lead Wisdom - [00:49:13]
_____
Jeremy Walker’s Bio
Jeremy Walker is the co-founder of Exercism (
https://exercism.org
) and Kaido (
https://kaido.org
). He is a software developer and entrepreneur who has been building tech businesses and not-for-profits for over 15 years. He is passionate about building great places to work and creating opportunity through education. In his space time he boulders and gets geeky about coffee.
Follow Jeremy:
- Exercism – https://exercism.org/
- Kaido – https://kaido.org/
- Twitter – @iHiD
- LinkedIn – https://www.linkedin.com/in/ihidjeremywalker/
- GitHub – https://github.com/ihid
- Exercism GitHub – https://github.com/exercism
- Exercism Email – jeremy@exercism.org
- Kaido Email – jeremy@kaido.org
Mentions & Links:
- Backpropagation algorithm –
https://towardsdatascience.com/understanding-backpropagation-algorithm-7bb3aa2f95fd
- Jeremy corrected himself afterwards, noting that the backpropagation algorithm was invented much earlier, but that a series of papers popularising it came out shortly after his degree.
- Pythagorean triple – https://en.wikipedia.org/wiki/Pythagorean_triple
- Headspace – https://www.headspace.com/
- Mind – https://www.mind.org.uk/
- Calm – https://www.calm.com/
Skills Matter is an easier way for technologists to grow their careers by connecting you and your peers with the best-in-class tech industry experts and communities. You get on-demand access to their latest content, thought leadership insights as well as the exciting schedule of tech events running across all time zones.
Head on over to skillsmatter.com to become part of the tech community that matters most to you - it’s free to join and easy to keep up with the latest tech trends.
Tech Lead Journal now offers you some swags that you can purchase online. These swags are printed on-demand based on your preference, and will be delivered safely to you all over the world where shipping is available.
Check out all the cool swags available by visiting techleadjournal.dev/shop. And don't forget to brag yourself once you receive any of those swags.
Exercism
-
Exercism is a platform for improving your programming skills. It’s an online platform where you can go. We have 55 different programming languages we teach. We give you various exercises to do. For a lot of tracks now, we have formal syllabuses that teach various concepts. You work your way through those concepts. Very much learning how that concept applies to that language.
-
We tend to focus on trying to teach what knowledge you need specifically for a language. And we teach what we define as fluency. So the idea is that you can speak fluently in that language, you can think fluently in that programming language. What we don’t teach is proficiency.
-
We’ve got just under a million users, and one of the key elements of Exercism is that it’s centered around mentoring. So you solve exercises, but then you send them to our team of volunteer mentors, and those mentors will read your code and they will give you feedback on it, and give you ideas how to improve.
-
We stand around this idea that you don’t know what you don’t know. So when you’re learning something, it’s very hard to identify your own knowledge gaps. It’s very hard to know if you’re doing something wrong. Especially if you’re a programmer and you’re moving from one language to another.
-
Mentors are brilliant for that. They’ll come in and they will give you advice and ideas and insights on how you can improve. And they’re all volunteers.
-
Exercism is a not-for-profit platform. Everything we do is free. The platform itself is built by a huge community. We’ve had hundreds of thousands of mentor sessions.
-
We’re very focused on learning from others. So when you submit your solution, we’ll show you how other people have submitted their solutions as well. And we’ll let you explore other people’s ideas and other people’s approaches, which is also a great way to learn.
Programming in Idiomatic Way
-
Idiomatic programming is everything. If you’re going to work on a team with a lot of Java developers, you need to be writing Java in the way that Java developers write Java. You need to be able to think about the way that programs are structured, or if you’re moving from a language that’s compiled to interpreted or do things differently, or that has automatic memory management or doesn’t.
-
If you don’t learn the fundamentals of a language very well, then that will always shine through. Good examples in spoken languages are accents. If people have quite thick accents and other people can’t quite understand what they’re saying, you end up with communication barriers. If you’re talking and one person is using phrases and those phrases aren’t familiar to you, then that can be very confusing. Again, it’s causing inefficiencies, often mistakes or misunderstandings.
-
Obviously, when you’re in a technical situation, you’re writing technical projects, often, where the risk of a mistake can be quite serious. You know, it could be a website going down, or it could be much more serious than that. If you’re working for NASA or you’re doing something in medicine, those mistakes, those miscommunications can be really risky.
-
I think there’s also just a pride in learning a new language, and wanting to program in it really well, wanting to be able to think like everyone else, wanting to sort of get to the top of that game.
Mentorship When Learning Languages
-
Obviously, you can learn other programming languages without a mentor. It’s not a requirement. But it is hard when you’re learning something to spot your own mistakes. So the phrase I mentioned earlier, “you don’t know what you don’t know”.
-
You will see a new language through the eyes of your previous experience, your previous languages that you’ve coded them, and you might not understand that you are doing something bad.
-
Often, it can take quite a few iterations of somebody improving their code to really go on that journey and understand it.
-
And I think, if you didn’t have a mentor that was guiding you that way, it’s too hard to see a fully working solution, and know how to get from where your knowledge is to get to that really great solution. That chasm is too big just to jump because there’re so many small little learning steps you need to go on.
-
Whereas if you’ve got a mentor that’s holding your hand, taking you just at one little step at a time, they can guide you there. And then when that light bulb moment comes off, you’re going to really deeply understand that and remember that.
Inclusiveness & Equality
-
So there’s a big part for me about offering opportunity through education. Once you’ve got some of the fundamentals in place, education is probably the most powerful thing. And so one of the big challenges in the world is that if you are able to go to like a prestigious university, or you’re able to get an internship at a good company where you’re getting good mentoring from people around you, it’s relatively straightforward to be able to get good at something. You still have to put effort and you have to put work in, of course, but the opportunity is there for you to thrive in that.
-
If you’re in a situation where you can’t afford courses, you can’t afford mentoring, you wouldn’t be able to get an internship, you couldn’t go into a formal education system, then it’s incredibly difficult for you to gain a good enough level of skill to be able to really thrive.
-
For me, providing a space and a platform that is world class in the education we provide, that’s like key to me. Exercism is free. It’s about providing opportunity. But first and foremost, it’s a world-class education platform. That’s what we strive for.
-
Fundamentally also, Exercism is very much built by the community, before the community.
Running Large Open Source
-
First, there’s a degree with an open source community where you can put certain processes in place, and you can put certain strategies in place. But fundamentally, it very much comes down to the people that are going to volunteer to actually help and support you as to how all of these things play out.
-
The reality is that a lot of why it works is because of many of the volunteers that are there and their ideas and their inputs and the way they act.
-
In terms of how it works, there’s probably two real principles. One is having that sort of top-down strategy and leadership. So very much saying, this is how all of the tracks need to work for this to work as an organization. There need to be levels of consistency. We try and put really detailed specifications together, so each of the tracks is adhering to a specification. Communicating that from the top-down is really important. We have a weekly call that anyone is welcome to.
-
So every single week, there’s like an update on what’s happened this week, maybe where we’re thinking about. And we really invite people on those calls to pitch in with ideas. Really try and get consensus on things before we push forward to anything.
-
One of the big lessons I’ve learned is that when you’re working in a community where everyone’s a volunteer, you can’t just come in and say, this is what you’re going to do, or even this is what we’re going to do. You all have to adhere to it. That just doesn’t work. It’s rude and insulting to the volunteers, and it’s not why they’re part of it. We very much try and ensure we have a consensus.
-
One of the things I’m really passionate about is diversity. It’s getting a set of diverse opinions and ideas and everything. You see everything through your own biases, your own prejudices. Whatever they are.
-
Getting diverse thoughts and all of these different areas is really important. We put propositions out there and try and get consensus from the community before we do anything.
-
The other side is very much then letting the community express themselves. Just like in a normal company, you know, you want to let your employees, your staff, express themselves. You want to let them put their own personality into their work. It’s even more important in some ways in a volunteer community that people feel that they can put their stamp on it. They feel individual ownership of what they’re doing. I try and really encouraged that ownership, as long as someone’s sticking to the spec. They’re sticking to our code of conduct and our principles.
-
And those two things often butt up against each other. You know, someone has an opinion on what they want their track to do, but that doesn’t fit with where we see Exercism going, or doesn’t fit with the specs we want to build. That’s often where the tension comes in, and we have to resolve that. Normally, the way we resolve that is just to firm up the spec. So it’s clearer, reducing ambiguities is a solution to most problems we come across.
Getting Consensus
-
The key thing for me in all business is the idea that when a decision is made, everyone gets behind it, that everyone gets to voice their thoughts or concerns in that decision-making process.
-
Anybody can propose an idea, convey an issue, can raise a problem. We can say this is a strategic decision we’re going to take. And we’ll very much then try and have a sort of consultation period where people can feedback on that.
-
There’s a three-year strategy document. I wrote this sort of 15-16 pages long, that’s been circulated to many of the key contributors, the key maintainers, key mentors. They’ve written lots of comments on that document. It’s just a Google Doc. Lots of comments on that document, lots of feedback. And then I’ve sort of spent time thinking about that, amending it.
-
And then at some point, we’ll try and find some decision that everyone’s happy with. But if we don’t, and we have to take a decision that some people are unhappy with, part of their responsibility is to accept that, and move on.
-
The organization and the mission have to come first. The fact that Exercism is one platform that needs to feel a coherent user experience, a coherent product that makes sense to users, that has to trump most of the things.
-
I think it’s that really getting opinions, really listening to opinions, really carefully considering what everyone says. And then when a decision has been made, everyone being willing to just really get behind that decision, even if they didn’t go the way they hoped it would go.
Lessons Learned Running Distributed Teams
-
Running a volunteer team is something I massively recommend to anyone who wants to be a good leader does. Like find some place to volunteer and go and lead some volunteers. Because everything you do with volunteers, you have to lead them in a way they want to be led. If they don’t like you, they don’t have to volunteer anymore. And suddenly, you find that you don’t have any volunteers.
-
You have to find a way to do that to lead on the basis of being a good leader on trust, listening to people and considering people. But also on still being a leader, you still have to lead. You still have to make decisions that people are willing to go with, even when they disagree with them.
-
I think leading volunteers is a massive opportunity to up-skill as a leader. Because once you do that, all of those same principles, you can apply to then a normal team. Especially a remote team that you’re working with where you don’t want to be the boss that is–everyone does what they say cause they’re scared of you, or everyone does what they say because you’re paying their wages.
-
You want people to do what you say because they trust you. They respect you. They feel listened to. They’re excited about what they’re doing. If somebody feels like what they’re doing is going to work, they’re going to do a much better job of doing it. And people feel like, okay, this is going to work. If they trust the decision-making process, the leadership.
-
Even if someone’s a paid employee, imagine they were volunteer. Imagine that if I don’t get this right, they might just up and leave and that’s their right to do that, and it makes you a much better manager as part of that.
-
I think the biggest challenge, especially with remote is communication. It’s how you communicate in a way that makes people feel listened to–I’m going to keep coming back to that phrase because it’s so important–makes them feel listened to, makes them feel heard. But also doesn’t just make them feel like some sort of external contractors who have been given work. One of the big challenges with remote teams is you can end up as a leader feeling like you’ve got 10 consultants working for you, and you don’t actually have a team.
-
And so the challenge, it’s exactly the same with Exercism as well, is how do we keep a sense of community amongst our team? Even though we might have very little synchronous time. And I found the key thing for that really is around shared mission. It’s around everyone being there for the same reason. It’s about setting norms between people where the way people communicate is respectful, is friendly.
-
At Kaido, we talk a lot about psychological safety. We talk a lot about positive conflict. So, you can disagree with somebody and it doesn’t feel scary. It doesn’t feel like an argument. It just feels like this is a psychologically safe environment. We trust each other. We can disagree about things. If I’m reading a message that someone’s written asynchronously. So they’re not there. If I’m in a bit of a bad mood, when I read it, I can see the worst in what they’re saying.
-
I think that’s a big part of remote teams is having that trust of what the other person is saying. Even though I wasn’t one-to-one able to just have a video call and chat with them. It was an asynchronous communication. But knowing that even if what that person’s saying goes against what my instincts are, I still need to respect them. I still need to put my frustration aside.
-
That’s a lot easier if you’re face-to-face, smiling at someone. You can see that humanity in the person. When you’re just reading texts that someone’s typed. It’s really hard to see that humanity, sometimes. It just feels sometimes like an attack on you. Even though it would never feel like that if it was just a normal conversation. And so, I think having that own mental discipline and that trust within a team.
Kaido for Wellbeing and Culture
-
There’s a whole load of stuff in professional sports that could be applied to normal workplaces to create better teams, like the way that professional sports teamwork.
-
One of the things that we really just discovered was actually, there’s a whole load of just basic things that most organizations don’t do, and that most probably individuals don’t know. We felt that there was a big impact we could have around just trying to raise the profile of wellbeing in companies.
-
We started off doing wellbeing challenges. So, four week long challenges where basically everyone in the company split into teams. They spend four weeks trying to each get healthier. We look at sleep, nutrition, physical health, mental health, and we spend a bit of time giving people things to do every day.
-
One of the key things is we get people to reflect at the end of every day. How has this thing affected me? How has it helped? How has it not helped? How am I feeling? And this wellbeing challenges have been really successful.
-
But then, one of the things we really noticed was that some of the other stats that we were asking questions about were equally impressive. Especially those around teamwork, and around how you feel in relation to your colleagues and other such things. And what we basically realized was Kaido was doing a great job of impacting people’s health.
-
But actually, it was also bringing people into teams. We realized that one of the key reasons was because people were just having something that wasn’t their work to talk about. There was a shared context, shared conversations that were happening that broke through sort of the hierarchies within teams. It wasn’t just a manager talking down to their staff. Everyone was on the same level playing field with this.
-
We’re just launching this new set of products now, which I’m super excited about. We’ve been working on for ages. We call it experiences. They’re all centered around the UN sustainability development goals. So the idea is to give your team, give your company a week-long mission centered on something important in the world.
-
And then we’re also as the third sort of part of what we’re building out is the kind of culture academy, which is centered around training. So one of the things that we’ve done for a long time now is to give only short sessions, but short culture building sessions to a whole lot of champions in a company at the start of when they start using Kaido.
-
And what we’ve really understood is that culture works. You need culture coming from the top down. You need the people in management agreeing to values, agreeing to those things and putting them down. But you also need that culture coming from the bottom up. Because culture in a company really is the shared experiences. It’s the shared language. It’s the shared relationships between people. It’s the norms, as you said, within a company that make up the culture.
-
You need people in the company that are aware of these things, that can see when there’s a situation or a team where there isn’t much psychological safety, and know how to impact that, know how to make a positive difference.
-
Giving training to just normal “employees”–people with no HR background–but who are just interested in making a great place to work. Helping them understand what really good culture looks like, how to impact it, how to recognize when bad things are happening and impact them. And then through both training at the management level, but also there’s training the bottom up, bring culture sort of coming from both sides within the company.
-
To me, a good company culture feels like it’s a human right. You go to work and you actually enjoy being in that place. You feel like it’s a safe place to be. And then, out of that, you’re also productive. You also do good work. You also benefit the company. You benefit each other. And then hopefully, if you’re working for a company with some good mission, you know you’re benefiting humanity as a whole and the planet as a whole.
Tips on Personal Wellbeing
-
We focus on these four areas. There’s three different things to all of them.
-
One is developing a good understanding of how things affect you. Just making sure you’ve got the basics covered in your knowledge.
-
Understanding that actually having blue light two hours before you go to sleep is a really bad idea. It will massively affect your sleep. It will affect like the first four hours of your sleep, and you will then wake up feeling tired the next day. And then because you wake up feeling tired the next day, you’ll drink more coffee. The cycles that come out of this.
-
There’re a lot of fundamentals that some of that we don’t know. I always find it interesting to discover things. I learn all the time from reading Kaido’s content. So the first is all about that knowledge stuff. So really helping people do things.
-
I always think that Kaido’s magic sauce is that we remove the need for willpower. So the hardest thing with most wellbeing stuff isn’t the knowledge or the desire, it’s the willpower.
-
At the end of an exhausting day when you’re tired, reaching for your phone or putting the TV on and watching something, that’s like the easy thing to do. You’re exhausted. You’ve got no willpower left. Your brain’s not as effective. It’s hard to make hard decisions at that time.
-
Kaido’s magic sauce is because you’re in teams, and because you’re all like committing to not doing whatever it is that day. It takes away the willpower because instead, you’ve got accountability for each other.
-
Kaido makes it sort of easy because it’s gamified. You’re in a team. You want to do the right thing with the team. Outside of something like Kaido, some sort of accountability is a really good way of achieving the same thing. And that can then be around anything. It can be around nutrition. It can be around reducing your salt content. It can be around a bit more physical activity. It could be around doing meditation.
-
Actually, doing a 10 minute meditation has a huge impact. It really does. It’s a massive impact. You can see it on MRI scans. It’s a really easy thing to do. But again, you need to use willpower at some point in your day to do it, and we’re all low on willpower. So having somebody where you’re accountable to that person.
-
The other thing that works for me really well is streaks. There are apps you can get where you can just build your own streaks around things as well. So whatever it is you’re trying to do, the thing is that you’re trying to impact, trying to build streaks, trying to build accountability.
-
The third bit, very briefly, that we find with Kaido that works really well is this reflection piece, where at the end of every day, you reflect on what you’ve done well. Maybe we should have done a bit better. You note how the things that you’re doing are impacting. This is the thing that sounds the most boring and pointless. At the end of it, nearly every person that completes Kaido says it’s been the most impactful part of the whole thing. It’s phenomenal how much if you take time to reflect and look back, that makes a massive impact on you.
3 Tech Lead Wisdom
-
The thing I’ve probably said the most in the podcast and the thing I should just keep coming back to is to listen.
-
I think there’s very little that’s more important than listening to those people you lead. To listen to what they’re saying and to reading between the lines as well.
-
In Japan, they have a phrase which, I think, “reading the air”. It’s not just what the person is saying, but it’s what’s around that.
-
The more carefully you listen, I feel like the better decisions you come to. The more people you listen to, the better the diversity of opinion is, the wiser the decisions you make are. And also, the problems that you can avoid very early if you listen carefully to everyone.
-
The more you listen, the more you learn, and the more you learn, the better you become at everything.
-
Of all the skills I think you can learn as a leader, that’s the one I would just really focus on myself in.
-
-
A growth mindset would be the next one.
-
As part of that listening, you know, be want to learn yourself, want to change your opinions, treat being wrong as a really exciting opportunity to learn something.
-
Treat people disagreeing with you as a really exciting opportunity to realize where you haven’t fully thought something through. If someone disagrees with you, then you’ve either got something wrong or you’ve not communicated why you’re right. It’s normally one of those two things.
-
-
If you’re leading a product team, then always focus on what the user wants.
- If you build a good product, the users will come.
-
If you’re not building a product business, or you don’t have users in your role, or that’s not part of you, then focus on your wellbeing.
-
Focus on your mental health to get a good night’s sleep. Focus on what you put in your body and what you eat.
-
Keep moving. Don’t just sit, squat over in a chair all day and get back problems. The more you move, the healthier you are, the smarter you’ll be.
-
The happier you’ll be, the less grumpy and snappy at your team you’ll be. It just all flows from there.
-
[00:01:10] Episode Introduction
Henry Suryawirawan: Hello again to all of you my friends and listeners. Welcome to the Tech Lead Journal podcast, the show where you can learn about technical leadership and excellence from my conversations with great thought leaders. And today is the 87th episode of the podcast. Thank you for tuning in today listening to this episode. If this is your first time listening to Tech Lead Journal, subscribe and follow the show on your podcast app and social media on LinkedIn, Twitter, and Instagram. If you are a regular listener and enjoy listening to the episodes, support me by subscribing as a patron at techleadjournal.dev/patron.
My guest for today’s episode is Jeremy Walker. Jeremy is the co-founder of Exercism and Kaido. He’s a software developer and entrepreneur who has been building tech businesses and not for profits for over 15 years. In this episode, Jeremy first shared about Exercism, a not-for-profit online platform for learning different programming languages and how it can help us build the language fluency with guided mentorship. He explained the importance of programming in the idiomatic way, the role of mentorship when learning new languages, and shared his experiences running Exercism as one of the largest open source program, such as how to get consensus and how to run remote distributed teams. Later, Jeremy then talked about Kaido, an employee culture platform for building happier, healthier, and better connected teams. He shared how companies could strive to do more to build company culture before then shared some practical tips on how we can improve our personal wellbeing.
I enjoyed my conversation with Jeremy, learning about his great mission with Exercism as a free platform for everyone to learn programming, and also practical tips on how to improve company culture and personal wellbeing. And if you also enjoy this episode and find it useful, share it with your friends and colleagues who may also benefit from listening to this episode. Leave a rating and review on your podcast app and share some comments or feedback about this episode on social media. It is my ultimate mission to make this podcast available to more people, and I need your help to support me towards fulfilling my mission. Before we continue to the episode, let’s hear some words from our sponsor.
[00:04:23] Introduction
Henry Suryawirawan: Hey, everyone. Welcome back to another new episode of the Tech Lead Journal podcast. Today, I have with me someone who is an entrepreneur and also quite active in the not-for-profit organizations. His name is Jeremy Walker. He’s the co-founder of Exercism and also Kaido. Exercism is like an online platform for you to learn programming languages, and it’s also a big community. Later, Jeremy will be able to share more about that. And Kaido, which is more like a wellbeing, building culture for organizations. So really pleased to meet you today, Jeremy. I hope we can talk a lot more about not-for-profit, open source and also wellbeing.
Jeremy Walker: Thank you for having me on here. Yeah. I’m really, really excited to chat about all that. It’s always fun to dig into some of the experience and sort of find some other good questions to explore.
[00:05:08] Career Journey
Henry Suryawirawan: So Jeremy, maybe in the beginning, if you can help to introduce yourself for people who don’t know you yet. So telling more about your highlights or turning points in your career.
Jeremy Walker: Sure. So I started writing software when I was eight years old and started making websites when I was about 14 and started selling those. And then those became the two different elements of my career. On one hand, I’m a software developer. I love writing software. I love building things. I’m very into product. And on the other side, I’m an entrepreneur. I’ve been running businesses for a long time now. Specifically, around not-for-profits. I have a degree in Artificial Intelligence from before it was cool. For those of you that are familiar with Artificial Intelligence, there was an algorithm that came out called the backpropagation algorithm, which was the big turning point in Artificial Intelligence. It’s what led us to all of the modern machine learning. That algorithm was discovered or created about two months after I finished my degree. So in one moment, everything I had learned in three years of my degree was wiped out as important, and replaced with this one thing. So I have a bit of academic background in Computer Science and Artificial Intelligence.
But yeah, really, I think most of my experience has been quite hands on. Both in terms of the coding side, but also terms of learning how to lead teams, to build teams. I’ll talk a bit more about Exercism, and I’ve learned a lot from that. But I’ve run a couple of other startups as well. Raised investment amount, been for some of that process. So I’ve got a bit of experience with that as well. So yeah, quite a broad set of experiences. I’m also a digital nomad. Outside of COVID times, I travel around, and I’m really interested in learning about other cultures and exploring other cultures. I love to know why people think differently to me. Something that really interests me. I hope that comes through in my leadership as well, like, trying to understand a big, diverse set of views and ideas. So that’s me in a nutshell.
Henry Suryawirawan: Thank you for sharing that. So one thing very interesting that you actually have an expertise in AI. And we know that AI now is booming. Why not just go dive deep into AI and do something around that?
Jeremy Walker: It’s a good question. So, I have done a little bit. I have a patent for an algorithm that’s used during heart surgery to detect when doctors are making mistakes, and alert them to making mistakes. So I have delved in a little bit into that. It’s fun. As I said, there’s these two sides of me, there’s the side that would love to sit in a dark room all day, staring at a screen and coding. That’s like the angel on my one shoulder. And then I have the little devil on the other shoulder, which is the entrepreneur, which screams at me to go and do big things, and wants me to go and make these like massive changes.
And I think I often considered this exact question because if I was to have my happiest day, a lot of the time, it’d probably just be sitting quietly coding by myself. I’m an introvert. That fuels me. I finished many our coding session. I feel brilliant. But I think that drive to build something a lot bigger with myself, to collaborate with other people, and to be leading people as well. I think those things always win out, certainly, and they have been really at this point in my career. So while sitting there and sort of developing AI would be something I’d really enjoy, it’s something that you are either doing it by yourself or you’re a small cog in a bigger wheel. My natural drive is always to put me sort of leading the cog rather than being one of the mini cogs. But I do often when I’m having a bad day or a stressful day think, why don’t I just throw this in and just go and code for the rest of my life? I’d be very happy. So it’s a very good question.
[00:08:24] Exercism
Henry Suryawirawan: So which brings you to Exercism, I guess. I tried it, actually. It looks cool. It’s a fun place where people can learn about programming. Maybe can tell us more. What is Exercism? Do I pronounce it correctly? And what is that platform, actually?
Jeremy Walker: Sure. You pronounce it fine. So I would say Exercism. Exercism is a platform for improving your programming skills. Currently, we say that you need to be able to do a little bit of programming to be able to use Exercism. You don’t need to be a good programmer. But we don’t teach the absolute basics yet. It’s something we’re going to be doing. But we don’t yet. It’s an online platform where you can go. We have 55 different programming languages we teach. You can work through one of those programming languages. We give you various exercises to do. For a lot of tracks now, we have formal syllabuses that teach various concepts. You work your way through those concepts. Very much learning how that concept applies to that language. Even from something basic, like understanding numbers in a language. Understanding how numbers in JavaScript are quite different to, say, numbers in Ruby or numbers in C#. You need to learn different things to be able to use numbers well in those different languages. So, we tend to focus on trying to teach what knowledge you need specifically for a language.
And we teach what we define as fluency. So the idea that you can speak fluently in that language, you can think fluently in that programming language. What we don’t teach is proficiency. So we don’t focus on, say, you’re learning JavaScript. We want to make you able to think like a JavaScript developer, to understand the intricacies of JavaScript, understand how to use JavaScript well. But we wouldn’t go and teach you a framework, like React or something like that on the side that explains how you would use JavaScript in the real world.
So to give you an idea of scale. We’ve got just under a million users, and one of the key elements of Exercism is that it’s centered around mentoring. So you solve exercises, but then you send them to our team of volunteer mentors, and those mentors will read your code and they will give you feedback on it, and give you ideas as to how to improve. We stand around this idea that you don’t know what you don’t know. So when you’re learning something, it’s very hard to identify your own knowledge gaps. It’s very hard to know if you’re doing something wrong. Especially if you’re a programmer and you’re moving from one language to another. It can be quite difficult to know whether am I just applying my JavaScript knowledge when I’m writing Ruby, or am I actually writing Ruby like a Ruby developer would write. So mentors are brilliant for that. They’ll come in and they will give you advice and ideas and insights on how you can improve.
And they’re all volunteers. You mentioned about the non-profit thing. Exercism is a not-for-profit platform. Everything we do is free. The platform itself is built by a huge community. We’ve had hundreds of thousands of mentor sessions. Just between students and volunteer mentors, and millions of submissions from students. And that’s the final sort of other piece of the puzzle, I guess, is that we’re very focused on learning from others. So when you submit your solution, we’ll show you how other people have submitted their solutions as well. And we’ll let you explore other people’s ideas and other people’s approaches, which is also a great way to learn. I hope that’s a quick overview. I could talk about Exercism all day, but hopefully that just gives a bit of colour.
Henry Suryawirawan: It sounds really exciting. Actually, you forget one more element, which is the gamification part of it, where you have the points and the levels and all that. I think that sounds cool.
[00:11:34] Programmming in Idiomatic Way
Henry Suryawirawan: So one thing that you mentioned, right? People who are learning programming languages when they switch, they are not used to this idiomatic way of programming in a different language. Maybe tell us more. Why is it important to have more idiomatic way of programming?
Jeremy Walker: Sure. So idiomatic programming is everything. If you’re going to go and work on a team with a lot of Java developers, you need to be writing Java in the way that Java developers write Java. You need to be able to think about the way that programs are structured, or if you’re moving from a language that’s compiled to interpreted or do things differently, or that has automatic memory management or doesn’t.
Languages are just like human spoken languages very different. If you don’t learn the fundamentals of a language very well, then that will always shine through. Good examples in spoken languages are accents. So if someone learns French as their first example, and then you hear them speak English, they’ll always have this, well, it’s quite a beautiful French sort of twang to their English. They’ve never sort of learnt English as a native speaker would speak it, in terms of things like accents. That can then cause trouble. Not just the French example. You know, if people have quite thick accents and other people can’t quite understand what they’re saying, you end up with communication barriers. If you’re talking and one person is using phrases and those phrases aren’t familiar to you, then that can be very confusing. Again, it’s causing inefficiencies, it’s causing, often, mistakes or misunderstandings. I’m currently learning Japanese. I’ve been learning it for a little while now. I’m really trying to learn the fundamentals really well. Eventually, one day when I’m good at Japanese, I want to be able to speak with a native accent. I want to be able to not just be using English phrases, that I sort of bodily butchered into Japanese, but actually learning the Japanese phrases that they would use in a native setting.
And so I think it’s a little bit like that. But obviously, when you’re in a technical situation, you’re writing technical projects, often, where the risk of a mistake can be quite serious. You know, it could be a website going down, or it could be much more serious than that. If you’re working for NASA or you’re doing something in medicine, those mistakes, those miscommunications can be really risky. Hopefully, that gives a bit of an idea. I think there’s also just a pride in learning a new language, and wanting to program in it really well, wanting to be able to think like everyone else, wanting to sort of get to the top of that game. And if you’re not learning those fundamentals really well, it will always be a hard thing for you to then do later on.
[00:13:52] Mentorship When Learning Languages
Henry Suryawirawan: And also you work with people who are maybe more familiar with that language. If you wrote it in a different way, I guess you can tell, “Okay, this looks like two different people writing it.” So you mentioned the important elements of Exercism, which is the mentorship. I’m sure some of us here, the audience, the listeners who are also learning new programming language, can you tell us what is the importance of having a mentor? When you switch language, for example, is it really important to have someone mentoring or guiding you along the way?
Jeremy Walker: It’s a good question. So firstly, obviously, you can learn other programming languages without a mentor. It’s not a requirement. But it is hard when you’re learning something to spot your own mistakes. So the phrase I mentioned earlier, “you don’t know what you don’t know”, is a really big sort of principle for me on this. You will see a new language through the eyes of your previous experience, your previous languages that you’ve coded them, and you might not understand that you are doing something badly. So an example is, say, people learning Rust, the programming language Rust. We have an algorithm called Pythagorean triples. It’s an exercise that you can solve, and you can solve it in a few different ways. But one of the nice things about Rust is that you can create a solution that’s deeply parallelized. So the different strands of this are running simultaneously, which gives you a very, very fast answer.
Normally, what we see is that people coming from other languages that don’t have this parallelism built into the language, they won’t use that function at all. They’ll write a slower function. Maybe it’ll take 10 seconds to run the whole program. Whereas when some mentors sort of said, “Well, hold on, have you thought about doing this?” It’s quite fundamental, if you change the way you think about the program, so it’s like this instead, then, actually, your runtime will go from 10 seconds to like naught 0.1 second. Often, it can take quite a few iterations of somebody improving their code to really go on that journey and understand it. And there’s a real light bulb moment that, like, clicks for somebody halfway through that exercise, where they suddenly understand about that. And I think, if you didn’t have a mentor that was guiding you that way, it’s too hard to see a fully working solution, and know how to get from where your knowledge is to get to that really great solution. That chasm is too big just to jump because there’re so many small little learning steps you need to go on. Whereas if you’ve got a mentor that’s holding your hand, taking you just at one little step at a time, they can guide you there. And then when that light bulb moment comes off, you’re going to really deeply understand that and remember that.
So that’s why I think it’s so valuable. We’ve had lots of people who have worked through. So every time you submit an exercise as well, you get a different mentor. So we try and give students like a broad range of different ideas and different views and different people feeding into them. It’s not like a one-to-one sort of mentoring program. But yeah, we’ve had people that have gone through a track, and they will testify how much that mentoring has accelerated the way they’re learning and just really given them strong foundations.
Henry Suryawirawan: That totally makes sense. For example, for me, I am also learning Go. For example, Go, sometimes the idiomatic way is definitely different than some of the programming languages. And not having someone and always have to refer to blogs or books, which sometimes makes it hard. You will sometimes think, okay, do I do it the right way? But then I don’t have feedback. But my code works. But at the end of the day, you don’t actually write it in the idiomatic way. So I think that mentorship is really powerful in that sense.
[00:17:04] Inclusiveness & Equality
Henry Suryawirawan: You have all these communities, mentors and volunteers, and you’re doing this not-for-profit. Tell us more about why the decision for not-for-profit? Because such platform, I can tell, a lot of people are spending time, and also you will have a lot of people want to learn about the languages. So is it also part of your personal mission to have more inclusivity or equality for people to learn programming languages?
Jeremy Walker: Yeah. A hundred percent. So there’s a big part for me about offering opportunity through education. Once you’ve got some of the fundamentals in place, education is probably the most powerful thing. And so one of the big, I think, challenges in the world is that if you are able to go to like a prestigious university, or you’re able to get an internship at a good company where you’re getting good mentoring from people around you, it’s relatively straightforward to be able to get good at something. You still have to put effort and you have to put work in, of course, but the opportunity is there for you to thrive in that.
If you’re in a situation where you can’t afford courses, you can’t afford mentoring, you wouldn’t be able to get an internship, you couldn’t go into a formal education system, then it’s incredibly difficult for you to gain a good enough level of skill to be able to really thrive. You can probably still learn how to code from some YouTube videos or whatever, but really getting to a point where you are good enough to sort of be competitive in the industry, and actually get a really great job is a real hard challenge.
For me, providing a space and a platform that is world class in the education we provide, that’s like key to me. Exercism is free. It’s about providing opportunity. But first and foremost, it’s a world-class education platform. That’s what we strive for. But everything else is to be the best place you can go to go and upskill in your languages. We want to be really good. But then once you’ve got that, the fact that it’s free, the fact that anyone can come and get those skills and go somewhere with them, you know, can potentially open up new opportunities for themselves, get new jobs. And we’ve seen these a lot, this isn’t theoretical. We’ve had hundreds of thousands of students work through our tracks, and many of them will testify that it’s been life-changing experience for them. We’ve had this a few times recently where people have got jobs. They’ve moved into Elixir from some of the programming career they weren’t really enjoying. And they’ve gone through the Elixir track, which is one of our best tracks. They’ve had some great mentors and they’ve gone and got Elixir jobs and they’ve come back and tweeted about that or told the mentors about that. That’s super satisfying for those people.
So, yeah, there’s a big part of my personal mission, for sure, that I want to help people. But fundamentally also, Exercism is very much built by the community, before the community. It wouldn’t then, in my eyes, make sense for a small group of us to be making money off that community effort. If we were a for-profit company, then why would all of these people want to spend their time building exercises, mentoring for free if we were making money off the back of their hard work? That doesn’t feel logical, but it also doesn’t feel fair to me. It would feel exploitative to me that I was trying to monetize all of these people’s goodwill and generosity. So both of those elements, I think, fit into that. We’re hiring a core team at the moment. For the first time, really, we’ve had one full-time employee for the last three years. Other than that, we’ve been pretty much volunteers, a little bit of part-time work here and there.
So we’re now at a point where we’re hiring people for the first time, and turning ourselves, I guess, into a real company. We’ve got 2 million users just sort of very much by our bootstraps. Now we’re trying to really get somewhere. Even that poses some interesting challenges of we’ve now got people who are being paid to work on Exercism, and then lots of other people who are volunteers in that. That’s something that I’m really careful of. I don’t want to be paying one person to be doing work that someone else is doing for free. And so even in that, we need to be very careful that the jobs that someone is being paid for is a job that we couldn’t rely on volunteers to do. Because maybe we need them to definitely be there for 40 hours a week or whatever it is. Although they’re doing murky work that the volunteers wouldn’t necessarily want to do or something. So, yeah, there’s a lot to think about in this. But the community, the fact that we have thousands of people, probably tens of thousands of people that have contributed to Exercism is, I think, very much at the heart of why we have to be a non-profit, regardless of my own sort of ideological opinions on these things.
Henry Suryawirawan: That’s really a great mission of you also. I think this not-for-profit platform definitely will help people to learn new languages, learn about programming. And also for those professionals who are used to just maybe one or two programming languages to try out and learn other programming languages. So make sure for those of you who are interested to learn new programming language, just give it a try.
[00:21:19] Running Large Open Source
Henry Suryawirawan: You mentioned about built by community, right? I think before this recording, you shared with me Exercism is actually one of the largest open source program, probably. It has hundreds of repos, thousands or tens of thousands of contributors and volunteers. 55 languages, the way people build exercises, and you have lots of maintainers in hundreds. So tell us more. How do you actually run this? It’s a very big open source project.
Jeremy Walker: Yeah, it’s a great question. Firstly, I guess, there’s a degree with an open source community where you can put certain processes in place, and you can put certain strategies in place. But fundamentally, it very much comes down to the people that are going to volunteer to actually help and support you as to how all of these things play out. So I would love to sort of sit here and tell you that Exercism works really well because of some genius master plan, and there are definitely elements of strategy and some good tactics in there. The reality is that a lot of why it works is because of many of the volunteers that are there and their ideas and their inputs and the way they act.
To give you an idea of just the structure briefly. So you said quite a lot of it there. You have a few hundred repositories, I think, about 350 repositories or something. Every language has a sort of core repository where all the exercises, teaching material, concepts, those sorts of things. Then each language also has what we call a test runner. So on Exercism, you can run your code either in the browser, and we’ll immediately tell you if you’ve got the exercise right or wrong, or you can submit the exercise from your own computer, and then we check it for you in the cloud magically. But to do that, we have a test runner, which is a piece of software that every track has built out. We also then have an analyzer, which is something that will actually look at a student’s code, and try and work out what type of improvements they could make at the idiomatic level. So once it’s actually a working solution, we’ll look at the code and we’ll say, yeah, this is good, but you could do this a bit differently. And then we have another piece of software called a representer that does something similar.
So every language has those four different repositories. We have them each piece of software, and one which is a collection of all of this content. For each of those, we have sort of one to three maintainers who are in charge of that language. So they very much hold the keys to that system. They are responsible for planning out the track, for designing syllabuses, for putting maybe the vibe of that track as well, I think. If somebody chooses to contribute to one track, they might get a slightly different experience to contributing to another track. Just because different humans are the ones that are reviewing their work. But yeah, anyone in the world, anyone on internet can go and contribute to those tracks. You can submit issues. You can suggest exercises, create exercises. And then these maintainers will review them and merge them in or give you advice or whatever. And then we have thousands of mentors as well, but equally important part of the platform. Although they’re not necessarily interacting with GitHub and doing the other stuff, they’re all very much in the platform. They’re still volunteers. They’re still developers. They’ll be doing things like contributing to mentor notes, which is via GitHub as well, and other things like that as part of that. So we have a group of senior mentors who I talk to a lot, who I’ll pick their brains, who I’ll ask them questions of, I guess, formal structure.
In terms of how it works, there’s probably two real principles. One is having that sort of top-down strategy and leadership. So very much saying, this is how all of the tracks need to work for this to work as an organization. There need to be levels of consistency. We try and put really detailed specifications together, so each of the tracks is adhering to a specification. Communicating that from the top-down is really important. We have a weekly call that anyone is welcome to. A few key maintainers normally come to that, a couple of key mentors as well. And then we put that video out afterwards, and anyone in the contributing community can come watch it back, and get sort of an update on what we’re doing. So every single week, there’s like an update on what’s happened this week, maybe where we’re thinking about. And we really invite people on those calls to pitch in with ideas. So it’s that sort of top down. This is what we’re doing. We’ll also put GitHub issues out, ask very much for feedback on those issues. Really try and get consensus on things before we push forward to anything.
One of the big lessons I’ve learned is that when you’re working in a community where everyone’s a volunteer, you can’t just come in and say, this is what you’re going to do, or even this is what we’re going to do. You all have to adhere to it. That just doesn’t work. It’s rude and insulting to the volunteers, and it’s not why they’re part of it. We very much try and ensure we have consensus. One of the things I’m really passionate about is diversity. It’s getting a set of diverse opinions and ideas and everything. You see everything through your own biases, your own prejudices. Whatever they are. Whether those are things like creating exercises where we always use Western male names for characters, or on a code level, writing everything in Ruby, which is one of my favorite programming languages. Suggesting things when I’ve only really thought it through from Ruby’s perspective, but Go’s perspective might be totally different. So, getting diverse thoughts and all of these different areas is really important. We put propositions out there and try and get consensus from the community before we do anything.
So that’s one side and then the other side is very much then letting the community express themselves. Just like in a normal company, you know, you want to let your employees, your staff, express themselves. You want to let them put their own personality into their work. It’s even more important in some ways in a volunteer community that people feel that they can put their stamp on it. They feel individual ownership of what they’re doing. I try and really encouraged that ownership, as long as someone’s sticking to the spec. They’re sticking to our code of conduct and our principles. Then I try and let each track express themselves and create that track very much as they want.
And those two things often butt up against each other. You know, someone has an opinion on what they want their track to do, but that doesn’t fit with where we see Exercism going, or doesn’t fit with the specs we want to build. That’s often where the tension comes in, and we have to resolve that. Normally, the way we resolve that is just to firm up the spec. So it’s clearer, reducing ambiguities is a solution to most problems we come across. I’m aware that I’m just talking a lot and not letting you get a word in. But hopefully that sort of gives a bit of picture of the structure.
[00:27:11] Getting Consensus
Henry Suryawirawan: So I was looking for angles where I could ask you further, but you actually covered in a broad way. One aspect that I am really intrigued is you talked about specs and strategy from the top, and also at the same time, you mentioned you want to have consensus. So there seems to be a conflict where you probably, as a founder or the core maintainers of this open source, you would have some strategies and you would have some spec, or code of conduct or norms, whatever that is. And at the same time, you also want the community to actually own parts of it. How to harmonise this and make sure if there are conflicts that people get heard, but also understand at the same time, that the code of conduct or the spec is actually more important than their opinions to be followed?
Jeremy Walker: So the key thing for me in all business is the idea that when a decision is made, everyone gets behind it, that everyone gets to voice their thoughts or concerns in that decision-making process. And I think that’s fundamentally how Exercism works. So somebody, anybody can propose an idea, convey an issue, can raise a problem. We can say this is a strategic decision we’re going to take. And we’ll very much then try and have a sort of consultation period where people can feedback on that.
There’s a three-year strategy document. I wrote this sort of 15-16 pages long, that’s been circulated to many of the key contributors, the key maintainers, key mentors. They’ve written lots of comments on that document. It’s just a Google Doc. Lots of comments on that document, lots of feedback. And then I’ve sort of spent time thinking about that, amending it. So it’s big things like that. But then even small decisions. Should we change this exercise to be a little bit like this? Somebody might propose that. There’s then a window, normally a week or so, where people can feedback on that. And then at some point, we’ll try and find some decision that everyone’s happy with. But if we don’t, and we have to take a decision that some people are unhappy with, part of their responsibility is to accept that, and move on. This is what Exercism as an organization decides. This is what we’re going to do. Everyone needs to get behind it. And if there’s a decision that people don’t want to get behind, or they feel like Exercism is going in the wrong direction, then as volunteers, they can then choose to not be involved anymore in Exercism. Go and volunteer their time somewhere else. That happens sometimes. We wish them a hundred percent of the best.
But the organization and the mission have to come first. The fact that Exercism is one platform that needs to feel a coherent user experience, a coherent product that makes sense to users, that has to trump most of the things. So often we’ll take a direction, and then try and reassess it a little period of time afterwards as well, to give people the fact that if we were wrong, and somebody else’s opinion was right, then actually we made a terrible decision. We’re not arrogant about that. We’ve got something wrong, we can go and change it, even though sometimes that makes more work.
And certainly, we’ve just released a new version of Exercism, took 18 months to build. If you look at the site now, it’s what you’ll see. And there were lots of times in that where we tried something, we went down. Often, volunteers, maintainers put a lot of time into building something, and then we got further down the line and we realized we haven’t really got it right. We’d made a bit of a mistake and change the spec. And then everyone had to go and make changes to their things, and people absolutely hated me some times. I was definitely not popular part of that phase. But everyone got behind it and did it, and we ended up with a really great product that I think we’re all really proud of as part of that.
So yeah, I don’t know if that answers the question, but I think it’s that really getting opinions, really listening to opinions, really carefully considering what everyone says. And then when a decision has been made, everyone being willing to just really get behind that decision, even if they didn’t go the way they hoped it would go.
[00:30:42] Running Remote Distributed Teams
Henry Suryawirawan: The way I see it, it’s actually very similar to, if you are working in a distributed, fully remote kind of work set up. If some of you listeners who are working fully remote in async way, I think this open source model looks very similar. If you can actually put some of the lessons learned running this open source project, right? How can we use some of these lessons learned from yours to actually do it also in our common teams setup, or organizations, or for teams who are running distributed manner, and also where people are distributed and they don’t have to always have the face-to-face communications? That they can communicate through specs, through code of conducts and things like that. So maybe some lessons learned here that you can share.
Jeremy Walker: Yeah. So I’ve worked in and managed remote teams 10-15 years now. I think, especially running a volunteer team, is something I quite massively recommend anyone who wants to be a good leader does. Like find some place to volunteer and go and lead some volunteers. Because everything you do with volunteers, you have to lead them in a way they want to be led. If they don’t like you, they don’t have to volunteer anymore. And suddenly, you find that you don’t have any volunteers. So you have to find a way in doing that to lead on the basis of being a good leader on trust on listening to people and considering people. But also on still being a leader, you still have to lead. You still have to make decisions that people are willing to go with, even when they disagree with them.
So I think leading volunteers is a massive opportunity to up-skill as a leader. Because once you do that, all of those same principles, you can apply to then a normal team. Especially a remote team that you’re working with where you don’t want to be the boss that is – everyone does what they say cause they’re scared of you, or everyone does what they say because you’re paying their wages. You want people to do what you say because they trust you. They respect you. They feel listened to. They’re excited about what they’re doing. If somebody feels like what they’re doing is going to work, they’re going to do a much better job of doing it. And people feel like, okay, this is going to work. If they trust the decision-making process, the leadership, those sorts of things. So I just always try and just having everything now is even if someone’s a paid employee, imagine they were volunteer. Imagine that if I don’t get this right, they might just up and leave and that’s their right to do that, and it makes you a much better manager as part of that, I think.
Then Kaido, which is the other business I run. So it’s all around culture building. How we build great cultures in modern workplaces, especially in remote workplaces. I spend a lot of time thinking about and talking to a lot of people about. And I think the biggest challenge, especially with remote is communication. It’s how you communicate in a way that makes people feel listened to – I’m going to keep coming back to that phrase because it’s so important – makes them feel listened to, makes them feel heard. But also doesn’t just make them feel like some sort of external contractor who have been given work. One of the big challenges with remote teams is you can end up as a leader feeling like you’ve got 10 consultants working for you, and you don’t actually have a team.
And so the challenge, I think, it’s exactly the same with Exercism as well is how do we keep a sense of community amongst our team? Even though we might have very little synchronous time. And I found the key thing for that really is around shared mission. It’s around everyone being there for the same reason. It’s about setting norms between people where the way people communicate is respectful, is friendly.
At Kaido, we talk a lot about psychological safety. We talk a lot about positive conflict. So, you can disagree with somebody and it doesn’t feel scary. It doesn’t feel like an argument. It just feels like this is a psychologically safe environment. We trust each other. We can disagree about things. If I’m reading a message that someone’s written asynchronously. So they’re not there. If I’m in a bit of a bad mood, when I read it, I can see the worst in what they’re saying, and I can think, oh, this person’s just being an idiot. Actually, building a psychologically safe workplace where when they have that instinct, they sit back and say, “No, actually. They’re probably not being an idiot. I’m probably just being grumpy.” Things like that.
So an example of this. I put a tweet out last night about Ukraine. And sort of saying, we had some Ukrainian students on Exercism who had got safely to somewhere, and now we’re talking to the mentors and saying they really wanted to get back into the mentoring thing. Cause they were looking to try and get jobs in the new places and stuff as they’re refugees now. It sort of triggered me. I thought I should really put a tweet out saying, “if you know any Ukrainian refugees, please point them our way, blah, blah, blah.” And so I did that. I put that tweet out, and somebody messaged me who said “I thought this tweet was a bit insensitive.” I don’t understand why it was insensitive still, and I haven’t chatted to the person yet to understand. But, they said, “I think it comes across a bit insensitive. You know, people are struggling for food and drink and they get bombed or whatever. Asking for mentoring, Exercism seems a bit petty or whatever.” So in that situation, my initial reaction was, “Oh, stop being an idiot. I’m trying to do something kind here.” I was quite snappy in my emotional reaction to that. But I had to remember that I know this person. I’ve worked with this person in Exercism. They volunteer for a long time. What they say is normally a diverse opinion that I often disagree with. This person, I often disagree with things. But often, there’s a really good nugget of truth in what they’re saying. That when I step back and really think and listen, I find. And so, I deleted the tweet, and I thought I’ll just worry about this tomorrow.
I think that’s a big part of remote teams is having that trust of what the other person is saying. Even though I wasn’t one-to-one able to just have a video call and chat to them. It was an asynchronous communication. But knowing that even if what that person’s saying goes against what my instincts are, I still need to respect them. I still need to put my frustration aside. That’s a lot easier if you’re face-to-face, smiling at someone. You can see that humanity in the person. When you’re just reading texts that someone’s typed. It’s really hard to see that humanity, sometimes. It just feels sometimes like an attack on you. Even though it would never feel like that if it was just a normal conversation. And so, I think having that own mental discipline and that trust within a team. In that situation, everyone’s got Exercism’s best interests at heart. But also got Ukrainian people’s best interest at heart. Trusting those two things and then making a decision based on that.
Henry Suryawirawan: You mentioned a lot of good things that I can even learn myself. So you mentioned about imagine your team members or employees are volunteers. Make sure that volunteers actually want to follow you, not necessarily because you pay them, and they need to follow your orders. And then the sense of community, having a shared mission, a shared understanding and norms. I think that’s also key for me. And, of course, listen, trust and psychological safety. Those things are commonly mentioned in the day-to-day world these days. Thanks for the sharing the story as well about the tweet. Hopefully, you get to resolve that.
[00:37:00] Kaido for Wellbeing and Culture
Henry Suryawirawan: You mentioned about Kaido, right? Employee wellbeing, building culture and communications. Maybe you can share us more, why do you build this platform? Do you see a lot of challenges in terms of wellbeing and culture?
Jeremy Walker: Yeah, I’d love to. So Kaido has been an interesting journey. It was originally started by my co-founder, who was a professional tennis player. He had just left professional sports, and he felt that there’s a whole load of stuff in professional sports that could be applied to normal workplaces to create better teams, like the way that professional sports teams work. He’d been working, I think, as a consultant with one of the leading rugby teams here. He felt that there was so much there that could be applied. So I got involved in that originally just doing some consulting a few years back, and we were looking actually at it from a AI, Artificial Intelligence, perspective.
I tried in the things I do be very product led and feedback led by the people we’re giving stuff to, and we talked to a lot of customers. One of the things that we really just discovered was actually, there’s a whole load of just basic things that most organizations don’t do, and that most probably individuals don’t know. We felt that there was a big impact we could have around just trying to raise the profile of wellbeing in companies. Provide a wellbeing solution, a wellbeing platform that people could use. We started off doing wellbeing challenges. So, four week long challenges where basically everyone in the company split into teams. They spend four weeks trying to each get healthier. We look at sleep, nutrition, physical health, mental health, and we spend a bit of time giving people things to do every day.
One of the key things is we get people to reflect at the end of every day. How has this thing affected me? How has it helped? How has it not helped? How am I feeling? And this wellbeing challenges have been really successful. We’ve worked with some of the biggest companies in the world now. Today was the last day of HSBC having a challenge across Asia. We had about six and a half thousand employees from HSBC on this challenge. All in little teams competing to get healthier. It was spread all across Asia. 89% of people who use Kaido say it makes them feel healthier. They can see some meaningful improvement in their health.
But then, one of the things we really noticed was that some of the other stats that we were asking questions about were equally impressive. Especially those around teamwork, and around how you feel in relation to your colleagues and other such things. And what we basically realized was Kaido was doing a great job of impacting people’s health. But actually, it was also bringing people in teams. We realized that one of the key reasons was because people were just having something that wasn’t their work to talk about. There was a shared context, shared conversations that were happening that broke through sort of the hierarchies within teams. It wasn’t just a manager talking down to their staff. Everyone was on the same level playing field with this. You only have to do 10 minutes a day with a Kaido wellbeing challenge. But just that 10 minutes a day gave people something to talk about because they all knew. We have a whole load of silly things. One example is you have to eat the rainbow. So you have to make a meal once in a week that has every color of the rainbow on the plate. And so the next day, everyone goes to work, and they were sort of saying, “Oh, what did you put on your plate? Blah, blah, blah.” And everyone’s sharing ideas. We have some group activities and stuff as well. Like we get people to go and do a litter pick, for example, and that’s one of the most popular things. People just go out and they just do a litter pick. It’s probably isn’t an issue for you in Singapore where it’s incredibly clean, but if you’re in England, we definitely want to be going out and litter pick with your teams. So, yeah, lots of stuff like that, that just got people doing things together.
At that point, we sort of pivoted our focus. We still do wellbeing, but we’ve really realized that culture is something that we can impact. And we’re just launching this new set of products now, which I’m super excited about. We’ve been working on for ages. We call it experiences. They’re all centered around the UN sustainability development goals. So the idea is to give your team, give your company a week-long mission centered on something important in the world. So the first one, for example, is on plastic reduction. Basically, everyone on the team gets a week where there’s a focus within the company on how do we reduce our plastic usage. Both as an organization, but also as individuals. So we have a whole load of fun things that we’re getting people to do. We’ve got plastic bingos that you do throughout the week where you are spotting every time you use plastic and trying to work out how to recycle it. Setting up recycling stations at home. If you don’t have them, or if you do, we’ve got like loads of tips. Things like going on litter picks and finding photos of the most weird litter you can find and stuff. Just things that get people talking. But then actually also mean that at the end of that week, you will have made a tangible impact on your personal impact on the environment, and also as a company. You will have had loads of conversations, you’ll have had fun with colleagues. You will have interacted with people that you wouldn’t normally interact with.
And then we’re also as the third sort of part of what we’re building out is the kind of culture academy, which is centered around training. So one of the things that we’ve done for a long time now is give only short sessions, but short culture building sessions to a whole lot of champions in a company at the start of when they start using Kaido. And what we’ve really understood is that culture works. You need culture coming from the top down. You need the people in management agreeing to values, agreeing to those things and putting them down. But you also need that culture coming from the bottom up. Because culture in a company really is the shared experiences. It’s the shared language. It’s the shared relationships between people. It’s the norms, as you said, within a company that make up the culture. You need people in the company that are aware of these things, that can see when there’s a situation or a team where there isn’t much psychological safety, and that know how to impact that, know how to make a positive difference.
And so what we’re doing in the Kaido culture academies is giving training to just normal, in inverted commas, employees. People with no HR background. Nothing like that, but who are just interested in making a great place to work. Helping them understand what really good culture looks like? How to impact it? How to recognize when bad things are happening and impact them? And then through both training at the management level, but also there’s training the bottom up, bring culture sort of coming from both sides within the company.
So that’s where we’ve got to with Kaido. We were a startup. We’ve just taken some investments. It feels like a super exciting stage. You’ve got companies from like 50 people, all the way up to companies like HSBC with tens to tens of thousands employees just from that one company now. So it feels like we’re impacting people across a really broad range of companies, some remote, some in-person. There are huge amounts of challenges and work in there. But to me, a good company culture feels like it’s a human right. You go to work and you actually enjoy being in that place. You feel like it’s a safe place to be. And then, out of that, you’re also productive. You also do good work. You also benefit the company. You benefit each other. And then hopefully, if you’re working for a company with some good mission, you know you’re benefiting humanity as a whole and the planet as a whole. Something I’m really passionate about. It sits very well with my values. We’ve tapped into quite a few things where I feel like we’re really making a meaningful impact at this stage, which is super exciting.
[00:43:40] Tips on Personal Wellbeing
Henry Suryawirawan: Some of the challenges sounds really fun. I’m even interested in some of these weekly challenges. You mentioned wellbeing challenges. You mentioned four different focus areas that you normally focus for the wellbeing challenges. So those are the physical health, mental health, sleep and nutrition. Maybe you can tell us more, how do you actually use this for people who are not part of Kaido platform and for them to also improve their personal wellbeing? Can you tell us some tips around these four areas?
Jeremy Walker: I can. I mean, my first advice is to get your company to sign up to Kaido. I try not to advertise, but you should definitely have a look at Kaido and give it a go because it does some really good things.
So we focus on these four areas. There’s three different sort of things to all of them, really. So one is developing a good understanding of how things affect you. Just making sure you’ve got the basics covered in your knowledge. Understanding that actually having blue light two hours before you go to sleep, whatever, is a really bad idea. And it’s not just something you see on the news. It’s actually a really bad idea. It will massively affect your sleep. It will affect like the first four hours of your sleep, and you will then wake up feeling tired the next day. And then because you wake up feeling tired the next day, you’ll drink more coffee. The cycles that come out of this. The same with some of the exercise stuff. There’re a lot of fundamentals that some of that we don’t know. I always find it interesting to discover things. I learn all the time from reading Kaido’s content. So the first is all about that knowledge stuff. So really helping people do things.
I always think that Kaido’s magic sauce is that we remove the need for willpower. So the hardest thing with most wellbeing stuff isn’t the knowledge or the desire, it’s the willpower. At the end of an exhausting day when you’re tired, reaching for your phone or putting the TV on and watching something, that’s like the easy thing to do. You’re exhausted. You’ve got no willpower left. Your brain’s not as effective. It’s hard to make hard decisions at that time. Like, not having a hot chocolate or not eating for a couple of hours, or not staring at blue light. So one of the things that I think Kaido, its magic sauce is because you’re in teams, and because you’re all like committing to not doing whatever it is that day. So not having blue lights two hours before bed. It takes away the willpower because instead, you’ve got accountability to each other. And actually, you often only need one night where you suddenly have the best night’s sleep you’ve had in a month because you didn’t have any caffeine after like 6:00 PM, and you didn’t have any blue light. And suddenly you’re like, wow, that was the best night’s sleep I’ve got. And the next morning you wake up and be like, I’m really going to stick with that. Often, it’s just that first little step that gets you over. The accountability piece, I think, is a really interesting one. As I said, Kaido makes it sort of easy because it’s gamified. You’re in a team. You want to do the right thing by the team.
But outside of something like Kaido, some sort of accountability, I think, is a really good way of achieving the same thing. And that can then be around anything. It can be around nutrition. It can be around reducing your salt content. It can be around a bit more physical activity. It could be around doing meditation. We point people to Headspace, and to Mind and to Calm and a few other apps where you can just do 10 minute meditation every day for free. Actually, doing a 10 minute meditation has a huge impact. It really does. It’s a massive impact. You can see it on MRI scans. It’s a really easy thing to do. But again, you need to use willpower at some point in your day to do it, and we’re all low on willpower. So having somebody where you’re accountable to that person. The other thing that works for me really well is streaks. So I don’t like to lose a streak. I did Headspace for 400 days in a row because I didn’t want to lose the streak. The day I lost my streak with Headspace was like the worst day of my life. So I have quite an obsessive personality in that way, so those things work for me. But there are apps you can get where you can just build your own streaks around things as well. So whatever it is you’re trying to do, the thing is that you’re trying to impact, trying to build streaks, trying to build accountability. I find those sorts of things work well.
The third bit, very briefly, that we find with Kaido that works really well is this reflection piece, where at the end of every day, you reflect on what you’ve done well. Maybe we should have done a bit better. You note how the things that you’re doing are impacting. This is the thing that sounds the most boring and pointless. At the end of it, nearly every person that completes Kaido says it’s been the most impactful part of the whole thing. It’s phenomenal how much if you take time to reflect and look back, that makes a massive impact on you. We think about writing a diary each day. That’s not really what we’re talking about. Very functional, very like this is what I tried. This is how I feel. This is the effect that puts in that chemical in my body sort of did. We’ve got dozen of times the works of William Shakespeare now in terms of people’s reflections to go and data mine and understands and really interesting set of data there for us to look out. But the short-term to immediate impact for people with that has been huge as well. That’s something I’d highly recommend that people try and do.
Henry Suryawirawan: Thanks for sharing these principles. So I’m learning myself as well. Personal wellbeing is something that I sometimes get off tangent because of work, producing podcasts and all that. First, I think you mentioned about understanding the knowledge why things matter for you. For example, exercise, sleep, blue lights and all that. So getting a good understanding why certain things affect you. I think that’s really important. Second thing you mentioned about willpower. I think at the end of the day, where you’re exhausted, you don’t want to think about exercise. You don’t want to think about eating healthy food. So I think where the part that can help you is like accountability and having that kind of gamification like streaks to help you go through that willpower struggle. And then the last thing, of course, a reflection. Thanks for putting that in as well. So some people think of it like journaling at the end of the day. Just reflect or maybe just even write things that you are feeling about on that particular moment. So really thankful for that sharing. I hope people here learn themselves as well, so that you can also improve your personal wellbeing.
[00:49:13] 3 Tech Lead Wisdom
Henry Suryawirawan: So Jeremy, thanks so much for your time. I think we could talk even more about both Exercism and Kaido. But unfortunately, due to time, we have to wrap it up. But I have one last question for you that I always ask all my guests, which is to share about three technical leadership wisdom. So maybe this could be from your journey, maybe from your experience, or maybe just some gist of wisdom that you just want to share for us to learn from.
Jeremy Walker: Well, thank you for the time as well. It’s been nice to chat. A piece of leadership, I think, there’s lots there. The thing I’ve probably said the most in the podcast and the thing I should just keep coming back to is to listen. I think there’s very little that’s more important than listening to those people you lead. To listen to what they’re saying and to reading between the lines as well. You know, in Japan, they have a phrase which, I think, “reading the air”. It’s not just what the person is saying, but it’s what’s around that. The more carefully you listen, I feel like the better decisions you come to. The more people you listen to, the better the diversity of opinion is, the wiser the decisions you make are. And also, the problems that you can avoid very early if you listen carefully to everyone. I think that’s just the biggest thing for me. The more you listen, the more you learn, and the more you learn, the better you become at everything, I guess. Of all the skills I think you can learn as a leader, that’s the one I would just really focus myself in on, I think.
So a growth mindset would be the next one. As part of that listening, you know, be want to learn yourself, want to change your opinions, treat being wrong as a really exciting opportunity to learn something. Treat people disagreeing with you as a really exciting opportunity to realize where you haven’t fully thought something through. If someone disagrees with you, then you’ve either got something wrong or you’ve not communicated why you’re right. It’s normally one of those two things. So yeah, fostering a growth mindset is crucial.
If you’re leading a product team, then always focus on what the user wants. If you build a good product, the users will come. With Exercism, we’ve got just under a million users. We’ve never spent a penny on marketing. Every single user that signed up has come from word of mouth. And that’s just because we built something that people actually want. It’s the same with Kaido. People keep coming back and using it because we’ve got a product that people actually want. But then, if you’re not building a product business, or you don’t have users in your role, or that’s not part of you, then focus on your wellbeing. Focus on your mental health to get a good night’s sleep. Focus on what you put in your body and what you eat. Keep moving. Don’t just sit, squat over in a chair all day and get back problems. The more you move, the healthier you are, the smarter you’ll be. The happier you’ll be, the less grumpy and snappy at your team you’ll be. It just all flows from there. So, that’s my final notes to leave you on. Get your company to sign up to Kaido so you can get your wellbeing in order.
Henry Suryawirawan: Really a nice plug at the end there. For people who want to follow you, Jeremy, or even to follow up this conversation, or maybe they just want to be part of the volunteers of your great mission with Exercism, is there a place where people can find you online?
Jeremy Walker: Yeah, sure. So for Exercism, we’re exercism.org. For Kaido, kaido .org. If you want to get in touch with me, you can email me either of those two domains. So Jeremy@Exercism.org , or Jeremy@Kaido.org . I’m always happy for people to email me and have a chat. If you want to get involved in Exercism, probably the best starting point is to go to the website, and there’s a bit at the top under contributing that you can see.
But also if you’re technical, GitHub.com/Exercism is our organization. There’s lots and lots of repos. But you can go to GitHub.com/Exercism/Exercism, double Exercism, and that takes you to sort of a catch-all thing. You can open issue there. If you’ve got any questions or thoughts or ideas, and somebody in the team will get in touch.
If you mentioned that you heard me on this podcast as well, I’ll probably reply myself. So those are probably the best ways. I’m also on Twitter. Everywhere online, I’m IHID, I-H-I-D. You can follow me on Twitter. I don’t really use Twitter much. But if you follow me there, then on the occasional time I do tweet, you will find out about it. Those are some of my places.
Henry Suryawirawan: So I suggest people who want to learn new programming language, just check out Exercism. I found it interesting myself. I tried a few of the exercise. I think it’s really cool. And the UI, the UX is really great as well. It’s a really fun experience. At the end of the day, you master another language, right? So I think that’s also a win-win.
So thank you so much for your time, Jeremy. I wish you good luck for both the platform Exercism and Kaido because I think it affects so many people in the world for their better lives.
Jeremy Walker: Thank you so much. I’ve really enjoyed chatting to you.
– End –