Jesús Espino
@jespino.bsky.social
📤 26
📥 39
📝 65
Open Source enthusiast. Public Speaker. Working at
@victoriametrics.bsky.social
.
What is Inference? How LLMs run, explained in a gentle introduction The mental model of inference: nextToken(input, frozenWeights) -> token, called in a for loop Also I explore the GGUF file that carries the ENTIRE model inside it
internals-for-interns.com/posts/go-ai-...
#golang
#AI
#LLM
loading . . .
What is Inference? | Internals for Interns
Welcome to a new series! For most developers today, using a large language model means one thing: an HTTP call to somebody else’s computer. You send a prompt to an API, tokens come back, and everythin...
https://internals-for-interns.com/posts/go-ai-inference-what-is-inference/
1 day ago
0
2
0
Spent the weekend starting a new series: Understanding Go AI Inference. First stop: what inference actually is. A simple model is a pure function, nextToken(input, frozenWeights), called in a for loop. Every LLM answer is built one token per lap. Drops Tomorrow
2 days ago
0
0
0
Did you know?
internals-for-interns.com/posts/linux-...
6 days ago
0
0
0
"The VFS" answer the question: how can file operations work identically on an ext4 file, a /proc file, and an NFS share on another machine? The answer is a classic: program against an interface, not an implementation. Read it here:
internals-for-interns.com/posts/linux-...
loading . . .
The VFS | Internals for Interns
In the previous article we saw how the scheduler decides which task gets the CPU — so at this point we know how programs get to run. But running isn’t enough: for a program to be useful, it almost al...
https://internals-for-interns.com/posts/linux-kernel-vfs/
8 days ago
0
0
0
Did you know?
internals-for-interns.com/posts/mmap-v...
13 days ago
0
0
0
The first guest post in my blog, by
@func25.bsky.social
: "mmap vs pread in a real Go storage engine", a deep dive into how VictoriaLogs decides how to read bytes from files. It sounds too low-level to matter, until you do the math.
internals-for-interns.com/posts/mmap-v...
#Go
loading . . .
mmap vs pread in a real Go storage engine | Internals for Interns
When you build a storage engine in Go, sooner or later you need to answer a very plain question: “How should the code read bytes from files?” This sounds too low-level to matter. A database has bigger...
https://internals-for-interns.com/posts/mmap-vs-pread-go-storage-engine/
15 days ago
0
0
0
New plan for the next 3 months in my blog! Two series in parallel: Continuing the one about the Linux kernel (VFS, I/O, Devices, Network, NUMA...) And starting one about Go AI Inference (Yzma, Kronk, and friends) Plus guest posts from
@func25.bsky.social
,
@alexrios.me
@mdelapenya.bsky.social
19 days ago
1
2
0
Did you know?
internals-for-interns.com/posts/go-run...
20 days ago
0
0
0
Article about the Go's Profiler CPU, heap, block, mutex, goroutine. Five profiles, one pprof file, and every sample is just a call stack. What changes is how the stack gets recorded.
internals-for-interns.com/posts/go-run...
#Go
#Golang
loading . . .
Profiling | Internals for Interns
In the previous article we took apart the reflect package and found that its magic is mostly the compiler leaving very good notes — type descriptors frozen into read-only data at build time, and a pa...
https://internals-for-interns.com/posts/go-runtime-profiling/
22 days ago
0
1
0
Today I'm diggin into how Go profiling actually works Interesting thing, the profile file itself is just a gzipped protobuf. You can literally read the .proto and understand the whole format.
github.com/google/pprof...
loading . . .
pprof/proto/profile.proto at main · google/pprof
pprof is a tool for visualization and analysis of profiling data - google/pprof
https://github.com/google/pprof/blob/main/proto/profile.proto
24 days ago
0
0
0
Did you know?
internals-for-interns.com/posts/linux-...
27 days ago
0
0
0
How Linux picks who gets the CPU next, using EEVDF (Earliest Eligible Virtual Deadline First). The trick: it counts "virtual" runtime (real time ÷ priority), only lets tasks that are owed CPU run, then picks the soonest deadline.
internals-for-interns.com/posts/linux-...
#Linux
#Kernel
loading . . .
The Scheduler | Internals for Interns
In the previous article we looked at how the kernel gives every process its own private view of memory. But memory is only half of what a process needs to actually run. The other half is the CPU itse...
https://internals-for-interns.com/posts/linux-kernel-scheduler/
29 days ago
0
0
0
Today I'm diving into how Linux decides who gets the CPU next The scheduler doesn't schedule "processes" or "threads." Underneath, both are just a task_struct. The only difference is what they share. It picks among them with an algorithm called EEVDF. Article drops Tomorrow!
30 days ago
0
2
0
This saturday I'm digging into how the go reflect package gets you the types information. Spoiler: it doesn't compute them. The compiler serialized your types into your binary. reflect just reads them with pointer arithmetic. The article will be out this Monday
about 1 month ago
0
0
0
Did you know?
internals-for-interns.com/posts/linux-...
about 1 month ago
0
0
0
New article: the Linux Memory Manager On surprising fact: malloc()/mmap() reserves no physical RAM. Pages are allocated lazily, it waits until the first page fault when you touch the memory to give you the real RAM.
internals-for-interns.com/posts/linux-...
#Linux
#Kernel
#Memory
loading . . .
Memory Manager | Internals for Interns
In the previous article we looked at how a user program crosses the ring 3 → ring 0 boundary to ask the kernel for help. The example we used was read() — a file descriptor, a buffer pointer, a byte c...
https://internals-for-interns.com/posts/linux-kernel-memory-manager/
about 1 month ago
0
0
0
Today is my first day at
@victoriametrics.bsky.social
! 🎉 Back to working on Open Source, on exactly the kind of deep systems project I've wanted for ages, performance, and understanding hardware, OS fundamentals. Lots to learn, and that's the best part. I'll be writing about what I learn as I go.
about 1 month ago
0
1
0
My article tomorrow about the Linux memory manager. What stuck: malloc() doesn't give you any RAM. It just reserves a range of addresses. The first time you write there, the CPU faults and *only then* does the kernel grab a real page. Alloc 1 GB, touch 10 MB, use 10 MB.
#Linux
#Kernel
#Memory
about 1 month ago
0
0
0
Did you know?
internals-for-interns.com/posts/go-run...
about 2 months ago
0
0
0
A Go panic trace is built in two phases: → the unwinder climbs the stack, recovering each call's program counter → symbolization maps each PC to a function, file, and line The chain is rebuilt on the fly from binary metadata.
internals-for-interns.com/posts/go-run...
#golang
#go
#runtime
loading . . .
Stacktraces | Internals for Interns
In the previous article we took apart the select statement and saw how it’s really two features in one, with the compiler rewriting the easy shapes away and only the hard cases falling through to the...
https://internals-for-interns.com/posts/go-runtime-stacktraces/
about 2 months ago
0
1
0
Saturday Go runtime dive: stacktraces A panic trace is built in two parts: → the unwinder climbs your stack, grabbing each call's program counter → symbolization turns each PC into a function, file, and line Drops Monday
#golang
#go
#runtime
about 2 months ago
0
1
0
I'll be giving a full-day workshop at
@gopherconeu.bsky.social
2026 in Berlin! "Advanced Go Internals: Compiler and Runtime Mechanics", June 17th. We crack open Go 1.26.1's source code and modify it directly. With some fun exercises included. Come break Go with me 😄
gophercon.eu
about 2 months ago
0
2
1
Did you know?
internals-for-interns.com/posts/linux-...
about 2 months ago
0
0
0
How Linux system calls actually work? `bash` can't print to the terminal. `cat` can't read a file. Userspace is sandboxed by hardware - everything goes through the kernel, and that is done through syscalls. Read more in my article here:
internals-for-interns.com/posts/linux-...
#Linux
#Kernel
loading . . .
System Calls | Internals for Interns
In the previous article we followed the kernel from the very first instruction the bootloader handed us all the way to the moment kernel_init called execve() on /sbin/init. That was a long ride, but ...
https://internals-for-interns.com/posts/linux-kernel-syscalls/
about 2 months ago
0
0
0
Saturday deep dive: system calls `bash` can't print to the terminal. `cat` can't read a file. Userspace is sandboxed. Everything goes through the kernel via syscalls. read, write, open, close... they look like function calls. But they're a very different beast. Article drops on Monday.
loading . . .
Subscribe to the Newsletter | Internals for Interns
Get weekly deep dives into software internals delivered straight to your inbox. Learn how compilers, databases, and systems work under the hood—explained in an approachable way. What ...
https://internals-for-interns.com/newsletter/
about 2 months ago
0
1
0
Did you know?
internals-for-interns.com/posts/go-run...
2 months ago
0
0
0
New post: the Go `select` statement It's really two features: - the compiler rewrites empty, single-case, and case+default selects away - only the general case calls `runtime.selectgo`
internals-for-interns.com/posts/go-run...
#golang
#go
#runtime
loading . . .
The select Statement | Internals for Interns
In the previous article we walked through slices, maps, and channels, and how each of them is structured under the hood. Out of those three, channels are probably the most involved one in terms of ho...
https://internals-for-interns.com/posts/go-runtime-select/
2 months ago
0
0
0
Saturday Go deep dive: the `select` statement It looks like a switch, but it's really two features in one: the compiler rewrites the easy shapes away, and the runtime handles the rest in a single function called `selectgo`. I'll explait it on my Monday's blog post!
#golang
#go
#runtime
2 months ago
0
0
0
Did you know?
internals-for-interns.com/posts/linux-...
2 months ago
0
0
0
reposted by
Jesús Espino
GoLab Conference
2 months ago
🥳We are extremely glad to announce the Schedule and the Speakers of GoLab 2026!
golab.io/schedule
0
7
3
New article: The Linux Kernel Startup 🚀 First of a series on the Linux kernel. Not to make you an expert, just to map the territory. Heads up: it ended up denser and longer than I'd have liked, but I guess the Linux kernel is just a hard topic. 👉
internals-for-interns.com/posts/linux-...
#Linux
loading . . .
The Linux Kernel Startup | Internals for Interns
Have you ever wondered what really happens between the moment you press the power button and the moment your login screen shows up? That gap—usually some seconds—hides one of the most intricate initia...
https://internals-for-interns.com/posts/linux-kernel-startup/
2 months ago
0
1
0
Saturday adventure: kicking off a new series on the Linux kernel First post uses a space colony metaphor: the bootloader is the dropship, your computer is a barren planet, and the kernel is the advance team turning rock into a working colony before life support runs out. Available this Monday.
2 months ago
0
2
0
Did you know?
internals-for-interns.com/posts/go-run...
3 months ago
0
0
0
New article: Slices, Maps, and Channels A look at the three most ordinary Go types and the not-so-ordinary structures behind them. ↔ slice headers and the doubling/1.25× growth ↔ Swiss tables, H1/H2, and local growth ↔ hchan, sudogs, and goroutine handoff
internals-for-interns.com/posts/go-run...
loading . . .
Slices, Maps, and Channels | Internals for Interns
So far in this series we’ve looked at the parts of the Go runtime that orchestrate execution — the memory allocator, the scheduler, the garbage collector, sysmon, the netpoller. Today we’re switching ...
https://internals-for-interns.com/posts/go-runtime-slices-maps-channels/
3 months ago
0
0
0
Saturday Go runtime deep dive 🤓 Writing about the three things every Gopher uses every day: slices, maps, and channels. Turns out a slice is 24 bytes, a map (since 1.24) is a Swiss table, and a channel is just a buffer + two queues of parked goroutines. Will be available this Monday.
#golang
loading . . .
Subscribe to the Newsletter | Internals for Interns
Get weekly deep dives into software internals delivered straight to your inbox. Learn how compilers, databases, and systems work under the hood—explained in an approachable way. What ...
https://internals-for-interns.com/newsletter/
3 months ago
0
1
0
The paperback of Deep Dive into a SQL Query finally arrived. I ordered a copy from Amazon to check the print quality myself, and it came out better than I expected. Different feeling seeing it on paper instead of a screen. Kindle and paperback link in the reply 👇
3 months ago
2
0
1
Did you know?
internals-for-interns.com/posts/zfs-fi...
3 months ago
0
0
0
New article: Inside ZFS 🔥 A walk through the three layers (SPA, DMU, DSL), the 128-byte block pointer that makes the whole pool a Merkle tree, the uberblock ring, and why snapshots are O(1). 👉
internals-for-interns.com/posts/zfs-fi...
#ZFS
#Filesystems
loading . . .
ZFS | Internals for Interns
In the previous article , we explored Btrfs—a copy-on-write filesystem built around a single kind of B-tree, where every file, extent, checksum and chunk mapping lives as a tagged item in some tree, a...
https://internals-for-interns.com/posts/zfs-filesystem/
3 months ago
0
0
0
Spent the weekend deep in ZFS internals Next up in the filesystems series: how a 128-byte block pointer turns the entire pool into a Merkle tree, and why snapshots are basically free (just copy a pointer + stamp a TXG). SPA ↔ DMU ↔ DSL, uberblocks, vdevs, ARC, ZIL. Drops Monday
#ZFS
#Filesystems
3 months ago
0
0
0
reposted by
Jesús Espino
GopherCon Europe
3 months ago
#gopherconEU
Workshop Spotlight: Advanced
#Golang
Internals by
@jespino.bsky.social
Navigate the Go codebase from lexer and parser to the runtime scheduler. Run safe experiments on the compiler and runtime to build a concrete mental model of how Go executes
gophercon.eu
0
4
2
As I always try after a conference, here is the summary of my experience at the Codemotion Madrid 2026.
www.linkedin.com/pulse/my-exp...
loading . . .
My experience at Codemotion Madrid 2026
Codemotion Madrid is one of those events I always look forward to, and this year didn’t disappoint. I came home tired in the best possible way: head full of ideas, phone full of new contacts, and a no...
https://www.linkedin.com/pulse/my-experience-codemotion-madrid-2026-jes%C3%BAs-espino-po6he
3 months ago
0
0
0
Did you know?
internals-for-interns.com/posts/go-net...
3 months ago
0
0
0
Saturday runtime deep dive: Go's network poller 🔍 How can you write `conn.Read(buf)` (looks blocking!) and still serve a million connections on a handful of threads? Spoiler: a smart waiter, a little note per socket, and a careful 3-step parking dance. Drops Monday
#golang
#runtime
3 months ago
0
0
0
Somebody from the Linux User Group at the university where I studied build this game about guessing Linux distributions. I have to admit that was harder than I expected:
distro.fedesito.me
loading . . .
Distrodle - Linux Distro Guessing Game
https://distro.fedesito.me
3 months ago
0
0
0
Did you know?
internals-for-interns.com/posts/btrfs-...
3 months ago
0
0
0
I finally published my book about Postgres! Check it out here:
lnkd.in/eakHPn6E
Thanks
@alexrios.me
for the very good feedback, and
@franckpachot.bsky.social
for taking the time on reading the book and writing the foreword. More details here:
www.linkedin.com/pulse/my-boo...
loading . . .
LinkedIn
This link will take you to a page that’s not on LinkedIn
https://lnkd.in/eakHPn6E
3 months ago
0
4
3
New article: Btrfs 🌳 The Linux filesystem that never overwrites data. Every write goes to a new location. Snapshots, RAID, per-block checksums with auto-repair on RAID, atomic transactions, all built into the filesystem.
internals-for-interns.com/posts/btrfs-...
#Linux
#Btrfs
#Filesystem
loading . . .
Btrfs | Internals for Interns
In the previous article , we explored XFS—a filesystem built for extreme scale that divides the disk into independent Allocation Groups, each with its own B+ trees for free space, inodes, and extent t...
https://internals-for-interns.com/posts/btrfs-filesystem/
3 months ago
0
2
0
Saturday deep dive into Btrfs. The Linux filesystem that never overwrites data in place. Every single change writes to a brand new location on disk. Sounds wasteful, but this copy-on-write design is what makes instant snapshots possible. Article drops Tomorrow!
3 months ago
0
0
0
Did you know?
internals-for-interns.com/posts/go-sys...
3 months ago
0
0
0
New article: The Go System Monitor How sysmon, a thread with no P, keeps the runtime fair. It preempts goroutines, retakes Ps from syscalls, forces GC every 2 minutes, and ensure network poller keeps ticking. The Go's watchdog
internals-for-interns.com/posts/go-sys...
#golang
#go
#runtime
loading . . .
The System Monitor | Internals for Interns
In the previous articles we explored the scheduler — how goroutines get multiplexed onto OS threads through the GMP model — and the garbage collector — how Go tracks and reclaims memory using a conc...
https://internals-for-interns.com/posts/go-sysmon/
4 months ago
0
1
1
Load more
feeds!
log in