About me

Alberto Carretero

That's funny because if anyone actually did prove the existence of God we'd just tell him “nice proof, Fraa Bly” and start believing in God.

Neal Stephenson, Anathem

I am a very curious person, I enjoy learning about anything especially if it is related to computers. As of lately, I am mostly interested in distributed systems and storage but in the past I have also enjoyed learning about programming language theory and about security.

I currently reside in Spain.

My personal interests, apart from programming, are reading fiction and non fiction, listening to all types of music, cooking and meal prepping and sports.

You can find my CV here and my email address is angelalbertoc.r(AT)gmail.com. The email is written like this to prevent bots to crawl the email by identifying the @.

Some past personal projects

Here you can find several projects I have completed that showcase my different interests.

C Simple Http Server

Technologies: C, Unix/Linux sockets, pipes, threads and forks.
Tags: Networking, Low level, Detailed documentation.
HTTP 1.1 mostly compliant server written in C. It follows the spec for an assignment in the Networking class at university. The implementation was free form and is explained in the documentation along with the major design choices.

Dyntypes

Technologies: Rust, Parser combinators, Type system, Tree-walk interpreter.
Tags: Abstraction, High level programming, Data structures.
A tree-walk interpreter from 0 (completely from scratch, no libraries used) for an esoteric programming language I designed. In the process, we implement our own library of parser combinators, a very simple type system and a tree-walk interpreter whilst also learning about closures, expressiveness and how a compiler works. This knowledge is extensively documented in the memoirs that serve as my Computer Science's bachelor thesis (link).

Eudyptula Linux Kernel challenges

Technologies: Linux Kernel modules, Busybox, Linux, Qemu, initramfs.
Tags: Low level, GNU/Linux.
Created a small bespoke environment for Linux kernel development in Qemu consisting of Busybox and a custom initramfs to solve the eudyptula challenge. Created several Kernel modules as part of the challenge solutions. Got a simple patch merged into the mainline kernel. Currently in progress.

Pseudo-Riemannian Geometry and Schwarzschild Spacetime

Technologies: Math, geometry, Some physics.
Tags: Abstraction.
My Math's bachelor thesis.

Talks

Git gud: how Git works internally (video)

Most developers use Git daily but, despite that, they still find it to be a source of frustration. For example, how many times have you created a backup of the whole project before attempting to do anything with Git? My promise is that you won't have to do that anymore after this talk!

I think it all comes down to the mental model we have when working with Git. We are not going to cover several hundred Git commands and show pretty pictures of commit graphs. We are going to get our hands dirty and explore together how Git stores its state on disk inside the .git subdirectory. For each command that we run we are going to inspect the results using low-level tools. By covering basic operations in this way (git add, git commit, git checkout) you will gain a deeper intuition, knowing what is possible and what is not.

Links

About this website

I have been interested in typography lately and I wanted to try out some ideas on this website. The design is based on Tufte CSS which, on its own, is based on Edward Tufte books. Nevertheless, all the errors in adapting the style to this website are mine.