On this page I blog about computer science, programming techniques, ML, computer architecture and software/hardware co-design. Some posts are comprised of a series of blogposts due to their length, and will be split into their respective topics.
On this page I blog about computer science, programming techniques, ML, computer architecture and software/hardware co-design. Some posts are comprised of a series of blogposts due to their length, and will be split into their respective topics.
Aug. - Sept. 2026
Ever wondered how PyTorch works beneath the hood, and what engineers do to make it so fast and smooth to run? If yes, this series of blogposts will give you a comprehensive understanding of all of these.
These posts assume solid C++ knowledge (templates, memory management, build systems) and familiarity with basic ML concepts. CUDA posts assume you are familiar with the basics of CUDA. CPU optimization posts assume familiarity with computer architecture, operating systems, and assembly language.
The series goes as follows:
April 8, 2026
What happens when you have an algorithm to learn statistical concepts (ML!), but can't prove its properties the normal way through a proof of correctness? In this article I sketch out how to prove PAC-bounds, showing the learning capabilities of one of our own designed learners.
Jan. 2026 - Updated: March 2026
In this article we explore how to call Python scripts from within C++ using CPython, and how to send arguments to the Python scripts and how to receive them. You can find the article here.