Work
Personal projects with public code, and the internal systems I build at AHA Smart Homes, in the order I'd show them to you.
AI/MLProject
Ask My Papers
A learning project: a local RAG over floor-plan research papers that cites its sources and refuses to answer when the evidence is weak.
- Python
- LangChain
- Ollama
Floor plan to proposal
Floor Plan to Proposal
Replaced the customer proposal document consultants assembled by hand in Excel with one the PMT generates: a branded, room-by-room PDF (about 1.5 hours down to about 15 minutes, estimated). Then gave them an editor to place every device on the plan themselves.
- MongoDB
- PDF generation
- Canvas editing
AI/MLFloor plan to proposal · in progress
Floor Plan Intelligence
The goal: upload any floor plan and have a model find the walls, doors and windows, then place the proposal’s devices automatically. Step one is a labelled dataset; the model is still being built.
- Python
- Computer vision
- Image annotation
AI/MLProject
Reward Hacking in LunarLander
A learning project after playing LunarLander: I trained an RL agent to land the rocket, rewarded it for staying afloat, and it learned to hover instead of land. That is how I met reward hacking.
- Python
- Gymnasium
- Stable-Baselines3
Support operations
WhatsApp Support Ticket Sync
WhatsApp support tickets from Periskope flow into the project tool automatically, skipping any already imported.
- Periskope API
- MongoDB
Approvals and sales orders
Additional Items Approval Workflow
Add-ons requested on site go to the customer for email approval, then append to the sales order with a record of who approved what.
- MongoDB
- Transactional email
- PDF generation
Integrations and internal tools · in progress
Zoho Inventory Sync
Inventory data lived only in Zoho, out of reach of internal dashboards, and Zoho’s standard plan allows 2,500 API calls a day.
- Zoho Inventory API
- MongoDB
Support operations
Support Dashboard and Reports
The support team wanted to see how many tickets were raised, how many were solved and how long each took, instead of reading tickets one by one.
- Data visualisation
- PDF generation
AI/MLProject
Facial Emotion Recognition
A passion project in computer vision: a CNN that sorts face images into seven emotions, built in a team of three.
- Python
- Keras
- TensorFlow
AI/MLProject
Pneumonia Detection from Chest X-rays
A college project: a CNN that flags pneumonia in chest X-rays, built in a team of three on a public Kaggle dataset.
- Python
- TensorFlow
- Keras
Where I started
Zoho CRM Lead Dashboard
My first project at AHA, requested by the marketing head, who needed to see where leads were coming from and which ads brought them in.
- Zoho CRM API
- Supabase
Where I started
Payment Reminders
One of my early projects at AHA, and how I learned the Periskope (WhatsApp) API.
- Periskope API
Floor plan to proposal
EP Image Editor
Electrical plans often arrived as PDFs, and they did not go through properly: consultants could not pick the page or the section of the plan they needed.
- PDF rendering
- Canvas
Approvals and sales orders
GST Verification
Company GST details on forms were typed by hand and never checked.
- REST API
Integrations and internal tools
WhatsApp Project Groups
Consultants or someone from operations created each project’s WhatsApp group by hand, and it was often unclear who to add: which project manager, which coordinator.
- Periskope API
Integrations and internal tools
Website Deployment and GIS Uploads
A fellow developer who runs the company website and a BI tool found uploading to S3 and pushing changes live slow and fiddly.
- AWS S3
- Leaflet