All Episodes

June 28, 2025 28 mins
★ Support this podcast on Patreon ★
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Jonathan Hall (00:00):
This show is supported by you, our listener.

(00:01):
Stick around till after the newsto learn more about that. This
is Cup of Go for 06/27/2025.Keep up to date with the
important happenings in the Gocommunity in about fifteen
minutes per week. I'm JonathanHall.

Jeremy Foran (00:22):
And I'm Jeremy Foran.

Jonathan Hall (00:23):
Hi hi, Sha wait. You're not shy.

Jeremy Foran (00:26):
No. No. Tell me who you are. Are you an
impostor? I'm somebody who'sdelighted to be here.
My name is Jeremy Forne. I workfor Blue Flag Consulting, and
I'm the Elasticsearch communityorganizer in Toronto. Wow. And a
and a big Go fan.

Jonathan Hall (00:43):
I can see that from your outfit. Unfortunately,
this is an audio only format,but Jeremy's wearing a is it a
hoodie? What is that? I don'tknow. I see several Gophers on
there, different colors.
It looks like a racing outfit orsomething.

Jeremy Foran (00:54):
Sure. It's pretty sweet. So when they have the
Gopher Con, one of the hosts ofGopher Con was wearing the
brightest, most obnoxious Golangsweater I've ever seen. I was
like, how do I get one? And itturns out they're for
professional gamers.

Jonathan Hall (01:10):
Okay. And then

Jeremy Foran (01:11):
it's just branded. So this is why it's so
attractive.

Jonathan Hall (01:14):
So let's talk about some Go news. First up, we
have InGroc's Go SDK version twois out. I'm trying to grok what
Ingrok is. Have you actuallydone any research on this? Have
you read this or watched a videoor anything that would make you
more knowledgeable than me?

Jeremy Foran (01:32):
I have watched the video, the intro. Yeah. Which is
a quick demo of how toinstrument your GoCode and get
up and running with ngrokquickly.

Jonathan Hall (01:42):
Okay.

Jeremy Foran (01:42):
And it seems quite impressive.

Jonathan Hall (01:44):
Nice. So instrumenting GoCode, does this
give you like stats about likehow much memory you're using or
something or what what kind ofwhat kind of stuff?

Jeremy Foran (01:51):
I have used the wrong term.

Jonathan Hall (01:54):
Okay.

Jeremy Foran (01:54):
And that's apparent. I guess implementing
inside your code. So dropping intheir SDK.

Jonathan Hall (02:00):
Yeah. Okay.

Jeremy Foran (02:01):
And then what it allows you to do is easily make
your application publiclyavailable.

Jonathan Hall (02:07):
Got it.

Jeremy Foran (02:08):
So let's say you're running a local web
server and then you wanted toshare that with a friend instead
of maybe poking holes in yourfirewall or having them VPN onto
your network, you just add theircode and then it you can send
them a public URL which they canthen hit and their service sort
of tunnels that connection backto your Go application.

Jonathan Hall (02:27):
That's pretty handy. I've touched on using
ngrok before. I never set it up.I just followed some
instructions and it didbasically what you described. It
let us, you know, share stuffbehind behind that networks with
each other.
So, yeah, that's pretty cool.

Jeremy Foran (02:39):
Yeah. I actually have an application where I'm
using a Raspberry Pi with an LTEconnection. And if I wanna go in
and make configuration changes,this seems like a really great
way of being able to call thispublic endpoint without
necessarily knowing what is theIP that, you know, it has.
Right?

Jonathan Hall (02:57):
Right. Right. Cool. Well, I think the big news
for the week, at least from myperspective, because we've
talked about this before, Shayand I have talked about it,
about its absence, is the Go1.25 interactive release notes.
They're now here.
They are no longer absent. I'mexcited about this because Shy
apparently only reads this,doesn't read the official

(03:18):
release notes.

Jeremy Foran (03:20):
He doesn't want any spoilers.

Jonathan Hall (03:23):
I'm curious, have you seen these interactive
release notes before?

Jeremy Foran (03:26):
I've heard you guys talk about them on the
podcast. This is the first timeI've actually have dived in and
this is really greatdocumentation.

Jonathan Hall (03:33):
Yeah. So essentially, if you're new to
the concept, you haven't heardus rave about it before,
Basically it takes the changesin the Go language and the Go
Center library in particular andgives you like executable
examples in the browser. So youcan read through the
documentation and execute thechange and then like change the
change in your browser. You canlike, oh, that's kind of cool.

(03:53):
But what if I change the valueto 6,000 or something?
You know, you can try thesesorts of things in the browser
and play with it. So it's areally easy low barrier to entry
way to play with the newfeatures in Go 125.

Jeremy Foran (04:04):
And I really like how they're exemplified very
quickly. So it's like, oh, thisfeature and it's maybe a page or
half a page. So it's really easyto consume and understand the
differences.

Jonathan Hall (04:13):
Yeah. It's really great for some of the more
esoteric features like like thesynthetic time for testing.
Like, I hear that phrase in myand it sounds my eyes just sort
of glaze over. Like, it soundsreally complicated and like
maybe useful, but do I reallyhave time to spend three weeks
learning how to use thisfeature? Oh, here's the feature
in like six lines of code.

(04:34):
That's really easy. So I Ireally like that.

Jeremy Foran (04:37):
I understand why Shy might hold out for this.

Jonathan Hall (04:39):
Right? Yes. Right. So is there any feature
in in the upcoming 1.25 that is,I don't know, maybe most
interesting to you or thatyou're looking forward to or
maybe scared of?

Jeremy Foran (04:50):
Oh, I don't know if I've been scared of any I
think the only feature I wasscared of originally was
generics.

Jonathan Hall (04:55):
Oh, yeah. Me too.

Jeremy Foran (04:56):
You know, with all the talk and so it was okay. But
or actually, I'm scared wheneverpeople talk about changing error
handling. It's like it's it'sfine. It's been put to bed.
Yeah.
But there's a lot of it seems tobe a lot of talk about the Jason
v two stuff. The the changes tothe sync and weight group.

Jonathan Hall (05:14):
Yes.

Jeremy Foran (05:15):
Yeah. So a lot of a few things there. That's the
stuff that sort of jumped out tome the most.

Jonathan Hall (05:18):
Yeah. I'm I'm pretty excited about the weight
group change. They're they'rethey're minor changes.
Essentially, they're adding a ago method on a weight group. So
in the past, you would have tocall w g dot add.
And then when you're done withexecuting something, wg. Done,
usually in a defer within yourgo routine. Now you can just
call wg. Go and then pass it afunction. So it's more like the

(05:43):
error group if you've ever usedthat, which is not part of the
standard library.
It's sort of the pseudo standardlibrary. It's in the X
namespace, but I use it a lot.But if you don't need the error
part of error group, this makesit more similar and easier, less
error prone. So I'm reallyexcited about that.

Jeremy Foran (05:58):
And it looks cleaner, like you're just
removing some boiler plates.Absolutely. It's nice.

Jonathan Hall (06:02):
Yeah. It's a little bit surprising, I
suppose, that it kind of took solong to get something so simple
into the language. But on theother hand, that's a good yeah,
I say this on the show before, Ithink it's good that Go is slow
to adopt changes because we endup with fewer unnecessary
changes that way.

Jeremy Foran (06:18):
It's the measure twice cut once approach, which
Exactly. Yeah. What about theflight recorder? The flight
recordings, have you, playedwith this at all?

Jonathan Hall (06:27):
I have not. Have you?

Jeremy Foran (06:29):
I haven't, but this always feels like one of
those features where I'm happyto know that if I need to dive
in and get my hands dirty,figuring out, you know, maybe
what my applications are doing,it's it's there. Yeah. It's
included.

Jonathan Hall (06:41):
I remember reading about it when it was
first accepted. The proposal wasaccepted, I think. And it
sounded real this is another oneof those things that sounds
really useful, but I don't knowif I want to take the six weeks
to learn how to use the feature.But then again, you know, here
it is in in black and white in ain a page of code. So it's it's
clearly not as complicated asmaybe it sounds.

Jeremy Foran (07:03):
Okay. What's next? I don't know. Have you looked at
the reflection reflective typeassertions? No.
I don't really do a lot of stuffwith, reflections very often. I
I sort of stay away.

Jonathan Hall (07:16):
Yeah. Yeah. I I might be a vampire. I don't like
to see my reflection.

Jeremy Foran (07:22):
I was planning on being the one making the jokes.
The smart guy.

Jonathan Hall (07:28):
Yeah. Before we started recording, Jeremy told
me he feels like Al on on ToolTime, you know, the the the show
within the home improvementuniverse. And so I haven't yet
thought of something really dumbto say where you could say, no,
I don't I don't think so, John.

Jeremy Foran (07:43):
I don't think so, John.

Jonathan Hall (07:59):
One of the big changes, of course, in Go one
twenty five, although also notbig at all because it's behind
an experimental flag is JSON vtwo. I'm noticing that that's
not really in these interactiverelease notes very much. Why is
that?

Jeremy Foran (08:14):
I'm pretty sure it's because it has a dedicated
blog post.

Jonathan Hall (08:18):
That would explain it.

Jeremy Foran (08:20):
Yeah. So just under the heading, it says
that's why I wrote a separatepost, which you can which can go
to. I will probably link.

Jonathan Hall (08:29):
Mhmm. Yeah. We'll put it in the show notes.

Jeremy Foran (08:31):
Yeah. And so this goes through the many different
aspects of the changes, whythere's a break, some of the
benefits, the new options andwhy you might be interested in
starting to play with V2 andmigrating your code.

Jonathan Hall (08:45):
Yeah. How much have you done with the JSON
encoding specifically in Go?

Jeremy Foran (08:49):
Well, Jonathan, not very much. Typically when
I'm consuming, I am one wholeans towards YAML. So if I have
the option, I typically willwrite configs in YAML and things
to that effect. So unless I'mdoing some web stuff and APIs.

Jonathan Hall (09:02):
Yeah, cool. I've done quite a bit with JSON and
Go largely because I wrote whatI, as far as I know, is the most
popular and probably the onlycurrently maintained client
library for CouchDB in Go.CouchDB is it's like Mongo, but
instead of using BSON, which istheir sort of binary format, it
uses JSON. So there's a lot ofJSON encoding and decoding in

(09:24):
that library.

Jeremy Foran (09:25):
So who sends you the swag? Is it GitHub for
having the most popular library?Is it CouchDB?

Jonathan Hall (09:32):
So, well, certainly not GitHub. I mean, I
say the most popular. Let meexplain exactly how popular the
most popular is. I have 323stars. So this is a niche
popularity.

Jeremy Foran (09:48):
I'm sure for those stars though, those people who
use it, love it. Right?

Jonathan Hall (09:52):
I think so. I've gotten so I've actually been
hired because of this library. Iwas hired by somebody using
library to help them with theircode. So yeah, that's my swag, I
guess. I got some money.

Jeremy Foran (10:03):
There's probably a good lesson there in that, you
know, the benefits of sharingyour code and making it
available and sometimes theseopportunities arise, right, as a
result.

Jonathan Hall (10:12):
Yeah. I suppose that's a good point to mention
something else too, largely fromthe experience of doing this
library and learning about JSON.I started to write a book
several years ago called DataSerialization in Go, which is
mostly about JSON, although myintention was to add other
things to it, YAML and XML andso on. I put it up on Lingpub
for 9.99. As of Go 1.25, theexamples are essentially

(10:33):
obsolete.
So I'm just going to give thatbook away for free now if
anybody's interested. Theconcepts are still mostly valid.
I'll have a link in the shownotes or you could go to
and you can download the bookfor free there. You can pay if
you want. I don't expect you to.
It's not very complete, but I'vegotten good comments on the

(10:53):
content that is there. So ifyou're interested in learning
more about JSON serialization,particularly the old version,
check out that free resource.

Jeremy Foran (11:00):
Okay. Let me Can I ask you a question?

Jonathan Hall (11:02):
Absolutely.

Jeremy Foran (11:02):
Is the book you wrote, was that based on your
learnings of writing theCouchDB?

Jonathan Hall (11:08):
Mostly. Yeah. Yeah. Mostly.

Jeremy Foran (11:11):
Were there particular things you had to
tackle there that you were like,man, I wish this was somebody
wrote about this.

Jonathan Hall (11:16):
So yeah. So there were a few things. I've actually
done a couple presentations atlocal Go meetups on some of the
topics too. And actually, cometo think of it, I think I have a
YouTube video that goes over,like, highlights from that. So
I'll put a link to that in theshow notes as well.
But there's certain things well,so first off, the biggest
complaint I had was howinefficient the old JSON

(11:37):
Marshall and Marshall are is.Especially when with CouchDB,
you might be working withmegabyte or even gigabyte
documents. And the way that bydefault, the way the Go
serializer works for JSON is itreads all that into memory, then
starts parsing it, which isobviously not what you want for
something like that. I don'twant to have to wait for my
network to read in a onegigabyte document and then parse

(11:59):
it, discover there's an error orwhatever. And then, yeah,
whatever.
So the new version, V2 handles alot of that much better. You can
start parsing as you're readingit off the network. So I did a
lot of hacks to make it moreefficient, you know, to break
out of sort of the intended useof the martial arts so that I
had some efficiency gains. Andthen other things were like
trying to partially read. Solike a common thing I needed to

(12:21):
do was fetch a single key out ofa large document, but I don't
want to read the entire documentfor that either.
I just want to read till I findthat key and then stop reading.
So I had to do some custom workto to make that sort of thing
possible too.

Jeremy Foran (12:32):
Interesting. Interesting. And so this JSON v
two, you can tackle a lot ofthose issues just by switching
over to the this new version.

Jonathan Hall (12:41):
Yep. Yep. Exactly.

Jeremy Foran (12:42):
Okay, so I think you touched on a few things. One
of them being the streaming.Being able to stream the
documents into memory, readthem. This gives you the benefit
of back pressure sensitivity. Soif you're not ready for more
information, you don't need toflush.
When you are, you can. Mhmm.Another is the amount of tags.

(13:04):
So you can control much morecontrol over how you're parsing
that JSON. The I think they giveyou some options in terms of
what to do when you haveunexpected fields

Jonathan Hall (13:15):
Yes.

Jeremy Foran (13:16):
Which is always nice. I know I've run into that
in the past where it's like, whyis everything empty? Yeah. Oh,
because it got a field it wasn'texpecting. Was there any of
those that stood out for you?

Jonathan Hall (13:26):
So the within CouchDB, that one particularly
doesn't matter. So I supposethere's certain things where I
expect a certain subset offields to exist, but beyond
that, like it's I don't care. SoI suppose that's another very
common example is, you know, Iexpect an ID field and a
revision field and maybe acouple of others and I need to
fetch those out. The rest of itis user payload and I want to
handle that in a different way.So yeah, I don't know if the way

(13:48):
JSON V2 handles unexpectedfields will directly apply to
that particular situation, butthere's a good chance that it
will be easier than it was withJSON v one.

Jeremy Foran (13:57):
Yeah. I guess more control. Having more knobs and
dials to adjust always ishelpful.

Jonathan Hall (14:03):
Yeah. Exactly. Yeah. So basically, I don't know
exactly how this is going toimprove my CouchDB library in
all aspects, but I'm a 100%certain that it will improve
performance in all cases.

Jeremy Foran (14:13):
I don't think so, John. If you go through the oh,
that was so natural. No one sawthat one coming. But that's you
bring up a great point, right?Which is that in some situations
it performs the v two libraryperforms better.
In some, it might not perform aswell in in, I think, very few

(14:37):
cases. Mhmm. So you might wannaunderstand how it stacks up and
in particular to your your usecase. So over at github
go-json.-experiment, there's arepository, JSONBench, and
they've gone through the troubleof testing out various use cases
across the V1 library, V2library, and then a few other

(15:01):
sort of common libraries thatare used. And you can, you know,
check it out.
They have a lot of great graphsand visualization so that you
can get a sense of how your usecase might perform. And then,
you know, before you want to gokick the tires and try testing
on your side.

Jonathan Hall (15:17):
Awesome. So I need to go check out these
benchmarks before I just assumethat everything is better for my
JSON.

Jeremy Foran (15:26):
I think for most people, it'll be good upgrade,
right? For most people, it'lljust be like a speed up of 20%
probably. And then in certainsituations, even better.

Jonathan Hall (15:38):
Yep. Awesome. Cool. Well, I think that wraps
us up for the news for thisweek, but we do have a lightning
round, so stick around for that.Thanks for listening to Cup of
Go.
We are a listener supportedshow. We did sponsorships for a

(16:01):
while. We haven't done that fora long time. We decided to try
to make it listener supported.And so far, our listeners have
been doing a great job.
I think we have Patreon'scovering about half of our
monthly expenses right now,maybe a little bit more. So
that's great. We're not indanger of stopping. We all enjoy
doing this, even if we have topay for the hobby, but your
financial support helps. Whathelps even more than your

(16:22):
financial support though isword-of-mouth.
Would you share the show with afriend, with a colleague, with a
fellow student? Let them knowour listenership has been going
up steadily. We really lovethat. We like educating the Go
community. We like learningabout Go and we love having
guest co hosts when others can'tcome.
So glad you're here, Jeremy.

Jeremy Foran (16:40):
It's a real treat for me. Great.

Jonathan Hall (16:43):
If you want to learn more about the show, the
main place is cupago.dev. That'sour website. There you can find
links to all past episodes. Youcan find pictures of us. I
assume we'll have a picture ofJeremy before too long, but
probably before the show is evenout.
So you could go there right nowand see Jeremy. You can also
email us at newscupago. Dev thatgoes to me and then I try to

(17:03):
share with my co hosts. You canalso probably actually where all
the actions happening is onSlack in the Cup O Go Kebab Case
channel on the Gopher Slack.

Jeremy Foran (17:13):
So I actually just joined the Cup O Go Slack
channel, you know, inpreparation for this and and I'm
scrolling up and there's so muchgreat content there. A lot of
great conversations happening,people pointing out interesting
stuff. So it feels like if youwanna keep your finger on the
pulse, that's a really goodplace.

Jonathan Hall (17:28):
It is a good place. And you can ask questions
there. Mostly it's peoplesharing like links to articles
about Go stuff, but people askquestions too. Like, hey, I'm
trying to solve this problem atwork. What's the best way to do
it?
We've never had to police thechannel. I suppose if somebody
starts spamming, we will haveto, but it's never been a
problem so far. There's fiveseventy people on the channel
right now, so come be numberfive seventy one.

Jeremy Foran (17:47):
Is it true the person who becomes a thousandth,
you know, the one thousandthperson gets the free mug?

Jonathan Hall (17:53):
I think that might be I

Jeremy Foran (17:55):
think it is now.

Jonathan Hall (17:57):
Thanks Jeremy for sponsoring that one thousandth
mug.

Jeremy Foran (18:01):
It'll be funny because you'll see the stats
where it's hovering around likenine ninety eight for a little
bit. Right? Like, people justwaiting to

Jonathan Hall (18:08):
The problem is when, like, once it hits a
thousand and people startleaving and rejoining again, so
we have like 700 thousands. Thatwould be a problem. Oh, that's
funny. You can also leave areview for the show on Spotify
or Apple Pod Is it ApplePodcasts now? I can't remember.
They changed their name thetime. This week, I think it's
Apple Podcasts. Wherever youlisten to your podcast, leave a
review, leave a rating. I thinkthat's about it. Did I forget
anything about You can also buyswag.

(18:29):
We have mugs and t shirts andstuff. Not as cool as the one
Jeremy's wearing today, but wedo have some

Jeremy Foran (18:34):
t shirts. I'll post a link to the sweater.

Jonathan Hall (18:36):
That'd be awesome.

Jeremy Foran (18:37):
Yeah. So I think that takes us to the lightning
round.

Jonathan Hall (18:40):
I think it does. Let's do it. Lightning round.
Okay.

Jeremy Foran (18:48):
I'm excited, to talk about charm.io, has added a
new tool to their already verycharming set of libraries. It's
called Fang. And Fang is a dropin sort of augmentation to
Cobra. So if you're using theCobra CLI library, then you can

(19:10):
import Fang, you know, replacethe call that invokes the Cobra
CLI root command. And now all ofyour commands look very pretty,
very attractive, some reallynice color scheme.
So it's one of those thingswhere it takes two minutes and
then you get the benefit of amuch more professional looking
sort of CLI interface.

Jonathan Hall (19:29):
Interesting. Does it require Cobra?

Jeremy Foran (19:31):
Yeah. Yeah. So you actually build out your Cobra
however you would, howevercomplex, and then you just drop
the root command into theirmethod.

Jonathan Hall (19:40):
I like the concept. I'm disappointed that
it requires Cobra becausealthough I definitely have used
Cobra, I feel like it was mostlycreated before anybody knew
Idiabetic Go. Anybody, I'm notpointing at the author, like
anybody, nobody knew IdiomaticGo yet. We've learned a lot
since then. And I feel likethere are better libraries now,
but I wish it would plug intoone of those too.

(20:03):
Maybe it'll be enough toconvince me to go back to Cobra.

Jeremy Foran (20:07):
Or maybe if you drop into the Charms Discord
channel make some requests, guysare they're really responsive,
really engaging. They have areally great community.

Jonathan Hall (20:15):
Nice. That's awesome. I wanna talk about
Copilot.

Jeremy Foran (20:20):
I've never heard of Copilot.

Jonathan Hall (20:21):
Never heard of Copilot.

Jeremy Foran (20:22):
As a developer, I've never is Fight Software?

Jonathan Hall (20:27):
Have you heard of GitHub?

Jeremy Foran (20:28):
Sure. I've come across it once or twice.

Jonathan Hall (20:32):
So GitHub, Microsoft, Copilot, they all
sort of go together now thesedays since they're all owned by
the same company. But I have alink here too. It's just a
YouTube short. It's reallyshort, like less than a minute
long. But they mentioned thatthe Copilot API now is written
in Go.
So although GitHub is mostly aRuby monolith, etcetera,
etcetera, if you're usingCopilot, behind the scenes,

(20:55):
you're using Go and you probablydidn't even realize it.

Jeremy Foran (20:57):
I love to see that stuff. And then I know you guys
have talked about it on the showbefore how TightScript is using
Go now for for I think it'scompiling. And so you're seeing
these sort of backend tools sortof migrate towards Go or backend
services, I think it's great.

Jonathan Hall (21:12):
Yep. And one more thing. Tip tips?

Jeremy Foran (21:15):
Typist. Typist. Oh, okay. So this is this is not
necessarily Go. This is a toolto maybe add to the tool belt.
I've become obsessed with it.It's documentation as code. So
anyone who's familiar withLaTeX, it gives you the ability
to sort of separate your contentfrom your layout a lot like HTML

(21:36):
and CSS. But it produces PDF,PNGs, that kind of And then the
advantage is that it's, I'mpretty sure, Turing complete. So
you can go in and write yourdocuments and then your
documents can be formatted withcode you write, so repeats and
that kind of stuff.
And this allows you to create atheme for your document as code

(21:57):
and then just focus on thecontent. So you're not like
trying to find, you know, a badreturn or something like that.
It's almost like writingmarkdown. As simple as writing
markdown, but you get the fullcontrol of making the document
look however you like. You canpass it variables from the
command line, all kinds ofstuff.
I'm I'm anyone who knows meknows I've become obsessed with
typist.

Jonathan Hall (22:16):
Awesome. Not sponsored, but a cool tool.

Jeremy Foran (22:19):
Not sponsored, but it's an up and coming. If you're
writing a user manual, forexample, for, you know, maybe
how to use your software orsomething like that, it's a
pretty good fit and it's worthchecking out.

Jonathan Hall (22:29):
Awesome. Well, I think that's a wrap. Do you have
five minutes to stick aroundJeremy and talk about you a
little bit more? Sure. For thosewho are interested?

Jeremy Foran (22:38):
Yeah. All right. I'd be happy to. What just just
general?

Jonathan Hall (22:47):
Just let's let's start with how do you use Go?

Jeremy Foran (22:49):
How do I use Go? Okay. Well, I guess I I started
in a bunch of differentlanguages. Mhmm. And, you know,
c plus plus.
And then at some point, I cameto Python because it's like, oh,
I can get things done a lotquicker. And the problem with
Python was it was like, okay, Igot this working, but how do I
keep this thing running? Right?And I started to play around
with Go. Rob Pike's introductionof the language, you know, the

(23:13):
talk he gave, I think it was in02/2012.
It might have been. No. It mighthave been before that. I think
maybe even 02/2009. We'll we'llfix that in post.
But the he was hitting all ofthe points, all of the issues
that I was becoming irritatedwith Python for. Right? And so I
started playing with it and thenit was, I would write my sort of

(23:34):
like proof of concepts orinstrumenting an API in Python
and then slowly port to go. Andthen it just became more and
more, I just started makingprojects in go and getting up
and running quicker and justabsolutely love Golang. I know
that anytime I open up aproject, I'll hit compile, it'll
compile.
And anyone who's done somePython, you know, you send it

(23:56):
from your Mac to a Linux machineand it's like, okay, I gotta do
this. I gotta do that. It's thepackaging is a nightmare. Cool.

Jonathan Hall (24:04):
And you also said you're the community manager for
Elastic. Explain what that meansand does that relate to Go at
all or is that just sort of aside quest? Sure.

Jeremy Foran (24:14):
Well, if you're in software development long
enough, you know, you're goingto have to persist information
And that's a whole anotherfield. Right? So relational, non
relational, horizontallyscaling, vertically scaling.
There's all these differentconcepts. And around 2015, I was
doing providing a public Wi Fiservice in Toronto.

(24:36):
So if you use the subway, youwould connect to T Connect. We
had hundreds of thousands ofpeople using the Wi Fi every
day. So there was a lot ofinformation and logs to collect.
And I started using the stackback then it was Logstash was
separate, Cabana was sort ofseparate and then you had
Elasticsearch and theyeventually evolved into the
Elastic Stack. But at the timeit was sort of the first

(25:00):
database that you could get upand running and it would scale
to sort of any size you need.
It was easy to work with. Youknow, I didn't have to spend a
lot of time planning, you know,my table designs and all that
kind of stuff. It was reallyeasy to hit the ground running
and I really enjoyed it and itbecame one of my go to sort of
databases. So I just try to staya part of the community, support

(25:23):
people. And I think if you havea good working knowledge of
Elasticsearch, there's a lot ofproblems, diverse problems that
you can solve.
It's very easy to start doingthings like dash boarding or
anomaly detection and supportthe community. And how I talk to
Elastic is usually through a Goapplication.

Jonathan Hall (25:41):
Okay, awesome. You mentioned at the beginning
that you do consulting. Are youan independent or you work for
an agency?

Jeremy Foran (25:49):
No, independent.

Jonathan Hall (25:50):
Okay.

Jeremy Foran (25:50):
Yeah. I'm sorry, go ahead.

Jonathan Hall (25:53):
Plug your service. Tell us what you and
who should contact you if theyneed some of your help.

Jeremy Foran (25:57):
Sure. So we have a So it's myself and another
gentleman, Yousef Chalouis, Andwe just really enjoy solving
tough problems, complexproblems. And so we try to find
new and interesting challengesthat companies have that will
sort of force us to take on toexpand our sort of knowledge,

(26:18):
either by learning theirbusiness, which might be new to
us or implementing a new maybedesign pattern or some sort of
platform type engagement. Andthat's been really enjoyable.
And that's really what we'vebeen trying to focus on.
And I think for our customers,that result really shows because
it's not just we're in trying tobook a contract or something

(26:38):
like that. We intimately wannaknow how to solve your problem.
So we wanna understand yourbusiness, what drives it, what
are the challenges so that thesoftware we write is an elegant
solution to that. So that'sreally what we get excited about
when people talk, Oh, one's ahairy one. You know, there's
this department and they don'tlike it this way.
And then this is antiquated andall that kind of stuff. The more

(26:58):
they try to convince us thatit's too challenging to solve,
the more excited we get.

Jonathan Hall (27:04):
So Yeah. Yeah. Cool. And if anybody is looking
for some help or just interestedin reaching out, how can they
contact you?

Jeremy Foran (27:11):
Can shoot me an email. My name,
We have our website and I'm sureyou can hit me in the Cup of Go
channel on Slack.

Jonathan Hall (27:22):
One last question before we wrap this up. And you
you know the question becauseyou're a listener to the show.
Sure. Who has been mostinfluential to you in your
journey with Go?

Jeremy Foran (27:32):
Has to be Rob Pike. Yeah. Now I don't know him
personally. I'm I could get acall any day, maybe even after
this. I would assume he's alistener.

Jonathan Hall (27:41):
Of course.

Jeremy Foran (27:42):
Yeah. Yeah. Hi, Rob. Rob yeah. Rob, yeah, first
round's on me here in Toronto.
Right? But, yeah, I've actuallygone back and watched his talk
about Go introducing it multipletimes. I just find it really
rich with the knowledge ofsomebody who's been building
software and building it wellfor for decades and decades. So
I you know, that's sort of whatI aspire to. And so that's

(28:04):
Awesome.
That's who's been the biggestinfluence.

Jonathan Hall (28:06):
Cool. I I think I would agree. I I he would he
would certainly be in my topthree, if if not the top one. So
well, anyway, Jeremy, thanks somuch for filling in for Shy
while he's gone. It's been apleasure meeting you.

Jeremy Foran (28:16):
The pleasure has been all mine.

Jonathan Hall (28:18):
Alright. We will see you all next week. Program
exited. Programme exited.Goodbye.
Advertise With Us

Popular Podcasts

Stuff You Should Know
The Joe Rogan Experience

The Joe Rogan Experience

The official podcast of comedian Joe Rogan.

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Special Summer Offer: Exclusively on Apple Podcasts, try our Dateline Premium subscription completely free for one month! With Dateline Premium, you get every episode ad-free plus exclusive bonus content.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.