IC Design Studio is an open-source desktop application that combines circuit schematic design, simulation, waveform analysis, and physical layout in one workspace. It integrates with tools such as ngspice, Xschem, and KLayout and supports open process design kits, including SKY130 and GF180MCU. Currently in engineering preview, it helps users learn circuit design, develop small analog blocks, and run reproducible experiments locally without requiring an account or cloud service.
A KiCad extension for designing planar electromagnetics—the copper components you cannot buy off the shelf. Planar Studio synthesizes and solves physical layouts for planar inductors, axial-flux PCB motor stators, RF/EMI filters, antennas, and transformers, writing them directly into a live KiCad board stack-up.
EMI Filter Designer is an open-source tool for designing and simulating electromagnetic interference filters for switching power supplies. It selects real components, predicts conducted emissions against common compliance limits, and checks filter stability, with optional Mouser and DigiKey integration for pricing and availability. Available as a Windows desktop app and a browser-based application, it exports bills of materials, SPICE netlists, and printable design reports to support prototyping and testing.
Analog Lens is an open-source xschem extension that helps analog circuit designers inspect transistor operating points and size devices directly within their design environment. It combines gm/Id analysis, PDK-based device characterization, and sizing previews with simulation-based verification and comparisons against saved baselines. Built with native Tcl/Tk for IIC-OSIC-TOOLS on Linux, it integrates with ngspice to bring device metrics, interactive charts, and guided sizing into the schematic workflow.
Inductor Studio is a Python-based desktop application that lets you design, evaluate, and export custom spiral inductors for open-source silicon workflows. The tool provides a live geometry preview and first-order electrical modeling using native layer profiles for the SkyWater SKY130, GlobalFoundries GF180MCU, and IHP SG13G2 PDKs. To bridge the gap between design and verification, it instantly generates GDSII layouts, KLayout PCells, and ready-to-simulate xschem symbols with embedded ngspice testbenches.
For my BREATH air quality monitor, I designed a web server hosted on the ESP32 to display the data. It shows the CO2, temperature, humidity, barometric pressure, VOC, NOx, acceleration, gyroscope, and the bring-up tests.
For my senior capstone project, I developed a debugging tool for our embedded system using an ESP32 microcontroller. The script allowed us to manually generate pulses at configurable frequencies and pulse counts, all controlled through a serial terminal interface. This tool proved useful for validating hardware behavior, troubleshooting signal timing, and accelerating overall system bring-up and testing.
In late 2021, I taught myself Qt within C++ and made a few test projects. One of the projects was a running planner made in a single day. The goal was to make a desktop application that could suggest mileage and workouts for a runner. The project is on Github.
In 2021 for my Fundamentals of Computer Science class, I wrote a word processor in the programming language Racket. This was a partner project with Jeffrey Pan.
In 2020, I made a prototype training planner in Python using the Kivy library. I only designed it as a prototype to test my Python skills.