4 Is Not a Secret & Go Dev Advocacy with Ainsley Clark

Shay Nehmad:

If you're here just for the jokes

Jonathan Hall:

I'm sorry. See what guess. Yeah. Sorry.

Shay Nehmad:

Better jokes.

Jonathan Hall:

For sure. This is Cup of Go for 10/23/2026. Stay up to date with important happenings in the Goat community in about fifteen minutes per week. We might try to do it in ten this time. I'm Jonathan Hall.

Shay Nehmad:

Wait. How... And I'm Shay Nehmad. How do I know that you're Jonathan Hall? I don't trust you.

Jonathan Hall:

You shouldn't

Shay Nehmad:

trust me. I don't trust anybody this week. Put your tinfoil hat on. So many vulnerabilities, PHP and the root CA... Oh my god.

Shay Nehmad:

I don't trust It's

Jonathan Hall:

it's been a week for sure.

Shay Nehmad:

It's been a week. It felt like a month in security land. Yeah.

Jonathan Hall:

If you work in security, you can't wait for this week to be over.

Shay Nehmad:

Yeah. Good news is Friday. Hug ups to all the security teams in the world, basically. We have two topics today, and then an interview with Ainsley from JetBrains coming up too. Yep.

Shay Nehmad:

So stay tuned for that. Why don't you start? What do you have... What have you just finished before we started recording?

Jonathan Hall:

Just before we hit record, not not even an hour before, I'd finished taking Go developer survey for the year. It's it's all about AI. Can you imagine that? Everything in there is about AI.

Shay Nehmad:

A what? No, I'm just kidding.

Jonathan Hall:

How do you use AI with Go? How do you wish Go would be better with AI? All this fun stuff. And then the one question, the only question I knew was going to be there before I took the survey was where do you get your Go news? Because some of the folks on the Cup Go channel were mentioning they answered Cup of Go there.

Jonathan Hall:

I didn't because I don't listen to the show for my news.

Shay Nehmad:

Well, you do the show for your...

Jonathan Hall:

I do the show for my news, but I get the news from other places.

Shay Nehmad:

Yeah. So thanks, Schultz and Peter Aronoff for for letting the GO team know about us. That's... You know, if we can get some of the GO team on the show, that would be awesome. So whatever...

Shay Nehmad:

Just get them to know about the show. So who designs these surveys? Who comes up with them?

Jonathan Hall:

Well, I don't know who did this one specifically, but you may recall that we had Alice Merrick on the show. Gosh, was it close to two years Yeah. Ago by

Shay Nehmad:

July 2024, episode 73.

Jonathan Hall:

I've been at Google for, I don't know, I guess a little over six years now. And I used to work on other kinds of developer tools, mostly in cloud. So I worked on some some stuff that was internal to Google. So like our internal developer tools and some stuff that was more cloud related. So she what was her title?

Jonathan Hall:

She she does basically go develop UX

Shay Nehmad:

researcher.

Jonathan Hall:

There you go. UX research for the Go team. I don't know if she's still there. I haven't heard about her leaving, but I don't know where I get my Go news. So how would I know?

Jonathan Hall:

Alice, if you're listening, thanks for keeping up the good work or if you're still there and if you're not, thanks for doing good work before you let...

Shay Nehmad:

Oh, she started at JPMorgan Chase.

Jonathan Hall:

I see. So she's not at GO anymore. LinkedIn. Well, somebody took her role presumably and built... Wrote the survey for us.

Jonathan Hall:

It might have might have been someone named Claude. I don't know.

Shay Nehmad:

Yeah. So how long did it take you to complete the survey?

Jonathan Hall:

Oh, probably ten, maybe fifteen minutes. And I rushed through a couple of the things because we were about to start recording. So there were a couple of places where I would have written a longer answer if I wasn't rushed for time.

Shay Nehmad:

Procrastinated on it, but now that I know that you've done it, I feel like a social pressure obligation to fill it out myself because that's the best way to let the team know what they should work on and what they should focus on, right?

Jonathan Hall:

Pretty much, yeah. Is it the best way? Now now that you're It's a good way. I don't know if it's the best way, but it's certainly a good way and it's an easy, low, low Yeah.

Shay Nehmad:

It's low after ten minutes. You get... And I think also, unlike other product surveys, it also helps you think about like how you do stuff through the questions. You know, they come out with like what IDs you're using. They're like, oh, look at all these IDs, or I guess this one's gonna be like what agents you're using, what cloud services you're using.

Shay Nehmad:

It sort of helps you understand where you are in the community right now.

Jonathan Hall:

I had two complaints about the survey. The first was that when I asked, where do you get your GOOD news? They only allowed three answers. And I intentionally scour many, many places for GOOD news, so I had more than three answers. So I had to drop some off.

Jonathan Hall:

The other one was it asked if I use GoTelemetry. We talked about this on the show many times since almost the first episode, right? It was going to be opt out and then they famously made it opt in. The question was, do I use it? And I was like, I don't remember.

Jonathan Hall:

So I had to go check and I do not. But they don't have an option in the answer list for I do not because I forgot to or because I reinstalled my operating system and didn't re enable it, which is what happened to me. So I had to choose a lie that said, no, I don't use it because I didn't know what it was because that was the closest that came to my actual experience.

Shay Nehmad:

I guess if you didn't know, maybe it should ping you once every six months or whatever. Just like, by the way, you have it turned off. So here's our our bi yearly check-in if you wanna undo that decision for you or something like that. But Yeah. I'm happy that it's an unintrusive, to be honest.

Shay Nehmad:

Yeah. Like,

Jonathan Hall:

fair enough.

Shay Nehmad:

They use... Yeah. They lose some telemetry, but they probably get enough.

Jonathan Hall:

It's on now, by the way. Now that I've taken the survey, I've turned it back on. Yeah.

Shay Nehmad:

For me, it has been on. So maybe I've been a better ghost since then. And you all...

Jonathan Hall:

Yeah. Maybe so. You probably are.

Shay Nehmad:

I have procrastinated. I have procrastinated on the survey. I'll I'll fill it out. And we highly recommend our listeners to fill it out too. And you don't don't feel obligated, but if you put cup of go in where I hear about my go news, we would highly appreciate it if it's true.

Shay Nehmad:

If it's true. Yeah. Yep. If you're here just for the jokes

Jonathan Hall:

I'm sorry. I guess.

Shay Nehmad:

Yeah. Sorry. Get better jokes.

Ainsley Clark:

For sure.

Shay Nehmad:

Okay. So we've mentioned that this week in security has been a week. There was a Go security release. And if you've been listening for this show for a while, you know, there's there's a certain, pattern for how these sound. Right?

Shay Nehmad:

Like, say, oh, there was change in the HTML package. And then Jonathan's like, oh, was it a parsing bug? And I was like, yeah, it's a parsing bug. Or there was something in networking or, you know, something like that. Yep.

Shay Nehmad:

This story is not about Go particularly. It's, something that happened that's external to Go, but does impact the the Go, standard library. You have to update it. And before we go into it, update it. Like, this is a critical industry shaking security problem and you have to update your Go versions.

Shay Nehmad:

And if you're on like a version that's older than two miners ago, now is your chance to say, all right, the buck stops here, I have to upgrade. So before we even go into it, you might wanna understand why and whatever, and I'll try to... We'll try to elucidate, like, what's the issue. But the important part is you should upgrade because a certificate authority had a problem. Does that sound bad?

Shay Nehmad:

I'll try to make it sound bad. I'll try to, like, drum up some fear, which is Halloween esque, but I think also justified. Do you remember... Do you read XKCD, Jonathan?

Jonathan Hall:

I have before. I don't read it on the regular, but I've definitely read it before.

Shay Nehmad:

Do you remember XKCD two twenty one? Oh, yeah.

Jonathan Hall:

Of course. No. I don't remember the numbers.

Shay Nehmad:

Well, let me let me read it to you because it's very short. It's a function called int get random number, the implementation, curly brace, return four chosen by fair dice roll. So, it's guaranteed to be random. Why am I bringing this particular thing up? Do you know?

Jonathan Hall:

Gosh, I have no idea why.

Shay Nehmad:

No, I'm asking... Legitimately, I'm asking. Don't know how much you know about this vulnerability.

Jonathan Hall:

Very little, but I've seen some of the memes in LinkedIn and other social medias. So I have I have an inkling of an idea, but I think you'll explain it better than I'll guess it.

Shay Nehmad:

So remember the number four, right? Yeah. Let's say I call, I have a Go service that calls a payment API like Stripe or whatever. What protocol would I use to like encrypt my communication and know that I'm actually talking to Stripe?

Jonathan Hall:

Protocol? Some sort of public but key I don't know exactly which protocol it is. Yeah.

Shay Nehmad:

Yeah. So normally it's TLS, like, you know, beneath HTTP that pieces together confidentiality, protection against tampering and like authentication that actually know that I'm talking to Stripe. And like you mentioned, this has a public key, private key encryption mechanism. Meaning, you know, let's say you are the payments API. Right?

Shay Nehmad:

Which, you know, not to get too behind the screens for this show, but it's not that untrue. You have a private key. Right? Yeah. That that creates signatures and a public key that let others...

Shay Nehmad:

People... That let other people like myself verify them and you give me the public key. Right? You give everybody the public key. The way it works is a certificate.

Shay Nehmad:

You have a website and you publish a certificate that says this public key, da da da da, belongs to this domain, you know, paymentsjonathan.com or whatever. You know, I can prove that I have the corresponding private key. So I can prove to you that it's me. What prevents me from now generating a key and saying, oh, I'm Jonathan on it? Like, why would...

Shay Nehmad:

Why wouldn't people believe me more over you in TLS?

Jonathan Hall:

I think I lost the plot there.

Shay Nehmad:

Have a certificate. You have a certificate that says Right. I'm, Jonathan. Here's my public key, and I can prove it by... I have a private key.

Shay Nehmad:

But I can also do it. I can generate some private key and public key pairs.

Jonathan Hall:

It needs to be signed by somebody that cryptographically proves that they're trusted.

Shay Nehmad:

It needs to be signed by your certificate authority.

Jonathan Hall:

Right.

Shay Nehmad:

So we have these, like, trusted companies that ostensibly have this, like, really good, great process and whatever. Because a lot of people need certificates, a lot of websites need certificates, you have Root certificate authorities and then you have intermediate certificate authorities, which are like their certificate is signed by the root and they on their behalf can sign your certificates for you. And importantly, your software, for example, your browser, your operating system, or in our case, Go standard library trusts, already trusts that root. And therefore, the certificate of the intermediate certificate authorities as well. So in your Go code, there's a hard coded thing that says these specific companies are certificate authorities that we trust.

Shay Nehmad:

And the intermediate certificate authority or CA has like dedicated permissions to issue these certificates. So I, if I forge or I guess if I issue my own certificate, right, that says, I'm Jonathan, I can do that. But let's say you use a browser to open that website, it looks at the certificate and then it says, oh, it's not... I don't trust, like, just shy with this signature. Whereas your, like, legitimate certificate, you got it, let's say, through Let's Encrypt or whatever, it's signed by an intermediary, which was signed by the root.

Shay Nehmad:

Your browser will say, oh, I trust this certificate. It's valid. It's

Jonathan Hall:

correct. Right.

Shay Nehmad:

And the reason to have that extra layer, by the way, the intermediary instead of the root, is just because you don't want the private key of the root used all the time because if you have that, you have the entire Internet, basically. If someone gets the root... The the CA's private key, they can create certificates, though. So if I go to the whatever intermediary certificates authority and steal the private key, I can create certificates that seem valid for other websites, even if they are not a customer of that. Let's say you did yours with Let's Encrypt or a super highly secure software.

Shay Nehmad:

I can still use the whatever intermediary CA, your browser will trust it because it just trusts it. Introduce eMudhera, I think that's how it's pronounced, which is an, Indian digital identity and certificate services company, whatever. They're an intermediary CA. You can sign, eight of their private keys were compromised. And calling back to the beginning of this explanation, you wanna guess what the private key was?

Jonathan Hall:

Was it 4?

Shay Nehmad:

It was 4.

Jonathan Hall:

How is that even a valid private key? Aren't these supposed to, like, be built off of prime numbers and something?

Shay Nehmad:

So you use it to... It it should be it should be a lot of things. I don't wanna turn it into a cryptography episode, especially since Yeah. Both of us don't fully understand it. But, you know, the private key is a number, and then you calculate the private key...

Shay Nehmad:

The public key from it, and the calculation is is easy in one direction. From private to public is very easy, but from public to private should be computationally impossible. But all their eight numbers fit in a byte. They just use really, really, really small numbers, like four, seven, whatever. I think they use two to one, which is the XKCD number as well.

Shay Nehmad:

So, you just take these small numbers, calculate the public keys and you see that... And compare it to the certificate and you see that you can get all of them in less than a second.

Jonathan Hall:

How that happen? How did they get a private key of 4? Was it just a bug? Was it it... Like, certainly that wasn't random, right?

Jonathan Hall:

They didn't randomly choose four.

Shay Nehmad:

So they have an explanation, this company, but I would say that their immediate response was, we are not in this business anymore due to the online backlash and we will focus on other offerings. So they don't do this anymore. I would assume that they just, you know, ignored all security protocol and all trust that was put in them and they behaved... I don't... This is a podcast for news.

Shay Nehmad:

Just for information, nobody sue us. Like, I wanna tread carefully here. I don't want to defame anybody. According to their explanations, they had a key generation ceremony and they used like a flawed key wrapping and unwrapping step, you know, they... That generated weak keys.

Shay Nehmad:

It was a mistake, basically,

Jonathan Hall:

is what they But were

Shay Nehmad:

I I I just wanna say this is from public knowledge, and we're not defaming anybody, and this is just for educational purses... Purposes. Don't sue us. We're just two guys. And the exact two laws is still under investigation.

Shay Nehmad:

Let's go, let's go a bit more, technical about Go. People might be listening to this and say, third party company generated some wrong keys. Why do I need to update my service?

Jonathan Hall:

Right? Exactly. Yeah.

Shay Nehmad:

I can now generate certificates on behalf of this company's name. Your Go service or your browser before October 17 would trust them because my certificate authority or not my certificate authority, this company's certificate authority hard coded, oh, please, you can trust them because, you know, they're a certificate authority. So you have to update actually a lot of layers in your stack. If your software is deployed in a, you know, if you have a Go service, you need to update your Go standard library to remove them from the... Remove this certificate authority, right, from the list.

Shay Nehmad:

Also, should upgrade your Docker files. You should upgrade your, certificate files inside these Docker files by doing up install or whatever, if you're on Linux. Like you got to check a lot of layers and you got to curl these certificate, like try to curl a domain that is signed by the certificate authority from every layer in your stack to make sure that it's rejected. So you want to get an error now. You don't want to successfully reach these services anymore because they're not trusted.

Shay Nehmad:

If you can, if you don't get an error, that means that I can impersonate whatever critical third party service your software talks to and you wouldn't know. So I do need something else to like hijack the connection or do men in the middle or whatever. But since, you know, the Internet is like a public space, that's exactly the thing you you should be afraid of. Like, you should be afraid of people having men in the middle. You should be afraid of people sitting on your Wi Fi network, and all these protocols are there to say, oh, okay.

Shay Nehmad:

I'm I'm using public infrastructure, but I have trust. These eight these eight certificates now, that have been compromised sort of lose trust in the certificate authority. So you gotta make sure your computer and everything on it doesn't trust this anymore. That's the the the problem. And again, let's say, Jonathan, you did your certificate with Let's Encrypt or some other company.

Shay Nehmad:

Yeah. That doesn't matter. I can still sign your website with this intermediary certificate. So it's not like providers can protect themselves like vendors. Yeah.

Shay Nehmad:

It's up to every client to update. So now, you know, every DevOps person listening is probably like, yeah, that's why I have to roll out, you know, repave my entire infrastructure this week. Very, very nasty problem. Browsers are okay because they've been updated pretty early. Yeah.

Shay Nehmad:

You need to update because Crypto x 5509 verify doesn't perform revocation checking, so you just gotta update. Yeah. Gotta update to 127 point 3 and 126 point 10, and make sure you deploy it.

Jonathan Hall:

Yep. Alright. I think we've been talking long enough. I need to go upgrade my Go version.

Shay Nehmad:

You gotta you gotta go to

Jonathan Hall:

do While the listeners listen to this amazing conversation we had with Ainsley.

Shay Nehmad:

Yes. Thank you all so much for listening. No ad break, but please support the show. The best way to support it is via Patreon. I wanna say thanks to our new Patreon supporter from this week, think maybe it was last week, Christophe, thank you Christophe for becoming an Adelina Simion member, we appreciate it.

Shay Nehmad:

Find the link and all the news and all the things in cupago.dev. Awesome.

Jonathan Hall:

See you next week.

Shay Nehmad:

Maybe, we'll see, it's Halloween, we need to see if we're

Jonathan Hall:

Oh, actually that's true. Maybe we'll see you next week or maybe-

Shay Nehmad:

Extra spooky every now and. Although, I don't know how we can get more spooky than intermediate CA was was

Jonathan Hall:

that. Figure something out. Alright. Until next time.

Shay Nehmad:

Don't trust anybody. Goodbye. Alright. Jonathan, what's up? Are you feeling it?

Jonathan Hall:

Yeah. I'm feeling it.

Shay Nehmad:

Are you feeling it? There's something in the air tonight. In the air. Air, the new JetBrains thing. Have you heard of it?

Shay Nehmad:

Oh, good. We have Anthony. Maybe he can tell us about it. Hi, Anthony.

Ainsley Clark:

Hello. Hi, Jonathan. How are you?

Jonathan Hall:

Good. Thanks for coming on.

Shay Nehmad:

Did you say I go landed that joke?

Ainsley Clark:

No. You certainly did. I did. I'm certainly my colleagues.

Shay Nehmad:

Have you got your own listeners?

Ainsley Clark:

Yeah. Of course, man. I'm Ainsley. I'm the Go Developer Advocate at JetBrains. I've been there about since July, so maybe four months.

Ainsley Clark:

I started off in Go maybe 2019 coming from web dev, a lot of PHP. And one day my boss said to me, let's start using some Go. And I hated it to begin with. I tore my hair out and didn't know what a struct was for ages. But then I started to slowly fall in love with it and moved to Just Eat Takeaway, big, delivery platform in The UK.

Ainsley Clark:

And then, yeah, I like the kind of being in the community and things like that. So I, joined JetBrains a few months ago to meet more lovely people who love Go as well. So... Yeah.

Jonathan Hall:

Imagine this week you're feeling like not doing PHP is a good thing though.

Ainsley Clark:

Yeah. So I

Shay Nehmad:

would This week say specifically.

Jonathan Hall:

Go hasn't been without... Hasn't it's been without impact with security... With regard to security stuff this week, but it's been much much more minor, speaking. Yeah.

Shay Nehmad:

Yeah. It's been... We've just gotten hit, you know, with the same, like, lawnmower with the same height as everybody. Yeah. With PHP being like a huge rock that breaks the blade of

Jonathan Hall:

the of the security lawnmower this week.

Shay Nehmad:

We talked about this slightly before recording. We sort of assumed that, oh, everybody's listening is gonna know JetBrains. But just in case, you know, there are listeners that, you know, haven't heard of JetBrains before, like, can you give us a skinny of what is JetBrains? What do you all do?

Ainsley Clark:

Yeah, yeah, of course. Like, so we've been making like developer tooling for well, over twenty years. I feel like is it my boss is going to be listening to a better history lesson now, if I've got that right. But no, I think, yeah, we've been making a lot of people probably know us for our IDEs, but most recently, and hopefully know us for like excellent developer tooling. So yeah, we focus on kind of just making engineers lives a bit easier.

Ainsley Clark:

Specifically to Go, we have Goland, our IDE, which I've been using for ages and love it. Yeah, what do you guys use?

Shay Nehmad:

Oh, OpenCode. I used to use JetBrains tool and I've been getting into... I don't know if it's an IDE, it's like air. I don't know how would you classify it because it's like an agentic experience mediator. I don't know how would you...

Shay Nehmad:

How do you how do you call these new sets of tools that like sit between you and your and your harness? But I used GoLand before and PyCharm before that.

Jonathan Hall:

I used to use a lot

Shay Nehmad:

of JetBrains tools, but, actually my main IDs are just like VIM and whatever is fast and and has VIM keys. So it used to be Versus Code for a while, but now it's Zed, which I've been, loving as well. But I'm the sort of person who always likes to move between tools. Every, like, couple of years, I'll refresh my, okay, I used to do VIM and now I'm on VSCO, then now I'm on Cursor, now I'm on Zed, and now I'm on AIR also. I'm trying it out, which is pretty cool.

Shay Nehmad:

It's not... Would call AIR an IDE? Or how would you define it?

Ainsley Clark:

I think the buzzword is agentic experience, but I call it like an AI environment. So I think the argument is, is that for... I think as well, like we've been spending the last thirty years in such a really nice polished IDE. And then now all of a sudden, we're going back to like 1995, and we have to go back to the terminal, which is a bit weird. So now like air, you can have your prompts, your chat, directly next to your code, which is I which I think is the way it should be.

Ainsley Clark:

I don't think we should be forced to use to the terminal again, if you don't want it if you're not comfortable with it. But it has a lot of context around the code, it makes it a lot quicker. And there's lots of things that make it a bit more a bit more magic as opposed to using a Claude UI, I guess.

Shay Nehmad:

And what not to put too much focus into it, but I assume, well, maybe it's a bad assumption actually, but that inside JetBrains, Go developers try to use a lot of different things to like understand what's going on. It's not like, oh, I'll only use the Go land, oh, I'll actually do try to use the CLI to see what the codex has been cooking and I also try to use Zed to see how the rendering is so fast. And I also try to use Vim so people think I'm cool and whatever.

Jonathan Hall:

Does that work? Do people think it's cool when you say Vim?

Shay Nehmad:

Like to procrastinate on actually doing my work and I just wanna work on configuration files all day. So is it true? Like, do you use a lot of different options inside, like the Go development inside JetBrains or do you all just use Go land and try to dog food as much as possible?

Ainsley Clark:

I would say more the latter. I think marketing and research are more trying to look into the competition and things like that. I would say that I need probably need to do a bit more. I'm probably just at home at JetBrains, but the Go developers at JetBrains are very I mean, they're insane, because they know I was very intrigued about when when I started, I was like, so they know because JetBrains is built in Kotlin, or the IDE and everything like that is built in Kotlin. But they have to understand the Go compiler very, very deeply because because of our language, like intelligence.

Ainsley Clark:

So these guys know a lot of lot of Kotlin, but also they're very deep in the Go compiler. And when I started, it was quite funny because they said, Oh, you can give us some real world use cases and like, you know, APIs and stuff. And I'm like, No, you guys are the guys are the clever ones. Don't look at me. But, yeah, they're they're very intelligent.

Shay Nehmad:

How much Go development is happening, like, in JetBrains? So the idea itself, you mentioned, written in Kotlin, which I didn't know, but good to know. I always thought of it as, like, a mobile development language, but I guess you built the idea with it as well. But is there like Go development happening inside JetBrains that's like, I don't know, for some back end services or what, if you

Ainsley Clark:

can tell us? Actually, there's there's not. It's all in It's all in. I think it's all in Kotlin. I'm not that close to the code.

Ainsley Clark:

But we originally developed Kotlin, but I don't remember when. But the Go developers that are working on Goland specifically, they're very hot on what's coming out in Go, you know, months before. So they're looking at the Go repo to make sure that if there is something that goes, that's a bad joke, that goes in the repo, then it's going to be gonna be in it straight away. So, yeah.

Jonathan Hall:

I suppose I I was just looking up Kotlin because I've never used Kotlin, but clearly you just mentioned this. It was created by JetBrains, so it makes sense that you use it heavily internally. So what what do you as a as a Kotlin company or the Kotlin company, what do you talk about at Go conferences?

Shay Nehmad:

Yeah. So that's a great question. I

Ainsley Clark:

started out talking, my first talk was, was it last year? Yeah, last year at the GovCon UK about how Just Eat manages microservices, and we had like this developer tooling. I found it really, really hard. Like I was getting in my own head. I was very,

Shay Nehmad:

very

Ainsley Clark:

nervous. But once you get on this stage, like, I just felt so much relief, and I felt like I conquered it a bit. And I kind of just signed up for more and more. And yeah, I'm really enjoying it. Speaking about, I think the one that UK I've just done is how to stay passionate in the age of AI almost because I don't know about you guys, find that, like, writing code for me was like a passion.

Ainsley Clark:

As now all of a sudden, I'm not doing it anymore. And I felt a lot of people felt the same way. And I was kind of discussing that there's kind of two sides to the coin, whereas, you know, you're passionate about writing and you want to see like a polished code base. And on the other hand, you just want us or the other side, you might just want to see the result, the product. But I think people with the former care more about the code that tend to feel like a little bit more lost in this new kind of era, I guess.

Jonathan Hall:

Interesting. Yeah. Yeah, I certainly heard people talk about how they feel like it's sort of a... The joy of programming has been lost, and I don't identify with that at all. I feel a revigoration that like I can do so much more now than I could before.

Jonathan Hall:

Like when I was eight years old and learning to program the first time, it was like, oh cool, I can control things with my mind. Like, I can think of something and make it happen the course of a few hours or a few days or whatever. I feel like I've got that again. Like, the things have gotten so much more complicated than they were on my dad's eight bit computer. It didn't take a lot to do something there.

Jonathan Hall:

Now to make something a reality, it's a lot more involved, but like it's gotten easier again and I can go from idea to reality in a much more compressed timeframe than I could before. So, I have felt the exact opposite of what some of the people have said. It may be different than you, that to me, it's like, I love that I can do these things again quickly and see the result quickly. But if you truly do enjoy the practice of writing code And not that I don't enjoy it, but that's always been a means to an end for me. If that's what you enjoy, could certainly see the feeling that something's been taken away.

Ainsley Clark:

That's interesting. What about you, Shay? Do you like seeing the final product or would you say that feel a little bit lost now?

Shay Nehmad:

Bit of column A, a bit of column B. To be honest, I work on products that I'm pretty passionate about, like, which is pretty rare because I work in like enterprise data security and cybersecurity and whatever. But cybersecurity has always been very interesting to me. So I am very interested, like, I really love the moment where, you know, we get an email from a customer and we have some here on the other side of the wall that you can see that are like, oh my god, we use this and we actually detected a, you know, a insider risk employee that was trying to steal the data and your platform solved it for us. Like that feeling is incredible.

Shay Nehmad:

But I really do care about... Well, I've trained myself to care a lot about craftsmanship. So when I see, you know, I build like a system for us that auto generates the API documentation. And then Yes. Agents super love ignoring that system and adding a ton of API documentation that's like totally superfluous to the code.

Shay Nehmad:

And then I'll see it and like, to me, the craftsmanship of like, a human wouldn't do this because... Or I wouldn't do this this way, And I have a more elegant way to solve it that's more accurate, that's gonna cause less maintenance after... Or when I read comments, you know, I used to really care about having good documentation and now some of them literally read like riddles. It's like the load bearing bullshit is whatever X, but the other part is the Y. And like I read it and you know, English is my second language.

Shay Nehmad:

I'm like, I can't parse it. I just can't parse it. I can't

Jonathan Hall:

understand. English is Claude's second language too, just just to be clear.

Shay Nehmad:

So I... Me, it's not like manually typing the code I miss, even though I I do... I I was like Vim and shortcuts and configure it. I'm I'm fine with giving that away. I'm not fine with giving away the the craftsmanship.

Shay Nehmad:

And I also hate that because I'm on Twitter a lot and whatever, feel like it's a skill issue. I hate that like, I can't just say, oh no, I'm pretty good at programming, like at coding and designing like low level software and whatever. Is not something that we need to give away yet. And where in Twitter, everybody's like, oh, I made a thousand PRs. And if you're if you're doing less than a thousand PRs a week, it's just a skill issue and you're not gonna make it and you're gonna be part of the permanent Adelina class, whatever.

Shay Nehmad:

So it's not hard for me to not stay passionate, it's hard for me to not become like angry about, like, because in the end of the day, I consume so much slop over the day that it like, it crushes my soul, but it's not like I'm not passionate about it. It's just instead of being happy, like coding all day, like angry. Like, why am I dealing with all this slop all the time?

Ainsley Clark:

Well, it's interesting, because I like these talks, how they can spark debate. And I did exactly the same talk in Amsterdam at a Go meetup. And people were talking and I really liked that. And I think talks are divided into two categories in my mind. One is like, I built this or another thing is I know this.

Ainsley Clark:

Sorry. Yeah, I know this and I want to show you this. And I think I much prefer the I know this from a softer side because or a high level side about careers and all of this stuff that is going on with the industry. Because it sparks debate, and it's a bit more relatable. I think if you're talking to someone very about something really technical that you know, it's harder to have a story or something to for the person to relate to.

Ainsley Clark:

But where if it's if it's I built something, then I think the story goes with it. You can can tell a story how why you built it and things like that. So I find the talks really, really interesting and loving it so far.

Shay Nehmad:

The Go meetup in Amsterdam used to be Jonathan's meetup.

Jonathan Hall:

Yeah, I was one of the organizers.

Ainsley Clark:

Oh, fair.

Jonathan Hall:

Yeah. Before he moved to... No. He moved to Georgia and killed the one that was here apparently. They haven't met since

Ainsley Clark:

I got here. I was gonna say, do you used to live and work in The Netherlands?

Jonathan Hall:

Yeah. I lived in Amsterdam for ten years. Yeah. I just I just moved here about a year... About two years ago now.

Jonathan Hall:

Yeah.

Ainsley Clark:

You know there's some... You know a lot of Dutch then? Nay. Okay. I

Jonathan Hall:

can order a beer. That's about all I need. Everybody speaks English in in Amsterdam. So, you know, I started to try to learn it at first and it was not necessary and not easy to pick it up because because you don't need it.

Shay Nehmad:

Let's say, you know, he's a gopher, so he's not into learning a lot of new keywords in a length, you know. That's just like so much more complicated than Golang.

Jonathan Hall:

Yeah, that's true. Yeah.

Shay Nehmad:

I wanted to ask, so I know that, you know, these like talks, these events, these, whatever, if you come from a specific, company that's not developer oriented, people... Your your association is usually just like, oh, we're hiring, so that's why we're coming to these events. JetBrains is a developer tooling company. So you're coming to these events and you're like, hey, by the way, maybe you wanna buy like JetBrains. Maybe you wanna become our customer.

Shay Nehmad:

What has been the sort of feedback or vibe that you've been getting? Are people coming to you and are like, oh my God, I'm a Chad Brains fanboy, I've used your ID since I was 12, can I get a sticker? Or are people like, oh, your ID is slow, I hate it. Because I know that at work people get really passionate about their tools, like, in all the jobs I've been at, people are like, no, you know, ten years ago, I was like, you have to use VIM, no, you have to use Emacs, you have to use JetBrains,

Jonathan Hall:

you have

Shay Nehmad:

to use whatever. Now it's more like, no, of course, Claude is better. Of course, Codex is better, whatever. Do you get a lot of these passionate feedback, like when you go to these conferences?

Ainsley Clark:

Yes, absolutely. And I... It's quite hard to manage the well, I think I'm having more in-depth conversations with people that are more open minded about trying like different things or something like that. But I think if someone's comfortable in what they are, they're in, then fair play, you know, I'm not going to try and bite your arm off or try and convince someone to try and use our tooling. It's very interesting seeing what people use and how they react to it.

Ainsley Clark:

Yeah, there's been the market share is still quite broad. Yeah, but you you there's still a fair few people coming to grab some swag. That's for sure. You can't be a fluffy gopher.

Shay Nehmad:

That's why I'm growing out my hair. No. Good

Ainsley Clark:

man.

Jonathan Hall:

I'm curious how how that tribalism or territorialism about tooling might differ in different places, different cultures. And you've been going to various Gopher cons. So you were just recently in Africa, I understand you went to Gopher Con LATAM. You and I met briefly in Seattle. Have you noticed differences between these different places as it relates to this or in other areas as well?

Ainsley Clark:

Yeah, I really have. And I think I think it all comes down to like, maybe the culture of the place. But I have to say when I went to Africa, I know, or Kenya, I should say, I've never been to Africa before. But even before stepping off the plane, I could see like everyone just together, laughing, sharing a, you know, sharing a joke. And I felt so throughout the whole conference, I did a workshop on, I think it was a Wednesday, but throughout the day, six hour workshop that Bill Kennedy said to me in Govassori Bolgdorf, can't be there.

Ainsley Clark:

Can you do it? And I was like, I don't have any content, man. He was like, just do it. And I was like, okay. So I'm really passionate about front end is front ends in Go.

Ainsley Clark:

So we I did one, like domain driven design for front end in Go. And basically they I taught them all about DDD and things like that. And then at the end, I just let them go wild with air. And then you could building these websites. It was like these animal sightings websites.

Ainsley Clark:

But yeah, the whole the whole time I was there, the workshop was great. I mean, a lot of things went wrong, but they will. But the community there was just, it was just so welcoming. Like, was really, really, really, really good. I'd definitely go back there.

Ainsley Clark:

I think everyone, yeah, everyone was just so friendly. And I've come back to The UK. And I don't think this is necessarily maybe a go thing. But even coming back to The UK, there's Southern England, we're synonymous for being a bit grumpy, but in the North, people say hi a bit more. I've come back and I wanted to be a bit more Kenyan than be a bit happier, be a bit less grumpy.

Ainsley Clark:

But yeah, the communities, I mean, everywhere, they're really, really good. And I love being part of GO. I I've... Be fair, my opinion's a bit biased because I've only been to Go conferences, I would say. So maybe I need to go to others, but I don't see any reason to change just yet because everyone's just so lovely.

Jonathan Hall:

Yeah. It's really good. All the other conferences, the people are angry anyway, so you don't wanna bother.

Ainsley Clark:

Yeah. I think you said that to me actually there.

Shay Nehmad:

I've been to a few, like, not language specific, but AI agents specific conference in San Francisco and you just don't have the same, like, camaraderie. Sometimes it's really awkward too. Maybe it's a San Francisco thing and not a AI agents thing. Maybe the AI agents conference in Nairobi is awesome. But, you know, you walk up to a person and they're like, how many tokens did you burn yesterday?

Shay Nehmad:

I'm woah.

Ainsley Clark:

Quite aggressive. Yeah. Yeah. Awesome.

Shay Nehmad:

So we, are coming up on a a wrap here and we have a stumper question that we ask every interviewee. It used to be who's... What's your favorite feature and what's your least favorite feature? And then we had both... We ended up with both columns, so we started to change it every year.

Shay Nehmad:

Well, we're gonna have to change it soon. I hope don't you're thinking about I don't have one, ready. But it's what is your favorite third party library, in the Golang, like, ecosystem? You mentioned you do some front end, so maybe something there?

Ainsley Clark:

Yes, I would say it's TEMPLE to be honest, because I think that compile time, anything is better than runtime anything. So SQL C and TEMPLE are my absolute favorites because you can just catch things before they go to prod, right? HTML template, I feel like Temple is what HTML templates should be. And you can actually pass structs around, as opposed to something a bit looser that might panic and prod. And yeah, the way that they've built the LSP and stuff, think is awesome.

Ainsley Clark:

And I wish, considering this week, I wish more front ends were built in Go.

Shay Nehmad:

Less PHP, please. Yes. So it's Tempel, t e m p l, for anyone, like, looking for it.

Jonathan Hall:

I I use Temple two. Yeah. I don't use it extensively, but I I've... Have used it... Temple two,

Shay Nehmad:

you use it with Go two? Yes. It's incompatible? No. I'm just kidding.

Shay Nehmad:

I haven't used it before, but it's funny that you mentioned the LSP. I mean, you not to put a fine point to it, you work for an IDE company, so of course, you would pay extra attention to that. But I mean, who sees the LSP anymore unless it's exposed to your agent? You know what I mean? There are many times where I open code files now that I haven't touched for a while and I see that they have like these deprecation warnings, warnings, whatever, but not things that are hard Lint errors.

Shay Nehmad:

And I would never let that slide, but like literally nobody has seen them.

Ainsley Clark:

I think the LSP conversation is really interesting as well, because I think people think that now that we're getting agents to write stuff, that it doesn't matter as much, but it actually matters more because if your LSP is really quick, you're, you know, you're flying and solid. But yeah, it's a really interesting subject, LSPs.

Shay Nehmad:

Temple. Cool. And what was the other one?

Ainsley Clark:

SQLC? SQLC. Yes. Yeah. So I did...

Shay Nehmad:

Yeah. I've been mentioned a few times on this show. Like, people love SQLC, other than Jonathan, which I think you

Jonathan Hall:

don't love. I'm not big fan.

Ainsley Clark:

You don't like it?

Jonathan Hall:

No. I don't.

Shay Nehmad:

I love it, though.

Jonathan Hall:

I I I kinda like the concept of it. I just don't I just don't like it. Yeah. That's a conversation for another day.

Shay Nehmad:

Yeah. For sure. So Anthony, if people wanna reach out to you after this, you know, maybe learn more about the next events or just get connected with JetBrains and get, I don't know, whatever, go land the discount keys, we're not promising anything, but maybe you can hook them up. You definitely know a guy. Where can people find you?

Ainsley Clark:

I'm on ainsleyclark.com. So it's ai,nfornovember, sley. They have an old English name, but ainsleyclark, clark,.com.

Jonathan Hall:

Awesome. We'll have that show

Shay Nehmad:

in the note in the notes. Sorry. We'll have that link in the show notes. Perfect. Well, Ainsley, thanks a lot for coming on, man.

Shay Nehmad:

We've... We scheduled this, like, ages ago, so I'm happy we managed to actually make this happen. Yeah.

Ainsley Clark:

Yeah. And thank you for having me, guys. I I I really enjoyed it. And, yeah, it's it's a pleasure meeting you. So, yeah, thank you.

Jonathan Hall:

Cheers. Thanks so much. Until the next GopherCon. Yes.

Ainsley Clark:

See you later.

Shay Nehmad:

Program exit up. Goodbye.

Creators and Guests

Jonathan Hall
Host
Jonathan Hall
Freelance Gopher, Continuous Delivery consultant, and host of the Boldly Go YouTube channel.
Shay Nehmad
Host
Shay Nehmad
Engineering Enablement Architect @ Orca
4 Is Not a Secret & Go Dev Advocacy with Ainsley Clark
Broadcast by