Jesús Espino

@jespino.bsky.social

Open Source enthusiast. Public Speaker. Working at @victoriametrics.bsky.social.

NUMA is easy to ignore. Your laptop probably doesn't have it, and Linux handles it transparently on your server. So you never notice your memory-intensive app leaving performance on the table. Check my new article about how NUMA works inside Linux: internals-for-interns.com/posts/linux-...

NUMA | Internals for Interns

In the previous article we followed a packet all the way in from the wire and all the way back out. At every step something was reading or writing memory — the page the driver handed the card, the sk...

internals-for-interns.com

Today I'm writting about NUMA It works on your machine because your machine has one CPU socket. On a two-socket server half the RAM is a detour away, and nothing warns you. Tomorrow I'll publish the article explaining how Linux handle NUMA nodes.

I'm getting my post about the Kronk late by one day (it will be out tomorrow). I was the last week busy at Percona Live, and I have the post almost ready but I don't want to rush it, so I want to give me the opportunity to polish it to the quality that I want.

My friend @mdelapenya.bsky.social (Staff engineer at Docker, testcontainers-go maintainer) brings a guest post 🎉 It answers what I never dug into: what IS that testcontainers/ryuk container in your docker ps? A deadman switch that ensure the cleanup after for your tests works or fails.

If you missed my talk at @gopherconuk about the select statement, here are the slides (speakerdeck.com/jespino/deep...) and the recording (www.youtube.com/watch?v=fH5h...). Check out the rest of the recordings in the conference, as always at @gopherconuk, the talks where amazing.

Deep dive into the select statement (GopherCon UK)

The select statement is a cornerstone of Go's concurrency model, enabling developers to coordinate multiple channel operations with precision. This talk…

speakerdeck.com

My new article, the Kronk SDK, is live. 3 important components: → prep: messages validated, templated and tokenized into a job → KV cache: restore the prefix, decode only what's new → engine: makes your tokens tick concurrently internals-for-interns.com/posts/kronk-... #golang #AI

The Kronk SDK | Internals for Interns

In the previous article we took yzma apart and found a very disciplined bridge: purego finds the functions inside libllama.so, libffi makes the calls, and no C compiler is involved anywhere. What you...

internals-for-interns.com

Today I'm exploring the kernel modules. Not from the macro side (module_init, EXPORT_SYMBOL). From the other end: open a compiled .ko with readelf and see what a plain .o doesn't have. A .ko is a half-linked object. The kernel finishes the link on load. It will be available tomorrow.

New article: Yzma, how Go drives a C++ inference engine with no CGo. → purego answers "where is the function?" → libffi answers "how do I call it?" Not only that, yzma also downloads the right build for your machine, and the gguf models. internals-for-interns.com/posts/yzma/ #golang #AI

Yzma | Internals for Interns

In the previous article we looked at what inference actually is — how a model takes a prompt and builds a response one token at a time. I mentioned two Go projects that let you run that loop locally:...

internals-for-interns.com

Kick Ass job as always by @jespino.bsky.social on the release notes for 1.27. It felt overwhelming. I'm wondering if Go fix can be used to change Go code with some of these changes like struct literal field selectors and maybe switching to the new uuid package? victoriametrics.com/blog/go-1-27/

Go 1.27 interactive tour

An interactive tour of what’s new in Go 1.27: every notable language, runtime, and standard library change, with short runnable examples you can edit and run in the browser.

victoriametrics.com

Today I'm looking at yzma and how it calls llama.cpp without cgo. It binds at runtime, so two libraries split the work: → purego: dlopen/dlsym, finds the function's address → libffi: builds the call plan from a signature you describe in Go The blog post will be avaiable tomorrow.

In this latest blog post, @jespino.bsky.social, Software Engineer, breaks down the upcoming changes with practical, runnable examples so you can quickly understand what has changed and how the new behavior works. If you want to learn more about #GoLang, this article is a great read. bit.ly/4fITgSV

Go 1.27 interactive tour

An interactive tour of what’s new in Go 1.27: every notable language, runtime, and standard library change, with short runnable examples you can edit and run in the browser.

bit.ly