All projects
React · Google Maps · NodeJS

Senior Care Marketplace

2018 – 2021Commercial · React · Marketplace · Testing
My first product at 104: a two-sided marketplace where carers registered their skills and available hours, each got a profile page, and families browsed and booked them. It carried the parts a real marketplace needs — scheduling, a photo-and-timestamp clock-in, map-based discovery, and reminder emails. It was built in React. It was never replaced by the 45+ job platform — they are two different products; this one couldn't be made to pay for itself, so the company had our team build a new one. The change I'm proudest of here wasn't a feature: the team had no automated tests at all, and by the time I left, a passing test suite was a required step in every pull request.

Key features & challenges

  • Added server-side rendering to the live React site myself: a server route table, a loadData on each page, and the Redux store sent to the browser, so search engines could read its pages.
  • Built map-based discovery of nearby carers with Google Maps, including pin clustering at low zoom levels.
  • Built the grid where carers set the hours they can work, the family booking screen, and the clock-in screen, plus the failure states when a booking couldn't be taken.
  • Introduced automated testing to a team that had none: my manager raised the idea, I researched the options and led it in, wrote the first Jest and Nightwatch suites, and ran sharing sessions to teach the team to write their own.
  • Added the tests to CI, so a pull request couldn't merge if they failed.
  • Coverage was still small when I left, and I don't have numbers.

My contributions

  • Front-end work on both sides of the marketplace, and the person who brought testing into the team.
  • Preventing double bookings was handled on the back end; my part was the front-end states around it.
  • The screenshot is the product's 2019 marketing home page from the Internet Archive, not a feature I built — the map search and availability screens sat behind a login and were never archived.