Hi, I'm Hawk
System & firmware engineer working close to the hardware for 10+ years — embedded firmware, kernel-adjacent drivers, and parallel/HPC systems. This blog is where I keep what I learn so I can find it again.
Background
I started in systems software in 2013 during an integrated PhD program at Korea University, researching parallel/distributed systems and deep-learning optimization. Since then I've worked on SoC bring-up and IP driver verification at MetisX (ARM M0+ / A53, Zebu/HAPS, NVMe), VPN runtimes and kernel firewall modules at Future Systems, and tsunami-detection / hydrodynamics simulation at Marine Information Technology. Full project history is on the /resume page.
What I Work With
Day-to-day I sit close to the hardware: ARM and RISC-V bring-up, low-level drivers (I2C/SPI/UART, NVMe, custom IPs), bootloaders, and SDK refactoring. I also keep one foot in parallel computing — CUDA, MPI, and deep-learning inference systems from earlier R&D work. C/C++ are my daily drivers; Python for tooling and ML.
Why This Blog Exists
Most posts here are notes I wrote for *myself*: a chapter of a book I needed to internalize, a debugging session I want to remember, a pattern I kept re-deriving. Publishing them forces me to fix the loose ends I'd otherwise leave hanging. If a post helps you too, that's a bonus.
What You'll Find
Book-driven series (Effective Modern C++, GoF Design Patterns, Designing Data-Intensive Applications, Linear Algebra, and more), embedded standards walkthroughs (MISRA, Google C++ Style), tooling notes (Vim, perf, debuggers), and deep-dives into topics I've hit at work. Korean is the primary language; some series carry English code and comments.
Get in Touch
GitHub and email are linked in the footer. I happily read corrections, disagreements, and "you should also read X" notes. For longer conversations about firmware, drivers, or parallel systems, the /resume page has fuller context.