Residence Spaces
A platform for students to find accommodation near their universities, which grew into a more general property platform for owners with many properties. I was its founding software engineer, and built the MVP in about three months while finishing university.
- Founding Software Engineer
- Dec 2024 – Feb 2025 · V2 Jul – Aug 2025
- Four for the MVP: two co-founders, a designer and me
- Team has since pivoted

Context
Residence started with a simple idea: make it easier for students to find a place to stay near their university.
Instead of students going round in person looking for somewhere available, Residence worked with the people who had properties to let, collected the details, and put the properties on the website, so anyone could find a place, book it and move in.
Problem
Finding a place to rent meant physically going from property to property. The first version was built mainly for students: it brought accommodation near universities across Africa online in one place. The second version was more general, and turned to the other side: owners with a lot of properties to manage, who needed far more than a listing.
Three months
I joined during my final year as Residence’s founding software engineer, and built the MVP in about three months while completing university.
We were a team of four for the MVP: the two co-founders, a designer and me. I was hired for engineering, but I ended up in a lot of the product discussions too, about what we were building and how the different parts would fit together.
- The product idea and direction, led by the co-founders
- The visual design, by our designer
- The payment service
- Led full-stack development of the MVP, front end and back end
- Turned the designs into a clean, responsive front end
- Authentication with Passport.js, error handling and security practices
- Rejoined in July 2025 to architect and build V2
Architecture
Search by city or near a university, view listings, keep a wishlist, book inspections and reserve rooms.
Students
Search by city or near a university, view listings, keep a wishlist, book inspections and reserve rooms.
Property owners
Businesses have their own sign-up and dashboards: several properties, their managers, reservation approvals, tenant records and stats.
React app
React and TypeScript, built with Vite and using TanStack Query for data, with separate areas for renters, each property and the business as a whole.
Express API
A TypeScript service layered into routes, controllers, services and repositories. Passport handles sign-in: email and password for renters and for businesses, Google for renters, and JWTs that carry the account’s role.
PostgreSQL
Plain SQL through a connection pool: properties, room types, prices, reservations, inspections, bookings, reviews and wishlists.
Email
One-time passwords for sign-in, and a notification to the owner when a room is reserved.
Hourly job
Runs every hour and expires reservations that were accepted more than two days ago without moving forward.
Students and property owners are separate kinds of account, each with its own sign-in, so the same API can serve both sides and check on every request which side is asking. Prices are stored per room type and per university, so the same room can be priced for the students of a particular university.


Launch night
The night before V1 launched, I stayed up all night for the first time in a long time. There were a number of things we wanted to fix, we had set ourselves a target, and we didn’t want to miss it.
I hadn’t experienced anything like it before: delivering very quickly, meeting deadlines we had set for ourselves, and working through all the uncertainty that comes with building and launching a product.
Version 2
After V1 launched, the team won a hackathon with it.
In July 2025 I rejoined the team to architect and build V2, as the product became more general and turned towards owners with many properties. The main addition was the admin dashboard and everything around it, and I wrote most of V2’s code.
- A dashboard for the owner: occupancy, rent collected, tenants, new applications, an occupancy chart and recent activity
- Properties and their units, tenants, and tenant applications to review, in sortable, searchable tables
- A step-by-step wizard for adding a property
- Sign-up by phone number, with one-time codes sent over WhatsApp
The stack stayed largely the same: React, TypeScript and Tailwind, with the front end now built in Next.js and sign-in handled by Better Auth. I also worked with the team to redesign workflows around feedback from V1’s users.


I left when my agreed time was up. I would have loved to continue, but I wanted to focus on other things. The product picked up its first users before the team pivoted to something else, almost a year after I left.
Reflection
Residence was where I learned what building a product is like, as opposed to building software: deciding what matters before a deadline, talking through how the parts fit together, and shipping before everything is certain.