Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Shay Nehmad (00:00):
This is Cup of Go
for 10/23/2025. Keep up to date
(00:07):
with the important happenings inthe Go community in about
fifteen minutes per week. I'mShay Nehmad coming to you live
from Forge's offices in SanFrancisco. Thanks a lot, Forge,
for sponsoring this liveepisode. More details at the ad
break, but let's move on to thenews.
(00:40):
Welcome to this week's liveepisode. Jonathan is in Go West
Utah. We hope he'll join, soonjust to say how how he's doing.
But we're gonna get started. Thebig news for me at least this
week is that Go one twenty sixjust posted the release notes.
This is a draft, you know, howyour coworker posts like a draft
(01:01):
PR. Oh, it's not ready yet. Itstill has all the to dos. So
this is just interesting if youwanna understand what's gonna
come in the next version. Onetwenty five was just released,
what, a month ago?
Like it's pretty a month or twomonths ago, pretty young. So,
this is a few months out intothe future. But if you want to
(01:22):
know, like what's going to benew and go in the next version,
things that have been mergedalready or are in progress, but
things that are definitely,like, through the proposal
process and are planned to bepart of the language, this is
where to go to. We've discussedsome of these, features already
in past episodes of the show incase you, like, are gonna hear
me talk about stuff and like,wait, didn't they talk about
(01:42):
this in the past? But I'm gonnago over the big things that
interest me, whichcoincidentally means I'm not
gonna talk about anythingrelated to crypto because I'm
not smart enough to understandall these pull requests.
But there are a ton of things inthe draft about like, oh, the
big int fields of public key arenot deprecated and RSA has
private key blah blah blah.Like, okay, if you're Filip of
(02:04):
Alsorta, these these are foryou. Everybody else can talk
about the normal features. Andas you can see, there are
actually a lot. One we talkedabout, for example, is the multi
handler for S Log that Jonathancomplained about a lot.
Alright. It looks like we'regetting a call from the field.
Hello? Hello? Hello.
Who is this?
Jonathan Hall (02:23):
Hi. Long time
listener,
Shay Nehmad (02:27):
was just about to
say, hello, John.
Jonathan Hall (02:29):
How's it going?
Shay Nehmad (02:29):
Where are you?
Jonathan Hall (02:30):
I'm in Lehi,
Utah. Actually, I'm in American
Fork, Utah at the speakersdinner the night before Go West.
Shay Nehmad (02:38):
Oh, if you don't
remember, although this is not
gonna be news because thisepisode's gonna come out during
the conference. So if youhaven't bought your ticket yet
and flew out, you missed it. Butwe talked to the Go West
organizers.
Miriah Peterson (02:52):
I'm one of the
cofounders of the Go West
conference, Mariah Peterson,long time Go user, content
creator, and obviouslyconference organizer. And yeah.
Shay Nehmad (03:04):
And, Jonathan,
you're gonna give a talk there.
Right?
Jonathan Hall (03:07):
That's right. I'm
gonna talk about how I became an
semi official official, I don'tguess, contributor to the Ghost
Center library.
Shay Nehmad (03:14):
You don't know
this, but Josh Bleecker Snyder,
friend of the show.
Josh Bleecher Snyder (03:19):
My name is
Josh Bleecker Snyder. I have
spent, an inordinate amount ofmy life, hacking on the Go
compiler tool chain runtime, andbeing generally involved in the
project.
Shay Nehmad (03:31):
I just went into
the standard library and edited
all the stuff in it live,smearing all your contributions.
Jonathan Hall (03:39):
Oh. Did he delete
my three lines of code?
Shay Nehmad (03:43):
Possibly. But it's
just local to his machine yet,
so it's not an official What'sjob the energy like in Go West?
Are you excited for tomorrow?
Jonathan Hall (03:51):
Oh, yeah. It's
great to to meet people in
Meetspace. Moriah and Derek, whowe had on the show, of course. I
intend to meet Elliot fromDreams of Code. He's here.
He's not at a dinner, but he'llbe at the conference.
Shay Nehmad (04:03):
Oh, no way. Say hi.
Jonathan Hall (04:05):
Yep.
Shay Nehmad (04:06):
And are you gonna
give out the new stickers?
Jonathan Hall (04:09):
I intend to.
Shay Nehmad (04:10):
What are our
feelings about the new stickers?
I really hope that's gonna keptlike, we're gonna hear it
because this is a unidirectionalmicrophone. Otherwise, we'll
we'll just add it in post. Doyou remember the sound
Jonathan Hall (04:22):
from Microsoft
PowerPoint?
Shay Nehmad (04:24):
It's like
Jonathan Hall (04:25):
Yeah.
Shay Nehmad (04:27):
Alright. So I've
just been going through the,
1.26, release notes. Alreadymentioned the multi handler for
S Log. Anything specific on therelease notes that you found,
like, you know, you'reparticularly excited it's
already coming in 01/26?
Jonathan Hall (04:43):
If it were for
nothing else, I would be excited
about
Miriah Peterson (04:45):
the changes to
new. We talked about it on the
Jonathan Hall (04:47):
show before, but
that's a long time coming.
You'll be to create pointers toto arbitrary things without
extra steps.
Shay Nehmad (04:54):
Yeah. That's like
without getting the ampersand
off the struct and then havingto call new on that.
Jonathan Hall (05:01):
Yep. I am excited
about the multi handler for the
logger as well. I will use thatdefinitely, but the the changes
to new, that's that's all Ineed. That makes my day.
Shay Nehmad (05:12):
My main thing from
this release notes is the GoFix.
So I actually wasn't even awareof GoFix because I just used
always linters and whatever. Ididn't know that there was a
specific command, but it wassuper old. But now it's gonna be
new again with the betteranalyzers that use, like, pretty
much the same thing as GoVet,and the old thing has been
(05:32):
deleted. And just anything thatcan make my code more automated
and more the same and all thetraining data looks the same, so
all the code my agent generateslook the same er, better as far
as I'm concerned.
It's like a big reason to useGo, at least for me. And I just
wanna highlight one more thingjust because we just talked
about it in this meetup. The varkind changes. So there's a new
(05:55):
thing, where you can get thetype of a variable. Is it the
local variable?
Like, the kind of a variable. Isit a local variable? Is it a
package level variable?Whatever. Which I have no idea
why I would even use.
Like, what's the use case for?Is it only for people who write,
like, compilers and interpretersand complicated stuff?
Jonathan Hall (06:14):
It's probably
mostly for code analysis. Yeah.
Shay Nehmad (06:17):
I I I'm not writing
any analyzers. It's depending on
other people to build thetooling.
Jonathan Hall (06:22):
You you probably
should be.
Shay Nehmad (06:23):
Should be writing
them or shouldn't be writing
them?
Jonathan Hall (06:26):
Yeah. You should
be writing them. You should be.
Shay Nehmad (06:28):
I'll I'll find some
time. I'll find
Jonathan Hall (06:29):
I don't know why.
It just seems like a good thing
to say.
Shay Nehmad (06:31):
Probably. A good
thing for me to practice writing
them, but I probably someoneelse needs to vet them before
someone else needs to go vetthem. And, of course, another
thing we talked about in theshow, but it's gonna be super
useful, is the artifactdirectory for testing. So I
don't know about you, Jonathan,but I've been writing more and
(06:52):
more Go code that's air quotesAI, meaning, the API call is to
OpenAI before and after APIcalls to other services.
Jonathan Hall (07:03):
Yes.
Shay Nehmad (07:04):
And like during
tests saving like, oh, this was
the prompt response and, youknow, especially if I triggered
guardrails because I do a lot ofAI security stuff now, like
storing the LLM response in theartifact there, super, super,
super, super, useful. Yeah. Itell you that too. That's the
reasoning for why peopleactually did it, even though
it's just generally useful beingable to do that, just by like
(07:28):
doing t dot artifact deer justsaves on the tiny bit of
boilerplate of like make atemporary directory with the
test name, which is somethingI've started to write in almost
every test suite relating to AIthat I have, been writing.
Jonathan Hall (07:40):
Indeed. I agree.
Shay Nehmad (07:41):
These are the one
twenty six release notes. So
these are the 01/26 releasenotes. We'll take another look
at them, when, you know, it'sgonna be time for 01/26.
Obviously, there's gonna be alot more things here, a lot more
details. These release notes areactually pretty.
And I'm not actually gonna openthis page ever again. I'm just
gonna wait for Anton Giovanov,who we've had on the show, to
(08:03):
release his interactive releasenotes, Just the only way I
consume these release notes,going forward. So, Jonathan,
anything that you wanna sharebefore you drop off to eat your
speaker dinner?
Jonathan Hall (08:13):
Yeah. I'm gonna
go eat some, some carnitas sal
pastor or something. I don'tremember what I ordered. I don't
have anything to share. Lookingforward to doing a call that I
can actually hear next week.
Shay Nehmad (08:23):
Nice. Sending here
in a noisy parking lot. So
Everybody say thanks forDungeon.
Jonathan Hall (08:30):
Enjoy your
meetup. See y'all later.
Shay Nehmad (08:33):
Bye, dude. Moving
on. The next thing I want to
bring up. So we, on the showhad, John Cricket, who does
these coding challenges.
John Cricket (08:45):
So I'm John
Cricket, and I'm I disagree with
you because I'm the author ofcoding challenges. I push a
different way of learning aprogramming language. Before we
get to that, though, to answeryour question, I'm a software
engineer. Been doing it fortwenty eight years now. Done all
sorts of things from railwaysignal systems to the typical
web apps like a lot of people.
More recently, I've beendabbling in Go.
Shay Nehmad (09:08):
Ever since, at
least for me, LLM based
programming and agents andagents running in the background
doing my reviewing theirannoying code. I've cherished
every opportunity I've had to,like, hands on code without
them. So it could either someoneis interviewing with me and they
just, like, finished using theLLM to interview with the code
(09:29):
and I can, like walk throughtheir code line by line or maybe
I'm just doing something fun.These coding challenges have
been a thing in my inbox eversince we interviewed John. I'm
looking and I'm like, man, ifonly I could find the hour to
actually do that challenge.
But to John's credit, he'scontinued posting these. And in
my inbox recently, the hundredthchallenge has dropped. So if
(09:53):
you're doing any interview prepor if you just wanna, like, code
by hand, like the stone ages, Ifeel like these challenges are
great because they're not leadCody. They're actual super
practical projects. Some of themare just like implement LS or
implement like, word count orsomething like that, which is I
think I told John this on in theinterview, but that's how, I
(10:16):
taught people at, previouscompany Rust.
I was just like, everybody knowsword count. It's really easy to
implement. Let's implement theword count in Rust, this sort of
coding challenge. This Hunterchallenge looks super
interesting because it'simplementing a BitTorrent
client. To me, this sounded likesuper complicated.
I use, like, the BitTorrentprotocol to download free stuff
(10:38):
that is available and totallylegal. And I just turn on my VPN
while I'm doing it for fun andnot because I'm super scared
after moving to The US frompeople catching on. But let's
say I wanted to implement myown, doing this challenge seems
like a pretty cool way to dothis. Obviously, there are a lot
of ways you could support codingchallenges to actually start
(10:59):
doing them. I just want tohighlight that getting to a 100,
like a nice round number ofchallenges.
A 100 challenges is like morethan enough for anybody to
basically master the language.Importantly, this is not a go
thing. So you can implement thisin whatever language you want.
You can use LLMs. You can youcan try to not use them.
You can do whatever you want.I've actually used some of the
challenges just to practice upon my Rustmore, which is the one
(11:21):
of these languages which I onlydabble in and did very like, not
a lot of production work on. Butthere's like a spec. Strings
are, base 10 strings and do itlike this, do it like that. You
can just start implementing it.
If you do, shoot John an emailand be like, this is my
solution. And at least based onmy previous, interaction with
him in the interview, he's asuper nice guy and he'll
(11:43):
probably tell you like, good jobor whatever. Also, I I feel like
some of the projects I combthrough the backlog, some of
them are pretty simplistic. Someof them, if I saw them on like
someone's GitHub who wasinterviewing, it would be like,
damn cool. This personimplemented their own, like
Bitbetorant client, for example.
So I thought that was prettycool. Congrats for reaching
(12:05):
challenge number 100. And Ireally wait for John to get to
the next round number, which is128, and get to that challenge.
Alright, Filip O'Cat here forone sec. That's it for the news
part.
Let's move to a quick butinteresting ad break telling you
about this week's sponsor,Forge. Thanks for listening to,
(12:34):
or attending Kapogo. It's it'syou're about to start. This show
is supported by you, thelistener. There are a few ways
in which can you support, whichyou've probably heard, and I see
Josh spacing out already becauseI repeat this every time.
This week, we wanna say a lot ofthanks to our sponsor, Forge.
(12:54):
And I have Hema from Forge hereto tell you what Forge is, are
they hiring, why you should buythem, etcetera etcetera. So
Hema, take it away.
Speaker 6 (13:03):
So yeah, Forge is
creating the next layer of human
computer interaction. We can nowat this point automate anything
that a human can do on acomputer, just given your
English instructions at thispoint. And to do so, we've been
able to create our own Englishprogramming language and runtime
that can now combine theintelligence of LLMs with the
accuracy and determinism ofcode. And so, yeah, at this
(13:24):
point, we've been able toautomate multi hour long human
workflows at a higher than humanquality and that's been deployed
around the world. And, yeah, ifyou wanna work on interesting
problems that require rethinkingthe entire stack from the IDE to
the compiler to the runtime tothe infra, we're hiring and
growing.
Shay Nehmad (13:38):
Thanks a lot,
Forge, for sponsoring this
week's episode, sponsoring themeetup. If you're listening,
you're not enjoying this, but,like, bringing drinks and
guacamole and nachos. That wasawesome. Yeah. They have a
beautiful, beautiful, SanFrancisco office slash mansion,
and I highly recommend if you'rein the SF area and you're
(13:58):
looking for a job right now to,contact them.
All the links will be in theshow notes and in our, Slack
channel, hashtag cupago in thegopher Slack. But I have a
hookup to Hema in the company,so I could put your CV directly
in if you're hiring or if youwanna buy Forge of automating
things in an English programminglanguage with better than human
(14:19):
accuracy, sounds like somethingthat you'd be interested in, go
ahead and do that. At leastbased on their digs, they're a
really, really good company. Andyeah, this is the sponsor for
this week's episode. I willremind if you wanna find any of
our links or email us, you canfind everything at cupogo.dev,
including our new swag.
So we have a new hat. Itactually arrived. It looks sick.
(14:40):
I love it. The big new stickers,the recursive gopher stickers,
cupago, bruiser stickers, shouldsay.
And yeah, all the links toPatreon and all the normal
stuff, that you're aware of.Let's run to a quick lightning
round. Lightning round. Thingfor the lightning round today,
(15:02):
is I recommend you go read ablog post called the value
evolution of caching librariesin Go. It goes through a bunch
of different options, how toimplement caches, like real
caches that actually happened inthe past.
Is the cache on heap or offheap? I've found myself
implementing caches myself a fewtimes. Honestly, I I don't mind
(15:23):
saying that because, like, theydidn't hire me at the end, but I
interviewed and passed thetechnical rounds for Microsoft
and they asked me to implementthe cache twice. So knowing this
stuff, especially if you'reinterviewing right now is pretty
important. And honestly, like, Idon't know, 50% of my bugs have
been related to caches.
So there are a lot of how toimprove cache implementations
(15:43):
here, which is reallyinteresting. And sort of the
conclusion is if you, wanna makean informed decision on which
cache to pick instead of justletting the LLM wrap a function
with, cache it for me, please.This is relevant. This is
obviously specifically relevantto Go developers, but it's
relevant to even if you'reworking in other languages like
(16:04):
regrettably me. This will do itfor this episode.
Thanks a lot for listening andprogram exited. Goodbye.