Hi, I’m Felipe 馃憢

  • Welcome to my corner of the web.
  • I’m a Software Engineer and author this blog.

Patch Workflow

This post will serve as a reference for me to revisit and improve upon as I continue learning* I joined the LFX Mentorship program for the Linux kernel not that long ago, and I鈥檝e been working on finding an effective workflow for creating and managing patches. Initially, I created all my patches using git format-patch and relied on git send-email to mail them out. However, during my time in the Linux Kernel Bug Fixing Summer 2024 program (LKMP), I was introduced to b4 and git worktree through interactions with mentors, Ricardo B....

December 17, 2024 路 4 min 路 felipe

Debugging Kernel Oops

Introduction When writing or using software, it鈥檚 not uncommon to run into bad states. Sometimes things break and we鈥檙e met with a cryptic stack trace. In a web server, this may look like an HTTP 500 response along with a helpful error message hinting at where the issue may lie - if you were diligent about adding proper error handling, that is - in the best case. Other times you鈥檒l be faced with a vague error message without much to go on....

June 1, 2024 路 7 min 路 felipe

Making sense of Node.js internals: a first pass

In this post, I attempt to peel back one of the layers that make up Node.js. I plan to continue my deep dive in future posts, so this is not meant to be exhaustive, but I hope to lay out some of the underlying principles that contribute to Node鈥檚 non-blocking nature. Which leads into my first question: what exactly does non-blocking mean? To examine, I鈥檒l first visit some basic operating systems theory concepts....

May 25, 2024 路 8 min 路 felipe

Linux Kernel Development: Exploring USB device drivers

In this follow-up post, I cover my experience experimenting with USB device drivers.

May 20, 2024 路 6 min 路 felipe

Getting Started With Linux Kernel Development

In this post, I cover my experience diving into writing a Loadable Kernel Module (LKM) for the Linux kernel. From setting up the development environment to compiling and testing the module.

May 9, 2024 路 8 min 路 felipe

Input validation for the security-minded developer

If you spent any time developing web applications you鈥檝e come across a need to validate input, whether it be on forms or API endpoints. In an ideal world, we鈥檇 only deal with trusted users with good intentions and completely close off any interactions with untrusted users. But the reality is that most applications need to deal with input, and we can鈥檛 always guarantee that it鈥檚 coming from a trusted source or that a malicious threat actor isn鈥檛 sitting in between the connection....

May 3, 2024 路 9 min 路 felipe

Parsing CSV Files in Go

In this post, we鈥檒l dive into processing CSV files with Go and its standard library.

April 30, 2024 路 9 min 路 felipe