Every C project starts with a printf("Hello, World!\n");, and this blog is no exception. Welcome to pablogs.dev.

I’ve been wanting to create a personal space for a while now to document my projects, organize my thoughts, and most importantly, share what I learn about systems programming and low-level C. Often, when coding in higher-level languages, we take the underlying magic for granted: how memory is allocated, how resources are cleaned up, or how data structures grow.

My goal with this blog is to demystify that magic by implementing these tools from scratch.

What to expect?

In the coming weeks and months, I’ll be publishing article series where we’ll get our hands dirty with raw C code. Some of the things I have on the roadmap include:

  • Dynamic Structures: How to build your own dynamic arrays and linked lists in C without pulling your hair out.
  • Memory Management: A comprehensive series on writing a Custom Allocator (building our own versions of malloc and free).
  • Garbage Collectors: Yes, we are going to write a garbage collector for C, exploring how to track pointers and automatically sweep the heap.
  • Thoughts and Tricks: Environment setups, Makefiles, and side projects.

Why bilingual?

I decided to build this blog using Hugo, configured to support both English and Spanish. I want to share these projects with the global programming community, while also making low-level engineering resources more accessible to the Spanish-speaking community. You can switch languages at any time using the toggle in the header.

Warm up your favorite compiler, watch out for Segmentation Faults, and I’ll see you in the next post.