Computer engineer · RTL design and hardware acceleration for machine learning
I design digital hardware and write about what I build. I am currently doing a master’s in computer engineering at USC, focused on processor architectures and hardware acceleration for machine learning.
You will find projects and guides here on self-hosted AI, home automation, 3D printing, health technology, or pretty much any project I’m working on.
You built a private AI assistant on your own hardware, you gave it your house manual, and it answers beautifully. So why is nobody at home using it?
If that sounds familiar, the problem is almost never the model. It is the doorway. Asking a family member to remember a URL, open a browser tab, sign in, and pick the right model from a dropdown is asking them to change their habits, and habits rarely lose. Instead of making everyone come to the assistant, put the assistant where they already are: in a chat app that is already open on their phone.
What if you could describe a game in plain language, press enter, and watch an AI agent write and debug C code until something playable appeared in your terminal?
You can, and an afternoon is enough. With a CLI coding agent, a C compiler, and the ncurses library, you can build a Tetris-inspired falling-blocks game that runs natively in your terminal, in a single session. You do not need to be a C programmer to begin, and I was not one either: my own hand-written tetris.c never made it past the compiler, and that failure is where this project actually started. By the end you will have three things worth keeping: a binary you compiled yourself, a readable C codebase you can pick apart line by line, and a workflow you can reuse on the next idea you have.
What if the AI assistant your whole family uses ran on your own hardware, answered in seconds, and never sent a single word of your conversations to the cloud?
You can build exactly that. With free, open-source tools and a PC with a decent GPU, a private AI runs entirely on hardware you already own: no subscription fee, no account with a vendor, no data leaving your home network. Moreover, this is one of the most rewarding home-lab projects you can take on. By the end you will have worked through Linux, Docker, GPU drivers, and home networking, and you will understand how those four layers fit together.
Have you spent an evening chasing a perfect first layer, only to nail one side of the bed and lose the other? Manual bed levelling on a stock Ender 3 is a ritual: four knobs, a sheet of paper, and a first layer that is beautiful on the left side of the bed and translucent on the right. The problem is not that you are bad at turning knobs. It is that the bed is not flat, and no amount of adjusting four corners will fix a surface that bows in the middle.
Is your early Ender 3 the loudest thing in the room every time it starts a layer, or have you hit a wall trying to add features that the stock firmware simply will not fit? Both problems trace back to the same part: the mainboard Creality shipped it with. That whine is not a quirk of cheap printers in general. It is a very specific consequence of the drivers soldered onto that board, and it is only one of several things about it that quietly limit what the machine can do.