Yosberto Baro Carbonell · software engineer · Miami

Building to understand.

I build backend systems and small experiments because I like knowing what is happening underneath. I’m especially interested in databases, infrastructure, distributed systems, graphics, and languages that let the type system do more of the thinking.

Currently completing a Master’s in Computer Science and Engineering at the University of Bologna.

A cyanotype print: scattered pale specks at the bottom resolve into a fern-like graph, a grid of halftone dots and a bundle of strands, which feed into an open blueprint framework at the top.
Plate 0 Observations → patterns → structure.

Field note · current work

Boundaries that survive the source.

At work, one of the systems I’m involved with moves data out of a legacy Oracle system and into the MongoDB system replacing it. The synchronization itself is not the interesting part. The boundary around it is.

Repositories tied to each source produce a shared internal representation. RabbitMQ separates acquisition from downstream processing. Everything after that works against stable contracts, so a source can be replaced without teaching every consumer where its data came from.

FIG. 1 · THE BOUNDARY oracle · legacy a replacement repository repository shared representation stable contract nothing below knows the source rabbitmq downstream processing mongodb · the new system
Fig. 1 Schematic, not a system diagram: the parts named in the note, in the order data passes them.

Why I keep rebuilding things

It started with taking toys apart.

When I was a kid in Havana, anything that looked remotely high-tech made me wonder what was inside. RC toys suffered the most. I would open them, usually break them, and try to work backwards from whatever I found.

I had no internet and no idea which books I should even be looking for. When I eventually discovered the internet, the problem flipped: suddenly the only real limit seemed to be how quickly I could get all that information into my head. The instinct never really went away. I just got better tools—and, eventually, fewer broken toys.

Understanding is when the last gap in the web closes. A concept from chapter two turns out to generalize one from chapter eleven; one rule becomes a consequence of two others; the jump stops feeling like a jump.

A working definition of “understand”

Selected projects · three plates

Things I built because I had questions.

The project usually starts with something I can use but cannot quite explain yet.

A cyanotype print of a prerequisite graph drawn like a pressed fern: solid pale nodes below, faint outlines above, and one brighter ringed node at the frontier.
Plate I Prerequisite topology; the ringed node is what to study next.
Specimen 01 · principal studyPython · PostgreSQL

Hermes Curriculum

A curriculum engine that decides what to study next, leaving an AI tutor to teach rather than plan.

Why
It bothered me that LLMs could retrieve so much information while I could only absorb it so quickly. I wanted more than summaries: a system for turning course material into an actual path through the subject.
Learned
How graph structure, FSRS scheduling, verification gates, and hexagonal boundaries can become one usable learning system.
Touches
Python · PostgreSQL · pgvector · MCP · knowledge graphs

The question underneath it: how can human reasoning and an LLM’s ability to retrieve information help each other without pretending they are the same thing? I don’t have a definitive answer. Hermes is how I explore it.

I use it for my actual university exams. It helped me prepare for Cybersecurity, completed with 29/30.

Specimen 02 · rendering study

Zero Renderer

A route into Rust and graphics programming that began with raw rendering math before moving to wgpu.

I built it because using a game engine before understanding the pipeline felt like skipping the interesting part. The project moved from CPU calculations to shaders, GPU resources, and the mechanics behind drawing a pixel.

Rust · wgpu · shaders · graphics pipelines

A cyanotype print of a wireframe icosahedron whose projection rays pass through a picture plane and clear a silhouette of pixels in a coarse grid.
Plate II Projection to raster: geometry through a picture plane, into pixels.
A cyanotype print of a stream of packets on a single strand flowing into a grid of memory slots, some filled pale, some still blue.
Plate III A protocol stream entering memory.

Specimen 03 · protocol study

Redis Clone

A small Redis implementation in Go, built to understand RESP, in-memory data structures, TCP servers, and concurrent connections from the inside.

Go · TCP · RESP · concurrency

From the notebook · July 2026

What I’m following now.

Constraint before generation

Give the model a cage it can measure itself against.

I don’t trust a model with a whole end-to-end project and no external standard. On a recent legal-editor replacement, I built the infrastructure first: the useful measure is how many items match the old system byte for byte.

The evaluator penalizes regex-heavy solutions. I would rather fix the structure of the problem than hide it under string hacking and call the result done.

Current question

How should I reason about concurrency before reaching for an abstraction?

Studying Concurrent and Parallel Programming: synchronization, memory models, scheduling, and the difference between code that runs and a model I can trust.

On the desk

  • Rust Atomics and LocksMara Bos
  • AI EngineeringChip Huyen
  • Programming Massively Parallel ProcessorsGPU study curriculum

Language margin

At work, mostly C#. For fun, Rust—and right now, Haskell. I keep gravitating toward languages that let the type system carry more of the reasoning.

Interesting problem? Tell me about it.

I’m always looking for the most interesting challenges I can find, preferably with interesting technology behind them. I’m open to work that lines up with those interests and still leaves room to learn.