incoming SIS engineering intern @ Schneider Electric

Maaz Ahmed.
engineer & builder.

i design circuit boards, write firmware, and build full-stack software. ece honors & mathematics at ut austin — working at the intersection of hardware, embedded systems, and ai.

7+
projects shipped
2-layer PCBs
fabricated & tested
~20k
lines of C written
MCU

about me

ece honors & mathematics student at the university of texas at austin. i'm into full-stack development, embedded programming, and hardware design. i build everything from custom PCBs and buck converters to memory allocators and device drivers in ARM assembly. this spring I interned at makistry, an ai-powered CAD startup, and heading to Schneider Electric this summer as a Triconex SIS engineering intern. in my free time i create things that bridge the gap between hardware and software.
C
c
C++
c++
Java
java
Py
python
TS
typescript
JS
javascript
ARM
arm assembly
react
Node
node.js
PG
postgresql
kicad
PCB
pcb design
SPI
spi / uart / i2c
git
Linux
linux
soldering
SQL
sql

where i've worked

upcoming · summer 2026
Triconex SIS Engineering Intern
Schneider Electric
Houston, TX · Safety Instrumented Systems · Summer 2026
Joining Schneider Electric's Triconex team to work on Safety Instrumented Systems — the hardware and software protecting industrial facilities worldwide. Triconex controllers run triple modular redundancy (TMR) architecture to hit SIL 3 safety integrity levels, used in oil & gas, nuclear, and chemical plants. I'll be applying my embedded systems and firmware background in a high-reliability, safety-critical industrial context.
Safety Systems TMR Architecture SIL 3 Industrial Control Embedded Firmware
CPU 1 CPU 2 CPU 3 VOTER 2-of-3 OUT SIL 3 — TMR
Software Engineering Intern
Makistry
Austin, TX · AI-Powered CAD Startup · Spring 2026
Worked at Makistry — an AI-powered CAD platform that generates 3D models from text prompts. Contributed to the product at the intersection of AI, computer graphics, and engineering design tools. Built features across a WebAssembly/C++/TypeScript pipeline, pushing the boundary of how physical products are designed and prototyped.
WebAssemblyC++TypeScriptAI/MLCAD3D Modeling
"generate a bracket mount..."

things i've built

STM32 G431 HVD230 PCB-01 STM32 G431 HVD230 PCB-02 CAN_H CAN_L 120 120 1Mbps · 120Ω · CAN 2.0B Dual-Node CAN Bus — In Progress PCB-02

Dual-Node CAN Bus Wheel Speed System

Two custom PCBs communicating over CAN bus — wheel speed sensing with register-level firmware and no HAL abstraction. Full design loop: schematic, layout, JLCPCB fab.

MCU STM32G431 × 2, SN65HVD230 transceivers
Bus CAN 2.0B @ 1Mbps, 120Ω termination
FW Register-level, no HAL, KiCad 8
Fab JLCPCB 2-layer, ~$150–180 budget
STM32CAN busKiCad 8No-HALJLCPCBFirmware
in progress · summer 2026
MSPM0 Custom 2-Layer Board — JLCPCB Fabricated

Embedded Game System PCB

Custom two-layer PCB in KiCad for a handheld game system on TI MSPM0G3507. Star power/ground routing with 4-mil trace clearance, fabricated by JLCPCB.

MCU TI MSPM0G3507 @ 32MHz ARM Cortex-M0+
Display SPI LCD via bit-banged protocol, 8MHz SCLK
Audio 5-bit R-2R DAC ladder → 11kHz sample rate
Comms IR transmit/receive for 2-player wireless link
KiCadPCBJLCPCBSPIUARTIRDAC
view project →
V_sw V_out NMOS + Gate Driver 10–16V → 5V ηpk ≈ 87% 200kHz PWM • synchronous topology

DC–DC Buck Converter

PWM-controlled step-down converter built and tested from scratch. Measured peak efficiency ~87% under resistive load with op-amp high-side current sensing.

Topology Synchronous buck, 200kHz switching freq
Power 10–16V → 5V regulated @ up to 10W
Switch NMOS + bootstrap gate driver IC
Sense Op-amp high-side current sensing + LC filter
KiCadMOSFETsSolderingOscilloscopePWM
view project →
network device? display issue? USB device? Reboot router flickering? Re-seat cable Restart PC Update GPU Restart PC NO YES

Tech Support Diagnosis Tool

Interactive yes/no diagnostic tree that learns at runtime — teaches itself new problems without restarting. Built entirely in C with no stdlib heap tricks.

DS Binary tree, dynamic stacks, linked-list queue, hash table
Algo BFS traversal + LCA for shortest diagnostic path
Persist Binary BFS serialization to .dat file (two-pass load)
Extras Full undo/redo, ncurses tree visualizer, valgrind clean
CBinary TreeBFSHash TableUndo/Redoncurses
view project →
SysTick @ 11kHz • 5-bit Binary DAC

Digital Piano with DAC

5-bit binary-weighted R-2R DAC generating audio via SysTick ISR at exactly 11.025kHz. Foreground/background multithreaded architecture with precomputed wavetable.

DAC 5-bit R-2R resistor ladder, GPIO bit-banged
ISR SysTick at 11kHz, sine wavetable per note
Arch Foreground polling + background ISR multithreading
CSysTick ISRR-2R DACMultithreading
view project →
SPI Device Driver — bit-banged pixel • line • text • fixed-point MOSI SCK CS

ST7735R LCD Driver

Full SPI device driver for 160×128 color LCD — raw protocol to a graphics API. Fixed-point decimal rendering written in ARM Thumb-2 assembly for speed.

Protocol Bit-banged SPI, busy-wait sync, CS/DC control
Graphics drawPixel, drawLine, fillRect, printString
ASM Fixed-point → ASCII in ARM Thumb-2, no printf
CARM AssemblySPIDriversFixed-Point
view project →
STOP 3s WARN 1.5s GO 3s WALK 2s

Traffic Light FSM

4-state finite state machine for a traffic intersection with pedestrian crossing. All logic encoded in a struct array — zero if/switch in the state machine loop.

Pattern Moore FSM, table-driven, data not code
Timing SysTick-based delays per-state (0.5s–5s)
IO GPIO: 6 LEDs + 2 pedestrian button inputs
CFSMGPIOSysTickMSPM0G3507
view project →
START ARMORY MONSTER LOOT BOSS HP XP > go north You enter the Armory. > pickup sword Picked up Iron Sword! Character ├─ Player └─ Monster

Dungeon Crawler RPG

Text-based dungeon crawler in C++ with full OOP — class hierarchies, polymorphism, STL containers, and valgrind-clean memory management.

OOP Character → Player / Monster, Item → Weapon / Armor / Consumable
STL vector inventory, map room connections, string commands
Memory new/delete chains, destructor ownership, valgrind clean
Gameplay combat, loot, XP/leveling, multi-room map navigation
C++OOPPolymorphismSTLMemory Mgmt
view project →
0x0000 0xFFFF ALLOC hdr+payload FREE ALLOC FREE FREE ALLOC COALESCE MERGED explicit free list • first-fit • boundary tags Memory Pool Allocator

Memory Pool Allocator

Custom malloc/free with explicit free list, first-fit placement, and immediate boundary-tag coalescing. Fixed-size pool, zero stdlib dependency.

Strategy First-fit with explicit doubly-linked free list
Coalesce Boundary tags (header+footer) for O(1) merge
Overhead 8-byte header per block, 4-byte min alignment
CMemory MgmtPointersCoalescing
view project →

let's connect.

heading to Schneider Electric this summer as a Triconex SIS engineering intern. always down to talk embedded systems, hardware design, and what's next.