Cup o' Go

For more info, transcripts, and all the links, visit https://cupogo.dev.
This show is supported by you! If you feel so inclined, please become a member of our Patreon: https://www.patreon.com/user?u=52571196

Creators & Guests

Host
Jonathan Hall
Freelance Gopher, Continuous Delivery consultant, and host of the Boldly Go YouTube channel.
Host
Shay Nehmad
Engineering Enablement Architect @ Orca
Editor
Filippo Valvassori Bolgè
Sound Designer / Audio Editor based in Milan

What is Cup o' Go?

Stay up to date with the Go community in about 15 minutes per week

Shay:

This show is supported by you. Stick around to the EDWEC to hear more. This is cupago for April 12, 20 24. Keep up to date with the important happenings in the Go community in about 15 minutes per week. I'm Shay Nehmad.

Jonathan:

Yes. That That means you.

Shay:

Well, it means you in the same sense that, you know, when the community does well, you like it being you. But when it's not, it's like when you're driving in your car and there's traffic, you you don't consider yourself part of the traffic. Right? You're just like, why is that traffic? Like, you are traffic.

Shay:

Of course, this is not a problem for you, Jonathan, living in the magical world of, bicycles over there in the Netherlands.

Jonathan:

Bicycle traffic is a problem. Trust me.

Shay:

What do you mean? How so?

Jonathan:

Oh, Especially if you're in a car. But even as a pedestrian, there's just they come out of nowhere and you can't hear them coming and you don't know. Especially the drunk tourist bicycles. Those are the worst.

Shay:

I can't believe even in the utopia of bicycles that is the Netherlands, there is traffic. It just, like, blew up all my dreams, basically. So today, we're gonna talk about, the Go survey. We're gonna talk about some meetups. We're gonna talk about some blog posts.

Shay:

But I sort of wanna preload it with, you should stick around for the interview today. Yeah. We have something that's kinda different. We talked to Bill, Bill Kennedy, who you probably know from the Go Slack or maybe you saw him, you know, in some video you watched about Go. He's that guy with the what's the hat brand thing?

Jonathan:

The Hannah hat. We're Hat Cousins or something. We both wear the same brand of hat.

Shay:

Yeah. So, we have an interview with him and sort of following that conversation and the conversations we had this week in general, we decided to theme this episode around community. So we're not gonna have a lot of code, the deep dives, it's gonna be a bit different. And what are we starting with?

Jonathan:

We're We're starting with the dev survey results Mhmm. Which could come in. This is a twice a year survey. We hope you participated. We'll be talking about that in a moment, but the results are in.

Jonathan:

The survey was done just a few months ago. We talked about it then. Now it's been done and we have the results.

Shay:

And I really think, you know, like always with this sort of summary that we give, if you are actually interested in the results, there are graphs, there are numbers, go read it yourself. But we we were kinda surprised by some of the numbers, some of the things we saw. So we actually opened up, as a comparison, 2019. Right? So we we're gonna make a lot of comparisons to the survey from 2019, and we didn't pick that survey by accident.

Shay:

It's we picked it because it's like the year before COVID. Right? Which was a pretty good year for communities, go meet ups, stuff like that before everything, got shut down. And there's a lot of interesting, comparisons to be made. But the first one, that was surprising to me.

Shay:

You know, at the top of the survey, it says, like, we received a total of 6,224 responses, which is a lot. Right? It's not an insignificant number. And I was sure that I was going to open the 2019 survey and I was gonna see less, but that's not what happened. I we opened the 2019 survey.

Shay:

And in 2019, there were 10,000 almost 11,000 responses. I think it may have been an outlier year because in 2018, it was 5,000. So maybe 2019 was, like, a really really good year for Go and an outlier. But I don't know. I was sort of surprised.

Shay:

Jonathan and I were puzzled. I asked Jonathan if he thinks, Go is on, is like on some downward slope of engagement. I don't know. What do you think?

Jonathan:

I think there's probably some survey fatigue going on. If you look back just more recently into 2023, we had 2 surveys then. The first one had 5,000 844 responses, and the second one of the second half of the year had 4,005 responses. So that went down drastically, and then this one has gone up again. I think you pointed out that, Versus code is now prompting people to do the result the the survey.

Jonathan:

So that likely increased the number of responses, but it probably also skewed the responses somewhat towards whatever demographic of people use Versus Code versus whatever the average might be. Right?

Shay:

Yeah. Also, in 2024, not only the Versus Code, Go plugin had responses, also Go land from JetBrains.

Jonathan:

Okay.

Shay:

So, you know, from Versus Code is through the plugin, so it's not like anybody's sort of helping.

Jonathan:

Sure.

Shay:

But for Golang, it's JetBrains being, like, yeah, we wanna help the Go developer survey, you know.

Jonathan:

So without data to support this hypothesis, my my impression is that probably means we have more first time responses, this survey than the past and less hardcore Go developers responding. These these are likely we likely got a certain number of people who just happen to notice the prompt. They use Go at work. They aren't necessarily they don't consider themselves hardcore Go developers or whatever. Whereas in the past, we probably attracted more of those hardcore type folks because it was the Go team themselves doing the the publicity.

Jonathan:

So I don't know. I don't know what that means. Yeah. But it's interesting to see these numbers change a little bit.

Shay:

Now, if you remember, it was a few months ago. But if you remember, you know, you filling out the survey, it was sort of the same experience of filling out every survey, this past, 12 months, like the Slack the Stack Overflow survey or, even like surveys at work, where the main question people ask you is, hey, how do you feel about AI? What do you do with AI? How are you how are your AI things going on? And it would be a really bad time, I think, to take a 2 year, sabbatical from programming, coming back and discovering every single thing you need to do.

Shay:

Either has to be about AI or use AI or I don't know. Something has to justify NVIDIA's stock price. Right? So many of the questions were, you know, all about AI and we're definitely gonna get into that. But we did find one interesting metric we wanted to share, about education.

Shay:

Where do people, want to learn Go? Because a part of the survey, I think the question goes something like what's, how do you prefer to learn Go, the most and what's the biggest challenges you have when learning and, you know, where people are in their sort of learning, journey about, Go. So first of all, the the biggest challenge is time and personal limitations, which is almost 44% of people.

Jonathan:

Which is a great news for us because we have a podcast you can listen to that doesn't take much time. You can listen to it on the bicycle if you're in Amsterdam or in traffic if you're anywhere else in the world.

Shay:

Or if you're but not if you're in the the bicycle traffic because we want you we want you to pay attention, not run everybody over. Right. Right. But honestly, like saying the biggest challenge is time for for learning, you know, from you reaching your learning goals, to me is sort of missing the point. You have finite time and it's always gonna be that case.

Shay:

Now you can optimize. Right? You can listen to us talking in, in double speed, or you can skim through a blog instead of reading it, or you can read a book on the train instead of, you know, watching YouTube. Like, I don't know, watching TikTok or whatever. Non educational content.

Shay:

That's all I'm saying. So you can try to make the pie a little bigger or you can try to make every slice a bit more tasty, if that makes sense. But end of the day, if you can't learn Go because of, time limitations, it's it means that you're probably investing in something else. Right? And I think that's solely fair.

Shay:

We have this podcast. The reason we originally set it up, is to, you know, to make sure we're on top of go and we're learning. And at least for me, that's a super that's been a super big highlight. I can come to work and talk to people about, yeah, Go, the next version of Go is gonna have a Rangeover funk. That's so cool.

Shay:

Let's talk about that and actually know what I'm talking about. And even this survey. Like, Jonathan and I wouldn't have, like, read these results so deeply if we didn't need to analyze them and, like, summarize them for y'all. Yeah. So I don't know.

Shay:

The the time thing, what can the Go team do? They can't give respondents more time. Right? The only thing I can think of is making shorter tours, like interactive things, things that you can work with faster. But I feel always feel like the Go blog posts are too short, not too long.

Shay:

I think it

Jonathan:

would be more honest to say it's not a lack of time, but it's a lack of prioritization. And and that feels, I think, more honest and also less problematic. Like, if I choose not to learn go, who are you to tell me that I should choose something differently? Right? Who are you to tell me that I should prioritize learning go over whatever else thing in my life?

Jonathan:

Time with my family or learning rust or who knows? There's a 1,000,000 things we can choose to do. If you don't have time to do something, it's it's really just because you're choosing not to prioritize it. And that can be perfectly legitimate, and it's not a problem to be solved when framed that way in my opinion.

Shay:

We're we're having that debate at work right now, so it's really interesting where I have a list of things we wanna run through the learning and development, like, initiative, me, HR and me. Right? And we have, Go for Python developers. That's one, like, line there on the on the prioritization list. Right?

Shay:

But we also have Rust for Python developers, which is relevant for us because we write the Rust extensions. We have Kafka. We have Postgres. We have code review workshop. We have effective AI, you know, usage, how to utilize the Chargegpt and Copilot, time management.

Shay:

Like, there's a whole list of that's actually the entire list. There's a list of things people need to learn. And when you build out that plan and, you know, you only have so much budget and so much time you're you're willing to put into it, it's not even personal, you know, when you plan it for an organization, it is hard to justify learning all the things all the time. You do need to prioritize. I don't know.

Shay:

I found that very kind of, knowing that it's the outlier answer by a lot. Like, time is the biggest, reason I'm not reaching my learning goals. You just need to pick what you learn, and I feel you, man. Like, I wanna learn Rust. I wanna be as good, in Rust as I am in Go.

Shay:

My little brother is, learning Rust right now and it's absolutely grinding my gears that, he's gonna know a programming language better than me. I won't be able to sleep at night if he finally figures out the borrow checker, and I haven't figured that out yet. But I know what my time limitations are and what do I wanna invest in this year. Maybe next year. You know what I mean?

Shay:

So definitely, I want if there's one thing to take from it, it's maybe that if you're making Go, learning materials, if you're at the other side of the fence, make sure you make it time efficient. Get to the point and then make it fast in in Python, JavaScript, or or Closure, or whatever you have the REPL, and many things are, oh, just run it and play and whatever. A lot of ghost stuff is start building it and and then you you end up with the thing. For example, like, Cohen's. I've seen really good Koans in many languages.

Shay:

My wife is doing Kotlin, Koans right now. I haven't seen any good ones for Go. You know, that could be a cool thing. What survey result popped out as interesting to you?

Jonathan:

Well, the very first one actually is is the one that gives me the biggest head scratching. Overall, how satisfied or dissatisfied have you felt with using Go during the past year? And the the I think they've asked this question, I don't know if every time, but certainly frequently and always gets high marks. 93% said they're satisfied. 3% neither satisfied nor dissatisfied and 3% dissatisfied.

Jonathan:

I really have to wonder if 93% of people actually let go that much because if you don't let go, are you really filling out one of these surveys? I mean, let me just put myself in in the situation of somebody using, let's say, Versus Code for a language I don't like. Let's say, PHP. I'm using PHP and I get this will pop up. Participate in the PHP developer survey.

Jonathan:

I'd be like, screw you. I hate PHP. There's no way I'm doing that. Yeah. And so I don't really think we're getting a valid, you know, I I don't think this answer is necessarily very meaningful.

Jonathan:

And that also calls into question a lot of the other, answers too. If the people who who hate Go for whatever reason, legitimate or otherwise, aren't answering the questions about how do they learn Go or do they have enough time or whatever. Maybe they have all the time in the world, but they just can't get over some hump, and and they're so frustrated that they they've abandoned Go until we don't hear from them. You know, I I have to wonder.

Shay:

I think the in the past, the Go team did NPS.

Jonathan:

I hate that.

Shay:

Yeah. But I think it's, you know, it's a better measure just because it's slightly more standardized. So NPS is called net promoter score, and it's basically 1 to 10, How likely are you to recommend x to a colleague or a friend? We should do NPS for, for Cup of Go.

Jonathan:

We will never do that. I will quit the show first.

Shay:

Don't you wanna run NPS just for this episode just to to prove the point?

Jonathan:

No. Okay. Okay. NPS is utter crap. It has no validity whatsoever in any sense, in any time, even though standardized, it's standardizable crap.

Shay:

What do you mean? I've I've I've really surprised to hear you say that. It's basically a 1 to 10 how likely are you to recommend it? What's invalid about the question?

Jonathan:

Everything. I can talk about this for an hour. Let let

Shay:

Just give me the cliff notes. I'm interest

Jonathan:

The question means something different to every person you ask. Let's start with that.

Shay:

Well, doesn't are you satisfied or dissatisfied while using Go feeling the the like, also very subjective? Like, some people are dissatisfied with

Jonathan:

programming in general.

Shay:

It's just a job. They don't really like it. Sure. They just do it. Sure.

Jonathan:

But okay. Shai, how likely are you to recommend a cup of go to a friend or colleague?

Shay:

Me?

Jonathan:

Yeah.

Shay:

I don't know. Like, 7? I don't really like to talk about the show because it feels so weird.

Jonathan:

What does that mean? What does 7 mean? Are you likely to recommend it to 7 out of 10 friends? I guess Is there a 70% chance you'll recommend it to a friend in the world?

Shay:

What does that mean? I guess there's if someone talks to me about Go, there's 70% chance I'll I'll mention the show if we talk for, like, a few minutes.

Jonathan:

Oh, okay. How likely are you to recommend this show to your mom?

Shay:

I actually did, but she doesn't.

Jonathan:

See, there now that's interesting. That's a useful question. Did you recommend Cup of Go to somebody in the last 12 months? That's far more valid than would you recommend this to a friend or colleague in the future.

Shay:

I I understand what you mean. Yeah. Yeah. Now I see what you mean. I

Jonathan:

could go on and on. I I've actually read a lengthy blog post about how crappy NPS is.

Shay:

And we will link that in the show notes. And please, tell Jonathan from 1 to 10 how likely are you to recommend that blog post to a friend or colleague?

Jonathan:

How likely are you to recommend I get a new co host?

Shay:

Okay. Okay. I get it. In the past, in the even though it's sorta invalid, when you look at the NPS thing, right, you see that, 7% like wouldn't recommend, 27%, are passive and, you know, 67% are promoters. Whatever that mean.

Shay:

I I I think it basically maps it's also under the same title of like sentiment towards go. It's a different question, but it's, you know, the the results are are more reasonable to to what I'm feeling, where in every team that I've worked in, let's say there's a team of 10 people. Right? If we are working in Go, most of the team is super into Go. Right?

Shay:

They like it. They like the fact that it compiles quickly. They like doing code review. They like writing libraries in it and and writing tests. They enjoy the work.

Shay:

So you'd have like 8 7 people who are like that. 2 people like whatever man. It's just a tool. I'll do whatever. I don't care.

Shay:

And one person who who doesn't get it or doesn't like it or came from, you know, a super different background, then they wanna keep working with that background. Like, people who come from functional languages really don't like Go or people who are super into high level languages sometimes don't appreciate the fact that they have to do, like, a pointer or whatever. And that doesn't carry in the developer sentiment. I I I agree with you that it doesn't it doesn't track with what I know that 93% of people are super happy about working in Go. That's not the what I'm getting anecdotally from talking to people who work with Go.

Shay:

Yeah. By the way, especially, at work where Go is not the main language we use when I don't know. When you're a minority and you have to deal with all the Go language maintenance stuff, people are are less satisfied, I would say. So there's not a lot of difference from last year, but I I agree with you. This question is is is a hat scratcher.

Shay:

It's kinda weird. There's another interesting metric they added this year, which is trust.

Jonathan:

Before we move on, since we've talked about NPS, I wanna point out one other flaw with NPS, we could be relevant to what you just said. So you pointed out this percentage of promoters versus passive versus detractors. If I told you that I was a 6 on the 1 to 10 scale for NPS, where would I fall in that group? Would I be a promoter?

Shay:

Assume a passive.

Jonathan:

Passive or detractor. Detractor.

Shay:

Oh, really? Okay.

Jonathan:

Yeah. There's another reason NPS is complete bullcrap. 0 through 6 are detractors, 7 and 8 are passive, and 9 and 10 are promoters.

Shay:

Oh, so I guess it it it does track with the current result. It's just I didn't know it worked that way. It's not intuitive, I I would say.

Jonathan:

Exactly. And what's worse than that in particular is that it doesn't show anything about the distribution. If you you could have like a huge, like, if you had a a rent, a standard distribution of people, you know, with a peak at 5, and then, you know, try, you know, it it lower levels off towards 0 and 10. You could have an in a negative n p s score even though everybody's basically happy with what you're doing. So it it it's it's really it's statistically crap.

Jonathan:

The question is psychologically crap. Everything, literally everything about n p s is crap. Never ever ever use n p s. I'm done with that right now.

Shay:

Just to clarify, NPS was 2019, and it didn't appear on this, year survey. So I guess, the Go team figured it out.

Jonathan:

Thank you, Go team, for taking that off.

Shay:

Yeah. Yeah. They did introduce a new question, which is about trust. How how much trust do you do do you place in the Go team, to do what's best for Go users, like yourself? I'm wondering, Jonathan, what answer did you give?

Shay:

If you're okay with, sharing.

Jonathan:

Okay. The question is the statement is, I trust the Go team to do its best for Go users like myself. The options are strongly agree, somewhat agree, neither agree nor disagree, somewhat disagree, and strongly disagree. I would probably say somewhat agree if I were to do it today.

Shay:

So when we started the podcast, one of the first things, you know, I guess major news stories or whatever, we covered was the telemetry thing. Can you quickly remind the listeners if they or maybe if they missed, you know, that episode or maybe if they joined recently, what am I talking about?

Jonathan:

Yeah. So the, the proposal was to initially, it was to do some automatic opt out, telemetry, about how the Go tools are used and and things like that. Which build flags you use, which operating systems you compile for, things like this. And I got a huge kickback, pushback, and and they changed the proposal to opt in. So they're still gonna do it.

Jonathan:

They they are doing it now and go, please. It will probably be doing it in other tools as well, with an opt in

Shay:

option. And overall, that whole interaction changed my answer. That would have been, like, somewhat agree or, you know, neither agree nor disagree because I I don't like Google very much, you know, as a corporate entity, alphabet I should say, into a strongly agree. People who can back away from their decisions and just be, you know, humble and and listen to the community, totally changed my perspective on the Go team. That even when they do things that aren't the best for Go users like myself, I know that their intentions are to do the to do so.

Shay:

So my my whole thing changed when when the telemetry proposal, has been basically, you know, retracted and then opt became opt in. I really, really like that. And after that happened, I've, you know, it it come I'm a 100%, trusting the team to do the correct decision. I also think that, you know, if you don't feel like the Go team, does what's best for Go users like yourself, you know, the 2% that wrote strongly disagree, I would ask myself if the problem is the Go team or the problem are, like, what what you need is best. You know what I mean?

Shay:

If your needs from a programming language is a 100% don't lined up with what the Go team is doing, maybe Go is isn't the language for you, you know. It's not a good fit and that's also fine. I can't imagine working in a language that where I say I super don't trust the leadership team. When we originally had to pick a language for my previous startup, Rust just went through a lot of problems in leadership, you know, Mozilla cut the team in half, and there was some shenanigans with the license or or whatever with the, governance model. There was a fork of Rust.

Shay:

It was like a whole real ugly mess. And the CDO and myself looked at one another, like, yeah. Rust is cool, but we are not gonna build a company on, like, a thing we don't trust. So if you're at the 2%, I would either either find a way to your trust maybe by talking to these people via GitHub issues, they are eloquent and nice, or by, you know, figure out where you should, go. I honestly think for for your own sentiment.

Shay:

Right? I I would feel bad working in the language and being like, oh my god, what's gonna happen tomorrow? They're gonna release something that's gonna mess up my work. So there's a lot of AI stuff that we have to go get to. Right?

Jonathan:

Yeah. Let's let's switch gears to talk a little bit about AI since that's kind of the theme of the year of the the last several years, I guess. Shayan, I'm curious. At your work, is your organization building or exploring ML or AI based services or applications?

Shay:

So when I filled the survey, I said, yes. At Orca, we, have page on the UI that's called, like, or discovery or whatever, where you can search for through your whole cloud environment. Right? You can find all the, VMs. And when you try to build really complicated queries, customers had a lot of, problems doing that because we have our own, like, SQL like thing language.

Shay:

And, while it's very powerful, people had issues, you know, writing very complicated queries. And someone on my team, who's the director of AI Innovation at Orca, just wrote a thing that does that using AI. You write in, you know, natural language. You can write in any language you want. Many of our users, you know, they they write a query in Portuguese or whatever.

Shay:

Can you please find all the machines that have sensitive information on them and are also publicly accessible via port, whatever? And then it using generative AI, it generates the thing for them. So, yeah, we do have an AI, application production. That's just one of many. That's one of things we have on the team.

Shay:

And it's not

Jonathan:

in Go, unfortunately. Oh. So it's interesting that the the question doesn't actually ask if you're doing this with Go. Right? So it's a Go developer survey.

Jonathan:

I kind of assumed that it was talking about are you doing m l a I with Go, but you just gave this long answer. Like, you are doing m l a I, so yes. But you're not doing with Go.

Shay:

So they're they're sort of working they're they're working the other way around. They're starting from, you know, are you working in AI? Then they're asking which models are you using? Which APIs are you using? Like, are you using, Cheggupt?

Shay:

Are you using Mistral? Are you using Llama? Are you using, Gemini? Like, whatever. And only, like, are you using it for summarization, text generation, retrieval, like, where are you using these, models and tools?

Shay:

And only then are they asking, you know, are you using Go for, like, various parts of the tech stack that involves an AI application. So they're asking for the API endpoints, are you using Go? For the data pipelines, are you using Go? For prototyping or experimenting with the AI features, trying to integrate services with the AI models, testing and, you know, final like testing AI systems and finally, you know, integrating them with non generative AI models. So I guess just normal prediction models.

Shay:

And overall, almost, in every single facet of this, most people aren't, using Go. Either they they're they're not using Go or they're blocked from using Go because it's not the lingua franca, right, of that domain. So I'll

Jonathan:

talk about this in a moment, but we just had our Amsterdam Go meetup recently in, one of the presentations was about a tool called Hugo, which is all about m l a I stuff in Go. So I'll talk about that in a few minutes, but I thought it was really fascinating, talk.

Shay:

But isn't Hugo, static site generation in Go?

Jonathan:

It is. This is a different Hugo. It's spelled with a t. It's the French spelling of Hugo.

Shay:

Where does the t go? It's like hugot?

Jonathan:

Yeah. It just spelled like hugot.

Shay:

I got it. I got it. Okay. The question that I found interesting in the AI part is, you know, if you would wanna use Go using an AI powered application, whatever that means. 250 people answered, which is not a lot.

Shay:

But two main reasons that that make up basically 72% are the ecosystem is Python centric or lack of specific Go libraries, which I guess is sort of the same when you're looking online how to do x. Right? How to serialize a model and load it into data hub and version it. You'll only get responses in Python. Right?

Shay:

You just won't get responses in Go even if those exist. Where, to be fair, probably for many of the things people wanna do, they don't exist. The Python ecosystem is super strong, in this, area. And by the way, the third answer is also, I think, very similar. The machine learning team doesn't know Go.

Shay:

Right? So even if you found the relevant library, you're coming to the team that have been working with Python for less like 3 years and you're telling them, alright, let's start using this service with Go. And be like, why? I have everything I need in Python. So I don't know what you can take away from from this survey other than just continue using Python, but many responses prefer to use Go.

Shay:

At least they they say that even though they're using Python today, their team is interested in using Go instead of Python. I'm wondering if the same issue of the person who's, you know, excited enough about Go to fill up the survey is excited enough about Go to try and rewrite, you know, an AI service in Go even though it it's written in Python today with all the libraries and SDKs. But I don't know. I don't see myself using Go for an a real machine learning pipeline. But if I'm just building an AI app, something that calls OpenAI's API, right, why not?

Shay:

Just calling APIs, wrangling JSONs is the same as any other program. Just dealing with a slightly annoying LLM in the middle. So I think when you look at building an application, just a web application that uses APIs to get the the good AI juice all over the the responses, Go is a totally valid option Or actually building an AI pipeline, I don't know, like a machine learning pipeline, I would still go with Python.

Jonathan:

It's getting there, Hugo. The the tool I just mentioned, I think, will help with that. And you may recall we had Matthew Topol on the show several months ago to talk about Apache Arrow which is, about data transfer and storage in that space. So I think the tools are being built and I I hope that Go will will really, excel in that area because I feel like it's a very accessible language and similar to the way Python is, but it gives a lot of type safety and and other performance benefits that Python doesn't. So I I hope that Go can sort of take over, in that space, from Python over time.

Shay:

Totally. Alright. So that's the survey. There are many other interesting questions in it, about how people were you know, the development environment, where I usually dunk, on Jonathan Freese and Linux, but now it's the majority, so egg on my face. Demographics, firmographics, where do people wanna prioritize things like performance and resource utilization, stuff like that.

Shay:

Just go read it and with a high, level of trust and an extremely high level of satisfaction, overall, the responses from the survey are are very positive and looks like the language is on a good course, looks like the community is happy with what's going on overall, and it's just optimizing the efforts. And there isn't any big red flags from meeting it. Just a Go team trying to hone in on what's the the best thing for the language. Cool.

Jonathan:

So that's it for the survey. We're gonna breeze through a few meetups. These aren't conferences, they're meetups, but that's kind of on theme with the community involvement today. As you'll see particularly with our interview with Bill coming up, stick around for that. First, I wanna do a shout out to the Go Denver meetup, which I I guess, Shai, you and I can take partial credit for this, as, according to Anthony, who, is the organizer of the Go Denver group.

Jonathan:

Somehow, our show inspired him to get involved and to start organizing, the Go Denver meetup. So big shout out to those folks. If you're in the Denver area, be sure to check out, the Go Denver meetup group and join next time they have a meeting.

Shay:

Which is April 29th.

Jonathan:

Great. April 29th is the next one.

Shay:

Yeah. I was just happy to see, you know, another Anthony from Denver doing a good job, after Carmelo Anthony from the Denver Nuggets, of course. Anthony's in Denver. I think he's a good work. My, American geography is so bad.

Shay:

There's also a meetup in Atlanta on May 9th. Right?

Jonathan:

Yeah. So, yeah. Atlanta is just around the corner from Denver. If you were in a car, it would take 20 hours to get there. So, just plan your trip to do Colorado and Atlanta at the same time.

Shay:

Yeah. So Atlanta on May 9th, there's a a meet up. Again, the go, you can find it on meetup.com or in our show notes. This group is it's called the Go users group, which I find very interesting, but it is part of Go developers. And on May 9th, it's gonna be Bill Kennedy, visiting Atlanta.

Shay:

And so if you're listening to this episode and you're around Atlanta on May 9th, you you'll probably have some interesting talking points, with Bill. And finally, there's something about the Amsterdam meetup. Right?

Jonathan:

Oh, yeah. But Yeah.

Shay:

Oh, wait. Not finally. I also wanna add the Israel meetup. So sorry.

Jonathan:

I'm I'm excited about this Atlanta one, largely because I will likely a member of that group at the end of this year. My wife and I are planning a move to that area. So, I hope it's a good community. I I hope to become part of it soon. But before I do that, I am currently a member of the Amsterdam community and we just had our meetup, earlier this week on Tuesday.

Jonathan:

And as I mentioned earlier, we had a great talk about Hugo or Hugot, which is relevant to the AI discussion. We'll put links to the show notes. If you're in the Amsterdam area including Utrecht or Den Haag or any of these areas, we'd love to have you at our next meet up. There's also a meet up coming in Rotterdam which is a about an hour away from Amsterdam, an hour and a half from Amsterdam. So on April 23rd, if you're in that area, be sure to check out that one.

Jonathan:

I have some bad news though. I'm scheduled to speak there, but I'm gonna have to back out because I have a road trip coming up. So I won't be there and I won't be speaking, but it's a great meetup. I go there whenever I can. And you have a meetup too, Shay.

Shay:

So it's not, there is a meetup in Israel. I'm not speaking there, but alumni of the show is, Jardim Liefenfeld is gonna give a talk about, meeting the unwinder diving into Go runtime internals, which I'm super hyped about. There's also gonna be a talk about design patterns in Go, which does seem interesting. It's gonna be at checkpoint on April 16th, so just next week. Very cool.

Shay:

It's not it's not like a a con or something, just a normal community meet up. 2 talks and some pizza, I guess.

Jonathan:

Awesome. Well, thanks for sticking around for the special community edition of Cup of Go. We've run over time, but don't miss the interview with Bill Kennedy. If you're interested at all in community organization, this is definitely the interview for you.

Shay:

Yeah. Next week, our episodes gonna come out a little slightly earlier to scheduling issues we have. We'll see you even earlier next week. Alright. We really wanna get you to the interview, so I'm gonna run through this.

Shay:

Welcome to the ad break. This show is supported by you, our beautiful, beautiful patrons and listeners. If you wanna become a member on Patreon, that helps out a lot. This is a hobby. Jonathan and I are doing it for fun, but it's rather expensive.

Shay:

If you wanna support us, you can join our Patreon group. It's like $8 a month and it helps out a lot mostly paying for editing fees and hosting and stuff like that. If you want to support us in other ways, you can find all the links and everything you need at cupago.dev. Things like links to our Slack channel, hashtag cupogocapapace with hyphens. Our email address news at cupago.dev that is news at cupago.dev.

Shay:

All the past episodes we had and brand new now with transcripts. Right? The Go survey had a thing where they said that the learning materials, they prefer to have them written rather than audio. So we have, transcripts now as well. And you can even buy swag.

Shay:

Someone bought, the wireless charger finally, so that happened. But we have some cool stuff. The cup with the gopher on it is the, number one swag item by far. But there are also, like, hoodies and some stickers and stuff like that you can, grab, and I would really appreciate it. We don't pay to advertise this show, so the only way we can grow is by word-of-mouth.

Shay:

So please share this show with a friend, colleague, you know, how likely are you to share this show with a colleague or a friend from 1 to 10? We really hope the answer is more than 9 because otherwise you're a detractor or whatever. Jonathan's getting red in the face. Y'all don't see it. You can also leave a review on, Apple Podcasts or Spotify or wherever you listen to your podcast that helps sort of push the show to other people.

Shay:

And, you know, if we're talking about community, maybe you can just talk about the show in the next meetup you'll go through. Whatever whenever and wherever that may be, Atlanta or otherwise. Awesome. That's all we have for you, for this ad break. Other than one very specific ask, someone on the channel said they wanted us to interview, Bartek, Noah Tardske and I would love to have that conversation.

Shay:

Bartek is the person who found that header continuation of, vulnerability in h t p 2 that we discussed in the last episode. So, Bartek, if you're listening, yo, reach out, man. We wanna have you on the show. And no is also fine. Just let us know.

Shay:

Or if you know Bartek somehow, connect us. Just open a Slack channel. We we would love to have him on the show. That's it. Stick around for the interview with Bill Kennedy, and we'll see you all next week.

Jonathan:

Until then.

Shay:

Hey, Jonathan. What's up?

Jonathan:

Hey, not too much.

Shay:

So a bit behind the curtain here. Just skip the next, like, 30 seconds if you wanna stay in the land of Oz and not learn how things happen. You know how we have the Trello with the interviews? Yeah. And the things we wanna talk about, and that's just the way we manage?

Shay:

So, apparently, you can sort it by age, and the oldest ticket on here says Bill Kennedy as this card, when we created the board. February 7, 2023. So hey, Bill.

Jonathan:

We finally have him here.

Shay:

1 year, 2 months in the making.

William Kennedy:

Well, that's not on me. I think you

Shay:

you only reached out to me

William Kennedy:

a few weeks ago.

Jonathan:

So Yeah. We reached out a little bit later than that.

Shay:

We built up the courage, man. That's all.

Jonathan:

We wanted to build up a show before we had you on. We wanted to have an actual audience listen to you instead of you just, like, talking to a tin can. So, thanks for joining us, Bill.

William Kennedy:

Thanks for, finally after a year.

Shay:

Yeah. Close finally closed So

William Kennedy:

who's your next

Shay:

who's your next

William Kennedy:

so now who's at the top of that page question? Now now I'm curious.

Shay:

That's a good one. So I think it's, Filippo, but we should have interviewed him already.

Jonathan:

So I don't know if that's the we got him a couple weeks ago.

William Kennedy:

You got Filippo.

Shay:

Yeah. Oh, actually, no. I know who's I know who's next. And I don't mind saying that because we send them a message and they didn't answer. It's the GoTime, host.

Shay:

When we were just starting out, we tried to send them a message like, hey, we have a new podcast. Maybe we can do a podcast to podcasting. I think it was too meta. And also they are very busy people.

Jonathan:

If they're listening, we wanna do a crossover episode with you.

Shay:

Yeah. For sure. That could be cool.

Jonathan:

Anyway, let's talk about Bill's life instead of everybody else's life. So this is a podcast, so you can't see, but Bill is wearing his Hannah hat indoors in his home office, it looks like. Bill and I met in person at dot go in Paris pre COVID. We're both wearing Hannah hats, And so that was a fun conversation. And you you are hardcore than I am because you're wearing it indoors.

Jonathan:

So

William Kennedy:

Well, I didn't realize that we, the video wasn't gonna be part of this, recording. Yeah. I probably wouldn't have it on right now.

Jonathan:

Okay. Fair enough.

William Kennedy:

I'm in Miami, and it's, starting to get warm here.

Jonathan:

Oh, wow. Yeah. Alright.

William Kennedy:

But I I I showed up one day to a training

Shay:

many years ago without the hat, and, people were seriously disappointed, man. Oh, wow.

William Kennedy:

And, I realized at that point that this had had to be, on my head anytime I did anything.

Shay:

It's part of the brand.

William Kennedy:

It's become part and everybody thought I was bald originally, and I I remember being on stage and taking my hat off and everybody going, wow. He's got a lot of hair. Oh, yeah. Bald.

Shay:

So See, I mean,

William Kennedy:

I wear that to keep the hair out of my eyes. It's, like, quite the opposite.

Jonathan:

Yep. Very cool. Well, let's talk about Go. Hats are cool, but let's talk about Go. Maybe, Bill, you could just sort of introduce yourself.

Jonathan:

I think most people have heard of you, because you're you're fairly well known in the Go community. But there's probably somebody who doesn't know who you are and doesn't know your background. Tell us a little bit about who you are, what you do, and your involvement in the Go community.

William Kennedy:

I think thanks thanks to COVID, there are a lot of people who don't know who I am. Fair enough. COVID really shut everything down. Right? So so prior to COVID, I was living on airplanes, flying all over the planet, doing go training, everywhere up until about that.

William Kennedy:

My last trip was, Athens and Israel in March of 20. So, I, I own a with a partner. I own a company called Arden Labs. We're primarily a consulting shop. We do a lot of projects, and I focus a lot on training, building a lot of training material.

William Kennedy:

I've written well over 100 blogs. I've written the books. I'm really focused a lot today on trying to teach software design as opposed to, software design in Go and Kubernetes and Encore, as opposed to, like like language mechanics now. We have other people teaching, language mechanics. All my stuff is out there for that, but, I'm much more interested today in in architecture and software design and trying to teach that stuff.

William Kennedy:

So that's basically who I am, and my only travel really now is going to the conferences. I I try to get to all the major ones. Corporate training still hasn't. I think I did maybe 2 live corporate trainings last year, and the 2 that we have sort of scheduled for this year, they can't get people to come back to the office to do it. It's, it's not that they don't want it.

William Kennedy:

They, nobody wants to come back to the office to do it. And trust me when COVID did, I had to pivot to teaching in front of a camera, which I think I'm now effective doing it, but it's not the same as as being there with somebody. And you can't really, I could do about 4, maybe 5 hours a day when you're doing that. You can't go any, any farther. So I don't know what's gonna happen there with the, the training.

William Kennedy:

You know? In fact, if you look at the latest Go survey, there's I have to I have to read it closer, but there's a section on education right now or where people what kind of educational material people want. What do you think was was number 1 on that list? Because it was surprising to me in terms of media, the type of media people want.

Jonathan:

Yeah. I don't know. I I just skimmed it today, so I don't I don't remember that that part. So At

William Kennedy:

least the 6,000 people that took the survey, the per the larger percentage of them said they liked written content in terms of, learning material

Jonathan:

with

William Kennedy:

video coming in second. And I did a tremendous amount of writing up up until maybe my last book. Writing is hard, man. I'm kind of burnt out trying to get to that level of writing again. But I found that interesting, and I feel the same, I think.

William Kennedy:

I think I can skim material faster when it's written as opposed to going 2 x sorta on video. So, you know, I'm trying to figure out what training kinda looks like in a post COVID world outside of conferences.

Jonathan:

Although Fascinating.

Shay:

Meetups, picking back up again, at least for me, was super fun. All the Go meetups and the Gopher cons and whatever.

William Kennedy:

So there's something weird going on. I run Go bridge, and we run the GDN, which is a Go developer network. And the, and the GDM basically helps to manage and pay for all of the go meetups around the world. Prior to COVID, we had 200 and after COVID, we had to cut it down to a 100 and that was people who had at least 1 meetup over the year. And we might have to do another purge and, at the summer, because let me tell you what I'm seeing and I cannot put my head around it and I'm seeing it even beyond the meetups in Europe and in Asia, the meetups are picking up and people are killing it, man.

William Kennedy:

Like you're getting in Serbia, 50 something people to show up every month. You're getting it in London. You're getting it getting it throughout Europe and Asia.

Jonathan:

I think we had 67 last night's Amsterdam meetup.

William Kennedy:

Okay.

Jonathan:

Yeah.

William Kennedy:

In the US, it's completely dead.

Jonathan:

Wow.

William Kennedy:

And it's the same sort of thing that nobody wants to leave their house. And I could understand if you're working all day at home and now it's like 6 o'clock and you have to go somewhere at 7. You're just like, no, dude, I don't want to do it. Right. But it's happening in Europe.

William Kennedy:

Like you just said, you had 60 people show up. So I cannot put my finger on this, but it's also affecting sort of corporate training, I think, too. I think it's all connected. I just don't know how or why. Interesting.

Shay:

I think there's a notion at least my opinion is that the notion of a return to office in Europe I don't know. I can speak, at least in the companies I'm talking to and and people in Israel. Right? But I think it's a similar mindset, at least in European, countries, or I guess corporate culture, that employees feel more a part of the company that they, work at slightly less of a transactional relationship. You can see it in all sorts of things, you know, employee protection laws, and unions.

Shay:

The union sits at the board in in, like, many European countries. It's it's written into law. And I think in the US, people will feel a lot of times, even if they love their job, they feel, adversarial towards the job market or, I guess, the career ladder. So it's harder to form that community. I I guess it sort of feels like unionizing or something like that.

Shay:

When I talk to my Amer American peers, like, at at companies and whatever, I always feel that disconnect. I'm like, yeah. Of course, I wanna do good for my company. It's like my company. It'll be good for me as well, like, financially, but it's my company.

Shay:

I'm I'm working there. I care about it. It's less about what do I gain out of the meetup. Usually, the the best meetups I've been to, I've learned very little, and I've given a lot more. Like, I've given a talk.

Shay:

I I connected people to like, I did things. That that was when I had the most fun. Maybe people don't view that, relationship with their professional advancement that way in the US.

William Kennedy:

I could tell you this too. We have a an art in Slack. Right? My my company we're, like, 40 engineers worldwide. Pre COVID, almost more than half the group every morning would say good morning in our random channel.

William Kennedy:

I still do it today, but it went down to maybe 25 something people doing it down to like 3 after COVID. And we used to do these lunch and learns, and we used to all get together and do these happy hours, and we try to schedule them and nobody wants to to show up. So this isn't all US people, but I don't know what has happened with I just don't know what's happened and it's kind of depressing, man. And I'm if I could put my finger on it, it will be great, But maybe the US is just US people are just still depressed. They they just don't wanna go out.

William Kennedy:

I they're like, no clue.

Jonathan:

I'm discouraged now. I'm getting ready to move back to the US, and I I I was hoping to get involved in the GoVida group. But, I guess I'll have to pull teeth to to get people to come to 1.

Shay:

Maybe you could be the fire starter.

Jonathan:

I can try. I don't know.

William Kennedy:

You know, I'm flying it to New York City this month, April 17th to speak at that meetup live. I'm going to Atlanta in May to go speak at that meetup live. These are, like, 2 or 3 hour plane ride trips. They're not not usually expensive for me to do that, but it's just to, again, try to kickstart a meetup and get people into some sort of habit to go.

Jonathan:

Yeah.

William Kennedy:

I think the other problem, and this has always been a problem. Right? Like, at some point, organizers can't find speakers, and they're tired of talking. And so what our guidance has been with the GDN lately is why do you have to schedule a speaker? Just me.

Jonathan:

Mhmm.

William Kennedy:

Start a conversation. Ask like like we're doing today on this podcast. Right? Start a conversation, and let it be a little bit more, maybe, spontaneous than than planned. But I think you'll you'll find that you're gonna have a good 2 hours, 2 and a half hours with everybody, if you do that.

William Kennedy:

Absolutely.

Jonathan:

Well, Atlanta is a city I'll probably be moving to, so I'm curious how, you're experience you'll experience that when you're there.

William Kennedy:

They're trying hard. John, I mean, it's John Cory is trying, hard. He finally found a space. This is the other problem too in the US, that I'm seeing a lot of. Like in Atlanta, they had a company that was giving them space, and the company's lease was up, and they decided they weren't gonna maintain the lease anymore.

William Kennedy:

Mhmm. Suddenly, John doesn't have a place to meet anymore. Right?

Jonathan:

That's been a serious problem here in Amsterdam too is 3 quarters of our previous hosts either don't have office space or they've they've completely moved out of the country or whatever. Or they downsize so they only have room for 15 people anymore.

William Kennedy:

Yeah. It's hard. And so he found a company now that's willing that that still go into an office that's having it's a recruiting company.

Jonathan:

Mhmm.

William Kennedy:

And they're still going to the office. Right? But, like, I know we've tried libraries in the past, and we try restaurants, and you try these things, but for some reason, a corporate office always has seemed to work best, but it it could be the other problem too. There's nobody's going back to, you know, retail went back. Doctors went back.

William Kennedy:

I mean, there's a whole sector of people that went back to work, but

Shay:

some

William Kennedy:

reason we didn't Right. Really get back to the office.

Shay:

So I read a thing on, Wall Street Journal. And if you want to read it too, you may or may not find it in a site called archive.ph. I don't know. Maybe it fell out the back of the truck. I don't encourage it, where, you know, like, crazy numbers of offices are being, sold.

Shay:

Just like you said, these spaces are are just not staying up anymore. But I haven't seen the same, in Tel Aviv. Like, I've been in Tel Aviv doing, high-tech everyday for since 2018. And I haven't felt that, like, you know, people wanna they wanna work from home, and they definitely it it definitely expands a lot of options mostly for, you know, people with families. I have a kid.

Shay:

I spend a lot more time with her than I would, you know, if I had to come into the office every day. But people do want that. They wanna come to the office. They wanna meet up with their team. They wanna have lunch together.

Shay:

They wanna meet in that bubble of, of, you know, going down for a coffee and meeting people and something like that. So I think it is a US thing. Like, what you're saying that it happened in the US but not happening in Europe, I think that's a good hunch. Like, I I I don't see it in Tel Aviv, and I don't think Jonathan's feeling it in Amsterdam. And we've been we've been dying for a meetup here since October.

Shay:

Right? Because we everybody who's talking in the meetup has been basically in reserve duty for, like, 4 months or whatever. Now, when people came back, you know, the situation is so horrible. We still have hostage or whatever, but most of the people are back to work. When we hosted the meetup at Orca, I think we had, like, a 100 people or something like that.

Shay:

It it was it was buzzing.

William Kennedy:

The whole thing is interesting to like, the whole COVID thing is interesting to me. Like, I have a friend who's in the waste management industry. He's a consultant for them.

Shay:

A garbage collector? Yeah.

Jonathan:

Yeah. And he

William Kennedy:

said to me, the waste management companies are dying because when it came to commercial garbage, they would get paid by weight, but your residential garbage isn't paid by weight. And suddenly all the garbage shifted from corporate to residential. And so now they're picking up more garbage almost for free. Yeah. Like, you don't think about these things, Ren.

William Kennedy:

Right? And and and and this is kind of what, like, COVID did to a whole bunch of industries. You know? And it's just I always think about that. It's like something you don't just take for granted.

William Kennedy:

The garbage comes and then you pay a little city tax for it, but, the waste management companies are are hurting because of it.

Shay:

Yeah. This is a super interesting conversation, but I do wanna circle back to Alton Labs, if that's okay. Yeah. Because one thing that's interesting, at least, to me, or the second, I don't know how you all like to be called, Ardanists? Ardaners?

William Kennedy:

Ardanians? I don't remember what they sometimes I hear it. I don't remember.

Shay:

Ardanians pretty pretty good. It sounds like a thing from Dune. You have the House of Atreides and the House of Adanians.

William Kennedy:

Yeah, man. Maybe. I don't know.

Shay:

So, yeah. We had Mickey. He was actually our first Right? He was our first interviewee ever. I think

Jonathan:

He's our first guest. Yeah.

Shay:

He was our first guest. And I wanna try to understand, you know, and this is not a commercial. We wanted to have you on the show. This is not paid, whatever. This is not sponsored.

Shay:

When I engage with Ardan, to me, it always looks super high quality and, you know, once y'all onboarded Mickey, I I understood, you know, the level of the people that y'all are, hiring. What sort of engagement do I do I get? Like, if if I'm working at a company right now that has Go or I wanna get into Rust or I wanna upscale people around me or myself, How does that look? Because, you know, l and d is always kind of complicated, especially in in a corporate setting. Right?

Shay:

It's maybe mixed up with the travel. It's very hard to understand the ROI. And unless the the upper management really gets it, it's sort of a I I think it's easy to justify cheap and useless training. You know, someone presents, writes a simple exercise and just runs it for 2 hours and there's no effect. But it's harder to understand what happens when you get something like our done.

William Kennedy:

We've lost jobs because we're somebody comes in with a cheaper price, and we're just, like, get what you pay for, man. So whatever it is you're trying to accomplish, you you get free get what you pay for. I think what happens with us, at least, is that somebody goes to one of our workshops at a conference, right? And they're spending that 8 hours with me or Mickey or Jerome. Who's doing Kubernetes stuff.

William Kennedy:

Right. So they spend that 8 hours in there and they, I always try to overwhelm, not underwhelm. Right. So they they they get a little bit overwhelmed. They see the quality of the content we're teaching, and I can only do 8 of a 20 hour class.

William Kennedy:

And so the idea is they're like, I want more. I I want, you know, I want the other 12 hours of this or the other you know, and that's kind of when they go they go back to their management and say, I think our team can benefit from from this class. I think our team can can do better, and that's, like, naturally how it tends to happen. Right? And so that's why I was also all over the planet at some point.

William Kennedy:

Right? Because I was trying to be out there for people to experience the class and and and the material, and then it was it was keeping me out there. So and, again, now that's a real challenge after COVID, right, To for people to see that, I'm struggling it with it every week. I'm constantly having conversations with my team. How do we get people to experience one of these classes without giving it away for free?

William Kennedy:

Because at that point you're just earning yourself. Right? But give them enough for free so they feel like they want more. Right? And how do I get a whole another set of 2,000,000 developers that showed up during COVID when we were locked down to know who I am so I can do that?

William Kennedy:

And we're having a sales marketing conversation, but I'm thinking about this all of the time and all of the time. And it's not an easy problem. So I'll tell you what we're going to do right now. About every 4 to 6 months, I record a new version of my software design class. I'm gonna actually record it in a couple of weeks.

William Kennedy:

Enough has changed, and I've learned even more to to produce a better class. So I've already told the team, I want you to take about 3 hours of the current class that we have there, split it up into YouTube videos, and give it out there for free. Let people see that class and with the idea that the newest latest version is coming within a month after that, and, hopefully, that gives people enough reason to pay, some money to see the class. And we give scholarships, man. I I'm I'm all about you paying what you can afford at at this time, and so nobody should go and look at the price, which basically is at about 10:10 to 15.

William Kennedy:

I can't remember if we did 10 or 15. Let's just say 10. Like, now maybe maybe just 15. So, basically I try to price everything by the hour. So if that's a 20 or 25 hour video, you're gonna pay $15 an hour for that.

William Kennedy:

Mhmm. That's the way I kinda do the pricing. And I feel like you don't think my time is worth $15 an hour for me to teach you. I I feel like that's still fairly inexpensive. Now I know Mhmm.

William Kennedy:

There's a lot of hours there, so that ends up being a fairly expensive class, right, at some point?

Shay:

I think personally investing in that is a no brainer. But as a company, it's even more of a no brainer. Like, I'm not just saying that. I'm I'm leading the l and d together with, someone great from HR at our company. If you don't train the people at your company, there there are 2 options.

Shay:

The best one is they quit and you get new people who have some training and information in their head. The worst option is that they stay. Right? And you have someone who doesn't upskill themselves for, like, 2 years and then expects a promotion and expects to get more responsibility, but they're not any better. Like, that doesn't make any sense.

Shay:

And it doesn't happen in any other industry.

William Kennedy:

What I'm trying to accomplish when I'm doing these trainings is to get the entire team on the same page with design philosophies, with guidelines, with rules, with how we engineer, what our priorities are. And and I share all that. And I tell people, I don't expect you to, agree with a 100% of what I say. And if you don't agree, then I want you to ask yourself why you don't. But this is to get the entire team rowing the boat in the same direction.

William Kennedy:

And then when I leave, you know, you take what I've given you. You change what you feel you need to change, but work together, on this moving forward. And then I think you have a more productive team like what what you're trying to accomplish. But when you have a team of people all wanting to do things differently and they're doing things differently, it it's it's a nightmare.

Jonathan:

I love that. You know, you don't have to agree with me, but think about why you don't and, you know, as a team at least come up with a a direction together. Could be different than than the direction you proposed, but do it together instead of fighting with each other. Right?

William Kennedy:

And most cases, you're not agreeing with me because you have different constraints Yeah. That I don't have, and you can't make the same decision that that I made. And that's fair. I start every class off with, I live in utopia Mhmm. Because the only constraints I have are the ones I put on myself.

William Kennedy:

Right? And so everything I do in this code base, and I'm gonna not tell you what to do. I'm gonna show you why I'm doing it. You may not be able to do, and we can have those conversations on the side too.

Shay:

Yeah. Arden Labs runs or at least sponsors the Go for Slack. Right? No. No.

Shay:

Did they used to?

William Kennedy:

No. Okay. So when I started the Gopher group right after the first GopherCon

Jonathan:

Okay.

William Kennedy:

2014, I met a bunch of people. I wanted to keep those conversations going and those friendships going. So I started the group, and it was basically private invite only. And within about 3 weeks, we had, like, 50 something people, And it was getting a little out of like, I couldn't manage that myself. So a bunch of people came in.

William Kennedy:

We figured out how to do the invites and all that. But within about 2 years of running it, it was still the free tier version of Slack. Slack was new. Slack had I think it just come out. It was really, really new in 2014.

William Kennedy:

So I reached out to Slack, and I asked if they would upgrade us because everybody was complaining about history. They turned around and said no. Then I reached out and I said, well, I'm willing to pay you. I know I can get sponsorship, but I can't pay you the numbers that you want and I can't pay per active user. I can pay a pay you a flat rate.

William Kennedy:

So what about a1000 or 2000 a year? And I'll find that money. They turned around and said, no. So suddenly maybe it was year 3, 2 or 3. I got into a cycle with the Go team where we got a new PM.

William Kennedy:

Basically about every 18 months, the Go team hires somebody to be a community manager, and then we lose them, and then we get one back, and then we lose them. And right now, we're kind of, I'd say, in a gray area. We have one, but it's not really their full time job. Anyway, the person that we got came on board, started talking to them, and they said, let me reach out to Slack and see what I can do. Well, they reached out to Slack and Slack said no.

William Kennedy:

So we were like, this is it. And then a couple of weeks later, man, without anybody talking to us, they just upgraded the account to that next tier

Shay:

for free.

William Kennedy:

And they had done that with we found out with a handful of other communities, which I think I think the Kubernetes community got it too, but don't quote me on that. So it just happened, like, just magically one day. And so I don't know who, what conversations happened behind the scenes, but it was after the 3rd time that we've asked through Google that it it kinda just happened. So, luckily, that's where we are now. I've waited every year for them to tell me they're

Jonathan:

they're turning it off.

William Kennedy:

Right? And they haven't. The biggest problem Slack has been great, by the way. Very much Slack has been fantastic, for us in the community. But about a year ago, they turned their invite links down to, like, only 5 at a time

Jonathan:

Oh, yeah.

William Kennedy:

Which is what we use. Right? And it was 2,000 at a time for a long time, and whatever. That meant every month, I had to get a new invite link, update the DNS. Everything was good.

William Kennedy:

They knocked it down to, like, 5, and I started crying. And I went on to Slack support, and I started I was crying, dude. I real tears. Okay? Yeah.

William Kennedy:

They turned around and gave us a link for 30,000 uses.

Jonathan:

Wow.

William Kennedy:

And, that's still I just checked it last week, and it's still good. Like like, we still have still have a good number on there. So they've been incredibly supportive of, now they asked us I think, eventually, it came back, and they just asked us to keep it on the down low at that point because they didn't want everybody and their mom to start reaching out asking for free accounts. So probably, this is the very first time I've ever publicly, maybe in all those years, have even shared this story.

Jonathan:

Right.

William Kennedy:

And I think it's safe to share it now. But, at the time, they eventually came back to us, and they just said, can you keep it on the down low? And I was like, nobody has to know. So the the announcement was always somebody stepped in and and, sponsored the Slack.

Jonathan:

Got it. Well, you heard it here first, folks. The

William Kennedy:

Now that I'm thinking about it, yeah, I don't think I've ever shared like, I've shared it with individuals here and there, but not, like, now my stomach hurts. Uh-huh. I wonder what happens now. No. It's all good.

Jonathan:

So we we can always cut it out if we have to.

William Kennedy:

I can't imagine that this is a secret now with all the other groups that they've Yeah. Potentially done this with.

Jonathan:

Well, a huge thanks to Slack for for essentially sponsoring our our chat room then. It's a huge benefit to the community. I use it daily. I'm on several rooms, the Amsterdam room, the Cup of Go room, and several others. So it's it's a big benefit to the whole community.

Jonathan:

I know.

William Kennedy:

Did you see that talk from one of the Slack engineers several years ago where they were using our Slack to run some sort of, like, larger load tests or some testing that they were doing because we got 93,000 registered users. We're we're not as big as the Kubernetes group for sure. I I don't know where that number's at, but we're we're one of the largest. At least we were back then. And they had done a talk saying that they were using our sort of group to run tests and do things because it was so big.

Shay:

There's a 103,250 right now on the announcements. So And Kubernetes. Suppose that means every for for gopher for the gopher slash.

William Kennedy:

Oh, on oh, on the announcements, it's a 100,000.

Jonathan:

Yeah. A

Shay:

103. Wow. That's that's a lot. Yeah. That's like It is

Jonathan:

a lot.

William Kennedy:

Yeah. But I think if you look at active, but I haven't checked this in a long time. But the last time I checked active users per month, it was, like, several 1,000. Was it like, tens of 1,000?

Shay:

There are many, like, forums, groups, I don't know, places where I, engage with technology. Right? And it's not only, I think, at least. It's not only about the number of active members per month, per week, whatever. It's also about the engagement level or, I guess, how much attention people are are giving you.

Shay:

I always feel like in the gopher stack when people read my messages or when I read their messages, it's like it feels more like talking to someone who works with me over a cup of coffee at least, like, that level of attention where, you know, people write on Twitter and they have a 1000000 followers and whatever, but I just, like, scroll past them while the engagement is very surface level. I've gotten professional advice on the Go for Slack that was akin to getting mentored, you know, in some topics. And Jonathan usually drops, like, some weird, you know, what do you think about putting multiple Go mod files one and the inside the other in using JavaScript inside the Go, inside JavaScript inside Go, and wrapping it all up with a bow? And people, like, actually engage with and try to answer. Oh, in my workplace, we do this.

Shay:

In my workplace, we do that. So I don't think it's only about the number of members, even though a 100,000 feels, like a ton. It's also about, like, how people engage with you.

William Kennedy:

I wanna believe that the beating I've taken for the last 10 years to, maintain a language policy there and to intervene, and and we've had to remove people. Doesn't happen as much as it used to, but, you know, the the beating I've taken to keep that place, clean has kinda helped to do that. And I do worry sometimes, like, when I'm ready to walk away from moderating. We have great moderators, by the way. If you go to admin help, there are a handful of people in there who I've given admin rights to who squash things really quickly now.

William Kennedy:

They're really good at it. And then we have a private admin group where if it gets to the next level, we'll talk about it. But the thing that I moderate solely because nobody wants to do it is language. Right? The curse words, the, and even if it's not a curse word, I'll I'll give you an example of a word like the word somebody uses the word sex.

William Kennedy:

I'm gonna get a notification, and I'm gonna have to now jump in there and see what are we talking about that this word came up. Was it good? Was it, like, reasonable? Was it bad? And so I do a lot of language sort of moderation.

William Kennedy:

And I'm really afraid the day that I'm not doing that anymore, what's going to happen? Maybe nothing.

Jonathan:

As the recipient of some of those moderation messages, okay, a couple of times, by the way, I have to say you do it very well. I didn't feel attacked. I didn't feel I mean, I I don't I don't think I was, I don't remember the the specifics anymore, but I was like one of the examples, I was quoting somebody else who had used a bad word and I I was paraphrasing them and, that caught your trigger and I edited to leave the message. I don't remember, but I I appreciate the way you approached me about it. It it felt respectful.

Jonathan:

It felt professional. And it felt like you were trying to clean the community, not punish me for saying the wrong things. So my appreciation for that.

William Kennedy:

Yeah. Yeah. Definitely, everybody makes mistakes. I mean, I mean, even, dude, I'm not a saint. And if I'm around certain people, I'm a sail like a Yeah.

William Kennedy:

Drunken sailor. Right? Like

Shay:

The show is edited. You can you can let it fly, man. We'll just

Jonathan:

We're not gonna let

Shay:

it fly.

William Kennedy:

No. Because then it will really hurt me, when I when I'm in Slack, but in the public space. It's not about that. It's just about wanting everybody to feel like it's a friendly place. Right?

William Kennedy:

And I and I think we've we've we have that, and and it's been a lot of work. Less work now than it was in the past, but I think we've got it. And, you can listen to this and disagree that the language policy has contributed to that, but, I will disagree back. I think it's I think it has really helped. When people have to think about sometimes the words they're gonna use, I think it helps.

Jonathan:

Mhmm.

Shay:

I totally agree. Oh, I

Jonathan:

think so too.

Shay:

Would you say, you know, looking at the community work you're doing, you mentioned, you know, you're taking a beating, and you know what they say, beatings will continue until morale improves. Is that, like, is there, like, some end goal of, alright, so I'm maintaining this group. I'm talking to all these people because they will get my training or because they will do thing? Or at this point, is that just, like, your thing? You like being the Go community guy?

William Kennedy:

I separate the 2 because if I if I didn't and I do it sincerely. Okay? But if I didn't, then I wouldn't have the trust of people when I'm doing certain things. Right. So when I'm doing community work, it's Go Bridge.

William Kennedy:

It has nothing to do with Arden. I don't even want to bring Arden in even to sponsor because I just don't want people thinking that I'm leveraging one of right? So when I'm doing community work, it's community work. When I'm doing Arden, it's Arden. And if it's not a 100% clear, I I will be upfront and honest about what I'm doing.

William Kennedy:

I'm not I'm not shy to say that, on certain days, hey, man. I'm here to make some money today as opposed to I'm not here to make money. I'm here to do community stuff. So, if Arden is ever mentioned, it's because somebody wants to know where I work or something along those lines. In fact, if anything, I lose out sometimes because there is something where Arden could take maybe advantage of it from a community perspective, and I can't allow it because for me, that would be a conflict of interest.

William Kennedy:

And so I'm always looking for that sort of conflict interest because if I lose trust with the community, that is gonna flow back into my business. I can't. It's it's a actually dangerous it could be a dangerous situation. Right? You can't play the fence, and I built I feel like Arden has built its reputation on trust.

William Kennedy:

Right? People know they're not going to be marketed and solicited and right? We're going to focus on you first. I've told this to my teams, and sometimes they don't like it because, right, marketing teams or sales teams wanna make money, even to the point where sometimes they've they've asked me in the past to close source material. I'm like, no.

William Kennedy:

We're not doing that. Or they ask me, and I get, no. We're not doing that because community has to come first. And I believe in in karma. And if you do these good things here, it's going to come back to you in in one way or another, even if it doesn't feel like it.

William Kennedy:

So it's always better. Dude, if I gave you the numbers and the amount of training in fact, my business partner, Constance, has told me we're not running a charity, but I probably have given away more scholars dollars in video training than I've collected in the last 2 years.

Shay:

I'm wondering that sincerity, I think, you know, it's not only about getting the trust. At least, as an outsider, it looks like there's something else driving you other than the necessity of separating the 2. I guess, what I'm saying is, even though it's hard work, it does seem very rewarding. I know. I I can speak for Jonathan and myself here.

Shay:

We have the show. We did it. You know, we sort of said, hey. We wanna do a thing. We wanna learn Go.

Shay:

And for me, it was like, hey. I'm I'm gonna have a podcast. That's cool. That's good on my resume. And doing a year is enough to to write it on my resume.

Shay:

Like, we gotta stop. But there's something about, like, the community and people talking to you and sort of this energy that that helps keeps it going and and even empower it. That's why I think maybe it's easier to moderate now. Right? Sort of a virtuous cycle.

William Kennedy:

It's easier to moderate for sure, but I one of the things I think that drives me is that it kills me. I mean, utterly kills me when somebody doesn't have access to something they need because of money. Mhmm. God, I hate that dude. But whatever it is.

William Kennedy:

Right? And in, in my case, it could be training that somebody needs somebody living anywhere on the planet who just doesn't have the money right now, but needs that training to help get over some sort of roadblock. Right? It kills me, man. And so I'm not starving, dude.

William Kennedy:

I got milk on the table today. I got a roof over my head tomorrow. So it doesn't at least video training wise. Right? It's not like a book asset that I'd have to buy.

William Kennedy:

Alright. Maybe there's there's yearly fees and some bandwidth costs, but if you need training and it's something that I have and it can help you, I have that scholarship form. I ask you how much you can afford. If the answer is 0, you're going to get it for 0. I'm not policing you.

William Kennedy:

I'm not, and I just ask when people do say, what can I do to in return? I say, you got to give it back when you can. When you can give this back because you're in a better place, then that's what you have to do. So there's a lot of motivation there in wanting to make sure that people have access to what they need. If if I can give that to them, great.

William Kennedy:

Now if you can afford $20, like, it's on you. Right? So the the other side of that is I'm not going to judge you. I'm not going to police you. I'm not gonna anything right now.

William Kennedy:

That's you on your conscience. So and that's fine. Right? And and some but at the end of the day, I didn't build all this material and then do all this stuff, so it would sit on a shelf and just collect dust either.

Jonathan:

Right. We have been talking for 42 minutes. Before we wrap up, is there anything else, Bill, that you would like to discuss or share with our our audience?

William Kennedy:

No. I mean, we this has this has been a a different conversation, probably we all expected. Right? And you go deep into GoTech and architecture and design, and I start talking about community.

Jonathan:

I I enjoyed it, though. I

Shay:

really like it.

William Kennedy:

Yeah. I just, if somebody has an idea on what's happening in the US with people not wanting to go to meetups or I I'd love to, I'd love to talk to you about I'm gonna have a meeting with the Go team actually in a couple weeks to talk about some of this as well.

Jonathan:

That's right.

William Kennedy:

Yeah. And try to get some some more questions on the Go survey.

Shay:

I have I have 3 suggestions for you for that. The the first one is, you know, when you, and this is not, this is totally for real. Just coming to places where you think the the the good thing is happening. Right? If you feel like the meetup, culture in Israel, in Tel Aviv is is great, you know, I'm I'm sure, we can host you.

Shay:

The next one's at, Checkpoint with a, Ben, who was also a guest on the show. You know, I'm sure I can find you a seat. And when you meet with a Go team, you can do 2 extra things. Right? You can ask them, you know, what would bring them out of of a meeting or a thing because they're so engaged and and try to understand how to bring them to that level of engagement.

Shay:

Or you can ask them to come here on the show, and, we can ask them for you. But that may be a bit too on the nose. You know what I mean?

Jonathan:

I I would just like to ask our audience, especially in the US, if you're not going to meet ups and you used to, why? What's changed? And let us know on on our Slack, channel that we've been talking about for the last 20 minutes. Yeah. I'd love to to have a conversation.

Shay:

Unless by the time this episode comes out, you know, they close the Slack down because they figure out Bill.

William Kennedy:

No more podcasts for Bill.

Jonathan:

Well, where can people go to hear about all these great resources? I mean, we have links to the go for Slack in our show notes and on our website all the time because we talk about it all the time. But Arden Labs, the training, the scholarship, everything you talked about, where where do people go for for these things?

William Kennedy:

The best way to always talk to me is over email, bill atardanlabs.com. Kinda live out of my email. I keep my inbox super clean.

Jonathan:

Mhmm.

William Kennedy:

And, I will get back to you in 24 hours. That's I I almost promise that. And if I can't respond in 24 hours, you're gonna get an email anyway saying, I need a couple more days.

Jonathan:

Okay.

William Kennedy:

So, I'm all about that. You could always reach out try to reach out on Twitter or Slack. I might ask you to send me an email anyway just just because I don't wanna lose it. Go and go, which was the go and go d o t net, which was the domain name for my first blog, go and go.net. Or you can find me on Slack.

William Kennedy:

So all that will be good, and I will give you, as as much time as I can and and and do my best to answer questions.

Jonathan:

We have one question we'd like to ask every, guest this year. Now we had different questions last year. This year, the question is, if you can remember as far back to when you were first learning Go, what most surprised you or what was the biggest challenge you had in that learning process?

William Kennedy:

I think it's the same problem that everybody has whether they recognize it or not right away. It's packaging. We have not been taught how to write software in terms of these sort of tiny little firewalls. Right? Like, we could have been writing software like this in Java where everybody wrote jar files and brought them together, or DLLs, let's say, in a CC sharp environment or gems in a Ruby environment.

William Kennedy:

Right? Like, name your language. There's some sort of sort of library mechanics there. Right? But we're not taught how to build software that way.

William Kennedy:

We're taught that a code base is a monolithic code base. It gets all built and compiled into this sort of one package, right? And so when you come to Go and you're trying to take these monolithic ideas and apply them, fine for small projects, but eventually your large projects crumble because you end up with what I call flipping the pyramid. You end up with a package or 2 that almost a large percentage of your project is importing. And now your your project is basically teetering on the point.

William Kennedy:

And usually, it's your types common types package, right, which is, like, the worst mistake. Find in Java and c sharp doesn't work in Go. So you end up flipping the pyramid, and then eventually it just falls down. And falling down means that you now need to make a change to something in that package, and you can't because the cascading code effect is so great, that either you do it and now you have no idea what you broke. I don't care how many tests you have.

William Kennedy:

Right? You end up not doing it, and you have to kinda start new.

Jonathan:

Right.

William Kennedy:

So packaging to me is was and it took me years, man. This wasn't like I figured it out for months. This was like I probably took a half a decade before I could really wrap my head around it, and another half a decade before I felt ridiculously comfortable with it. And the thought of not having it now, if I switch to a language that didn't have this concept of packaging, I I don't know what would happen with my brain.

Jonathan:

Well, now I think we need a whole another interview to talk about the solution to that whole problem because I think a lot of people can learn from that. I imagine you have some material about that.

William Kennedy:

That's that software, you know, ultimate software design Yeah. That that we go into. It's all about architecture. Come, come to 2 base realizations here. Architecture is about it's about 2 things.

William Kennedy:

It's about wrangling complexity. Alright? And I just want to say that you can't make something complex simple, but you can make it much more complex. So it's it's about it's about identifying and and and and minimizing complexity at all time. And the other part of architecture is about firewalls.

William Kennedy:

It's about where are you laying out these firewalls within your project, and I've got, like, 3 of them that I teach in terms of a of a project. Packaging is 1, horizontal layering is another, and then there's what I call vertical layering, which we can talk about domains around. Some people do the vertical layering of firewalls through microservices. Right? That ends up being, say, your your 3rd level of firewalls, and you you break it out of a process flow.

William Kennedy:

To me, there's a lot of complexity with that. So I've spent the last few years thinking, how can I have that vertical firewall in the scope of that single project? It still get the benefits of that isolation. Right? Because what firewalls are doing is they're creating isolation between different parts of your project, of your code, so multiple people can work without them stepping on each other.

William Kennedy:

Right? Where you're gonna have developer velocity. No. I was gonna say something else, but, really, it's about developer velocity. For me, architecture usually is not a technical problem.

William Kennedy:

It's a people problem.

Jonathan:

Yeah. Yeah.

William Kennedy:

And so I teach all that kind of stuff in the software design class, and and teach my ideas and explain why we're doing, and really try to avoid, the side of microservices until you can't. And, again, people problem, people problem.

Jonathan:

Is this covered in the ultimate Go Bundle?

William Kennedy:

Yeah. So the ultimate Go Bundle has as part of it, it has my classic Go class, which I call the micro class.

Jonathan:

Mhmm.

William Kennedy:

That's gonna teach you the mechanics. It's gonna teach you understand everything that's going on underneath in the runtime. Right? How escape analysis works and the GC works and all the language mechanics and syntax. Right?

William Kennedy:

Like, most people have to take that class 3 or 4 times over the course of a year. From there, you then take the ultimate software design class. And now that's the macro level class. Right? You take all those things we learned at a micro level.

William Kennedy:

Now you learn it at a macro level. How do you architect and design software and build it? Production level, so it can be maintained, managed, debugged, and and and we identify and minimize complexity. And then there is another class that I call ultimate go advanced, which is basically we build a blockchain. And it's advanced because now there's some really advanced concepts there with cryptography and, distributed, right, systems and, decentralization and all these crazy ideas that you have to bring into a blockchain.

William Kennedy:

And it's not about promoting blockchain. We're gonna build one that you cannot use in production, but you gotta go deep into the concurrency stuff now and Mhmm. Decentralization. And, oh, I got it, dude. It's, it took me 6 months to kinda build that code base, and, I'm happy I did.

William Kennedy:

It was a really great and fun experience, but that would be now your advanced sort of class, tying all that stuff back in.

Jonathan:

Right. Well, there you have it. Packaging is the, challenge. And now you have you know where to find the answers as well if you're listening and and want to to dig into that. So

William Kennedy:

Or at least my answers.

Jonathan:

Yeah. At least Bill's answers. Yes.

Shay:

Packaging in Go is is weird enough because you have to have the URL and, like, the Go mod file, and it also changed. Right? I learned it, like, 3 times already in my time with Go. Vendoring, I thought, was okay for a while, and then it turned out it's, not okay. And then there was Go Workspace, and, like, I guess it's not only, confusing to you.

Shay:

That's all I'm saying. Because many people find it Yeah.

William Kennedy:

But when I talk about it, it's more it's more about how do you design an API for a package? How do type systems play a role in that? Where is there's purpose? Where does that package belong in your project? It's all those sort of software engineering conversations.

William Kennedy:

Right? Like, the mechanics for the imports.

Shay:

I think when when the mechanics are hard, it's it's hard for you to it's, like, it's hard for you to even think about the theoretical stuff. Right? Even if you know it, if you even if you bring the theoretical stuff from a different language, if you struggle with the mechanics, it might be difficult to get over that hump because it is very easy and very tempting to, alright, we'll just rank it at all into a big monolith and someone else, you know, 2 years down the line. They'll decouple it at some point. It's fine.

Shay:

Just ship it.

William Kennedy:

Well, I could tell you that when I started designing and writing better packages, better package APIs, I had rules about where they where they were to go. The mechanics kind of the mechanic problems disappear. So if you're struggling with some of those mechanics, I would almost say maybe you're not designing these packages as well as you otherwise could. But there's a it's a long road. I told you.

William Kennedy:

It took me 5 years to get to some place where I felt good and another 5 years to feel really good.

Jonathan:

Alright. Well, let's wrap it up on that note. I feel good about this conversation that's happened, and it didn't take 5 years to get there. So that's nice.

Shay:

Just one year to Thanks a

Jonathan:

lot, Bill, for coming on and sharing your community experience, and and, you saw your wisdom about packaging.

William Kennedy:

Alright. Thanks for having me.

Shay:

And thanks a lot for all the community work, man. As a member of the community, first and foremost, I I super appreciate it. Definitely. Keep it up.

William Kennedy:

We're trying. We're trying. We're trying to break through the rest of this COVID nonsense and and be as strong as we were in in, 19. 19 was a great year, man. We did a lot and hoping to get back there definitely by next year.

Jonathan:

Awesome.

Shay:

Thanks a lot.