newest first
Things I've built
AI tooling from my day job at Aptean, a mobile app I released myself, and the IoT and machine learning projects from college. Open one to see what it does and what was hard.
2026
Completed
Mobile
Cross-Platform Mobile App
Solo developer
A React Native app I built and released myself on both Google Play and the App Store, using AI coding tools for most of the build and the deployment.
- React Native
- TypeScript
- JavaScript
- Google Play Console
- App Store Connect
- AI Coding Agents
Read moreShow less about Cross-Platform Mobile App
A side project I used to learn mobile properly. One React Native codebase for Android and iOS, and then the whole release path on both stores: app signing, store listings, review submission, and the differences between Google Play and App Store Connect. I used AI coding tools for a lot of the implementation and the deployment scripting. Most of what I now think about building software with AI came out of this project.
What it does
- One React Native codebase for Android and iOS
- Full release path through Google Play and App Store Connect
- App signing, store listings and review submission handled myself
- AI-assisted implementation and deployment scripting
Hard parts
- Learning two different store review and release processes from scratch
- Getting an iOS build published without an existing Apple developer setup
- Working out where AI tools genuinely help, and where reviewing the output costs more than writing the code
Team: Personal project
2026
Archived
Web
Portfolio v1 (Next.js)
Solo developer2025 to 2026
My first portfolio: a single-page Next.js site with a violet theme, built from my LinkedIn profile. It still runs on its own subdomain.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- Vercel
Read moreShow less about Portfolio v1 (Next.js)
Before this site there was a one-page portfolio in Next.js, React and TypeScript, styled with Tailwind CSS. The content came from my LinkedIn profile, and every string on the page lives in a typed content layer, so the components hold no copy of their own. The last big round of work rebuilt it in a violet theme with light and dark modes, rewrote that content layer, and did an SEO pass for search engines and AI answer engines. It stopped there, when I moved to this site to write, and it is kept online as it was.
What it does
- One page of sections, each rendered by a template (timeline, card grid, flow) from typed content files
- Violet theme in light and dark, set before first paint so there is no flash
- Animated star field that stops for reduced motion and when scrolled past
- Metadata, JSON-LD, sitemap, robots and web app manifest generated from the same content
- Content Security Policy and security headers, with analytics only when an ID is set
Hard parts
- Keeping the page, the metadata and the structured data from drifting apart, which is why all of it reads from one content layer
- Keeping a canvas animation cheap enough for phones
Team: Personal project
2025
In Production
AI & Automation
AI-Assisted Business Central Development
Developer2025 - Present
Internal R&D tooling that turns written requirements into AL test files, so I spend less time writing the same kind of test by hand.
- GPT / LLM
- Azure AI Studio
- Business Central
- AL / ATDD
- Node.js
- Python
- GitHub API
- CI/CD
Read moreShow less about AI-Assisted Business Central Development
The idea is to give an AI agent the right context, requirements and project information, and let it help with tasks such as writing code, making changes and creating tests. It is built on Azure AI Studio and GPT models. It reads user story and requirement documents, generates structured AL test files, and raises them as pull requests so they land in the normal review flow instead of sitting as a separate manual step. I then review the generated code, run the application, test the result and make the final changes before anything is deployed.
What it does
- Reads user story and requirement documents
- Generates structured AL test files
- Raises the generated tests as pull requests into the normal review flow
- Prompt templates that can be configured for domain-specific test patterns
Hard parts
- Getting reliable AL output from requirements written in plain English
- Handling vague or incomplete requirements without producing confident nonsense
- Keeping human review meaningful as the number of generated tests goes up
Team: Aptean R&D
2023
Completed
IoT & Embedded
IoT Health Monitor
IoT and full-stack developer2023 (4 months)
A wearable monitor built on ESP32 with pulse oximetry and temperature sensors, sending readings to a React dashboard over Wi-Fi.
- ESP32
- MAX30102
- DHT11
- Arduino
- React
- Node.js
- Firebase RTDB
- WebSocket
Read moreShow less about IoT Health Monitor
A final year project that collects information from sensors and shows it in a web application. An ESP32 with MAX30102 and DHT11 sensors sends heart rate, SpO2 and body temperature over Wi-Fi to a React dashboard, and Firebase Realtime Database handles storage and threshold alerts. This was the project that helped me understand how hardware, software and the cloud work together.
What it does
- Heart rate and SpO2 readings from the MAX30102
- Ambient temperature tracking with the DHT11
- ESP32 sending sensor data over Wi-Fi to a cloud backend
- React dashboard with live charts and threshold alerts
- Past readings stored in Firebase Realtime Database
Hard parts
- Getting consistent pulse oximetry readings out of the MAX30102
- Keeping the data stream quick without flooding the backend
- Designing a dashboard that stayed usable on a phone
Team: University team of four
2022
Completed
IoT & Embedded
Smart Home Automation
Solo developer2022 (3 months)
ESP8266 and ESP32 home automation that controls mains appliances through relay modules, with a web interface served straight from the microcontroller.
- ESP8266
- ESP32
- DHT11
- Relay Modules
- Arduino
- JavaScript
- HTML/CSS
Read moreShow less about Smart Home Automation
A home automation project that lets electrical devices be controlled through a web interface. It uses ESP8266 and ESP32 microcontrollers with relay modules for the appliances and a DHT11 for ambient monitoring. The web interface is served directly from the microcontroller, so everything runs on the local network with nothing in the cloud. I enjoyed this one because it connected software to something physical.
What it does
- Web interface served directly from the ESP8266 or ESP32
- Relay switching for lights, fans and appliances
- Fan speed controlled by temperature readings from the DHT11
- Control dashboard that works on a phone
- Runs entirely on the local network, with no cloud needed
Hard parts
- Switching AC mains loads safely, with proper isolation
- Serving a responsive interface from microcontroller flash with very little memory
- Mapping temperature readings to sensible fan speed steps
Team: Personal project
2021
Completed
Machine Learning
CGPA Prediction
Solo developer2021 (4 months)
A regression model that predicts student CGPA from previous academic data, deployed as a small Flask web app.
- Python
- Scikit-learn
- Pandas
- NumPy
- Matplotlib
- Flask
- HTML/CSS
Read moreShow less about CGPA Prediction
A machine learning project built to explore whether a student's academic performance could be predicted from previous academic data. It covered the full pipeline: preparing and cleaning the data, feature engineering, comparing Random Forest, Gradient Boosting and SVR, tuning the hyperparameters, then serving predictions through a Flask API with a simple frontend. It was my introduction to building a complete machine learning application rather than only experimenting with a model.
What it does
- Regression on several features using ensemble methods
- Model comparison across Random Forest, Gradient Boosting and SVR
- Charts for exploring the data and the results
- Web interface for running predictions
Hard parts
- Dealing with missing and inconsistent student records
- Getting the model to work beyond the group it was trained on
- Keeping the output understandable for non-technical staff
Team: Academic project