Real work across EV systems, IoT, solar energy, server infrastructure, and software. Skills tied to actual jobs, labs, and builds. Click any project or skill card to expand full details.
🔧 Main Projects
🏎️
Add photo
EV Go-Kart Fleet Maintenance System
RPM Raceway · Work Project · Feb 2025–Present
● Live
Summary
Hands-on EV systems work maintaining a fleet of 60+ electric go-karts at RPM Raceway. Day-to-day responsibilities include battery pack diagnostics, electrical fault isolation, drivetrain servicing, and developing a consistent pre/post-session inspection process.
EV Battery SystemsFault DiagnosisElectrical WiringDrivetrainBMSPreventive Maintenance
Full Details
Fleet Scale
60+ electric karts, 8–12 operational sessions daily. Each kart runs multiple back-to-back sessions — any downtime directly impacts revenue, so turnaround speed and accuracy matter.
Battery Systems
Cell voltage monitoring, charge cycle tracking, capacity degradation assessment, and connector/terminal maintenance on multi-cell lithium packs. Identify and swap degraded packs before they fail mid-session.
Fault Diagnosis
Electrical fault isolation across motor controllers, wiring harnesses, and battery management systems. Use multimeters, load testers, and visual inspection to diagnose under time pressure.
Real-time IoT energy monitor built on an ESP32 DEVKITV1. The PZEM-004T v3.0 measures AC voltage, current, watts, and cumulative kWh over UART. A 20×4 I2C LCD refreshes every 500 ms, a DS1307 RTC timestamps all readings to a microSD card, and the ESP32 pushes data to ThingSpeak over WiFi every 15 seconds. Test results with a 60 W load: 118.3 V, 0.48 A, 56.7 W — all within 5%. Total build cost: $86.41.
Most home energy monitors cost $80–$299+ (like the Sense) and still require subscriptions. Goal: a sub-$90 open-source build delivering real AC readings — voltage, current, watts, and kWh — with cloud logging and no recurring fees.
What I Built
ESP32 monitor using PZEM-004T v3.0 over UART, CT clamp for non-invasive current sensing, 20×4 I2C LCD at 500 ms refresh, DS1307 RTC for timestamps, microSD for local CSV logging, and ThingSpeak cloud push every 15 seconds over WiFi.
Issues I Solved
Fried an ESP32 by connecting the 5V ACS712 output directly to a 3.3V ADC pin — rebuilt with an inline fuse. CT clamp was on the neutral wire (reading 0A) — moved to live wire. LCD showed nothing — found a missing I2C jumper wire.
Results
60W test load: 118.3V · 0.48A · 56.7W — all within 5% of expected. LCD: 500ms refresh. ThingSpeak: 15s update. Total cost: $86.41. Build time: 88 hrs vs 57 planned — extra from troubleshooting the fried board.
Five register-level 8051 Assembly programs written for CTEC 350 — Microcontroller Based Systems. Work covers timer modes, interrupt-driven routines, keypad scanning, 7-segment display multiplexing, and look-up table implementations. Final project: a 4-digit safe keypad system with combo lock logic, multiplexed display, and ISR-driven scanning.
A 4-digit combination lock using a 4×4 matrix keypad and 4-digit multiplexed 7-segment display. Timer 0 Mode 1 ISR drives the display multiplex at ~1 ms per digit. The keypad scanner reads rows/columns on P1 and maps presses through a look-up table. When digits 3-5-7-9 are entered in sequence, the display flashes OPEn. The * key clears entry at any time.
16-bit timer (Mode 1) generates a 200-cycle delay between counts. Counter starts at 15 and counts down to 0 on Port 1 connected to a 7-segment display. Values translated through a look-up table at address 300H for 7-seg encoding.
Same countdown logic but using Timer 1 in Mode 2 (8-bit auto-reload). Reload value stored in TH1 for automatic restart on overflow — no software reload needed between counts. Demonstrates the difference between manual 16-bit and auto-reload timer modes.
Timer 1 Mode 28-bit Auto-ReloadTH1 Reload
Project 3
Binary Countdown Timer with Interrupt
Interrupt-driven countdown using Timer 0 ISR (ORG 000BH). IE register set to 82H to enable Timer 0 interrupt globally. Counter display updates in the main loop while the ISR handles timing — demonstrates the event-driven interrupt model versus polling.
Timer ISRIE RegisterInterrupt VectorsEvent-Driven
Project 4
Additional Assembly Project (Project 3)
Further register-level 8051 programming covering PSW flag manipulation, conditional branching, and additional I/O port interfacing techniques developed throughout the CTEC 350 course.
Quick Python script to log cell voltages from a CSV export, flag cells below threshold, and output a plain-text service report. Built to speed up pre-session battery checks at RPM.
Scans a local subnet with socket pings, pulls hostnames via nslookup, and prints a tidy table of active devices. Used it during lab setups at NYIT to confirm switch ports before imaging.
Random-delay LED lights up, user presses a button — reaction time prints to Serial Monitor in ms. Built as a warm-up project learning interrupt handling and millis() timing in embedded C++.
Script that takes system size (kW), avg daily sun hours, and local utility rate — outputs estimated annual production and savings. Used to sanity-check Aurora Solar reports before client delivery.
Single-page browser app with a step-by-step checklist for assembling and configuring a PC — POST test, driver installs, network join. Keeps a completion log saved to localStorage. Used for client builds.
ESP32 pulls CPU load and temperature from a local PC via a tiny Python socket server, displays live stats on a 128×64 OLED. Born from wanting a physical readout on my desk during lab sessions.
Four distinct portfolio design concepts built from scratch — Editorial Amber, Plumeria Pink, Tropical Pill Nav, and Coastal Turtle. Each has its own color system, typography, canvas animation, and layout.
Qualifying data, 3-driver telemetry overlays, sector comparisons, standings, and live 2026 timing via OpenF1 API. Currently being reworked — FastF1 Python backend, real lap-by-lap telemetry, two-column desktop layout.
50+ custom PC builds and hardware repairs for private clients and institutional environments.
Freelance ITNYIT ITBOCES
50+ custom builds and repairs for private clients since 2019. Hardware support at NYIT and BOCES.
📍 Where I Used This
Freelance IT — private clients since 2019 NYIT IT BOCES
🔧 What I Did
Component selection, assembly, BIOS configuration, OS install, post-build testing, and hardware troubleshooting.
PC AssemblyBIOS ConfigWindows InstallComponent SourcingHardware RepairPOST Diagnostics
Active Directory / Windows Server
User account management, group policy, domain joining, file shares, and server administration.
NYIT ITBOCES
Network Diagnostics
Wireshark, ping, traceroute, nslookup — troubleshooting connectivity issues across labs and client setups.
NYIT ITBOCESFreelance IT
Remote IT Support
Strong
Remote desktop and phone-guided troubleshooting for private clients since 2019.
Freelance ITNYIT IT
Remote IT support for private clients since 2019 and remote faculty support at NYIT.
📍 Where I Used This
Freelance IT — clients since 2019 NYIT IT — faculty support
🔧 What I Did
Remote desktop sessions, phone-guided troubleshooting, diagnosing hardware/software/network issues remotely. Built repeat client base through clear communication and documented fixes.
Systematic electrical fault isolation across EV battery systems, campus IT hardware, and client machines.
RPM RacewayNYIT ITFreelance IT
Fault diagnosis across EV systems, campus IT hardware, and private client machines.
📍 Where I Used This
RPM Raceway — EV systems daily NYIT IT — campus hardware Freelance IT — client machines
🔧 What I Did
Voltage testing, connector checks, motor controller faults, POST failures, network connectivity, software conflicts — all diagnosed systematically under time pressure.