Software meets hardware.
I build websites and marketplaces, and I build the ESP32 devices that sit next to them. Pick a window.
Software
Websites and marketplaces, from the database to the interface. Scroll through what I have built.
Five builds to start with
Scroll sideways. Hover a window to pull its layers apart.
And the rest
What it is built with
Languages
Python, C, C++, C#, Java, JavaScript, TypeScript, Ruby, Dart, HTML, CSS
Frameworks and platforms
React, Next.js, Node.js, Flutter, FastAPI, Flask, Tailwind, Prisma, PostgreSQL, Firebase, Figma
Embedded, design and dev tools
Electron, Embedded C, Arduino IDE, STM32, STM32CubeIDE, KiCad, Cisco, Git, GitHub, GitLab, Ubuntu, Vercel, Linux, OpenCV, Canva, Debian, Docker
Server administration
psutil, lspci, lm-sensors, dmidecode, lsblk, Mesa and OpenGL, Tailscale, Cloudflared tunnel, reverse proxy, SSH, APT
From a line of code to a screen
An illustration, not a recording. Scroll and the interface builds itself while the code is typed.
Let's build something that connects the world.
Available for new projects.
Hardware
Two devices, built by hand around ESP32 boards. Scroll and each one comes apart, layer by layer.
This view needs WebGL. The layer descriptions below still read in full.
MP3 Module Player Retropod
A pocket music player on an ESP32-C3 mini. A microcontroller, a speaker, a display and a battery, wired by hand.
- OLED displayThe small screen on top of the stack.
- MP3 modulePlays audio files from a microSD card.
- ESP32-C3 miniThe microcontroller, with a USB-C port.
- PerfboardEverything is wired by hand on a perfboard held up by standoffs.
- Battery and switchA flat battery and a slide switch for power.
- SpeakerWhere the music comes out.
3D model drawn from the build, not a scan.
Smartechgarden Panel Control Systems
The control panel of the smart garden. It reads the sensors, switches the pump and reports to the cloud dashboard.
- Clear lidA transparent lid with a cut-out for the display.
- 16x2 I2C LCDShows the readings at the panel.
- SensorsDHT21 for air temperature and humidity, a capacitive soil moisture sensor and a BH1750 light sensor.
- 4-channel relaySwitches the pump. The manual and automatic pump channels are never on together.
- ESP32Reads the sensors, runs the watering timers, syncs time over NTP and talks to the cloud over HTTP.
- Power and wiringThe shared power rail. Sensor dropouts after the pump fired were traced to inrush current and EMI here.
3D model drawn from the build, not a scan.
Let's build something that connects the world.
Available for new projects.