Road Patrol

· 259 words · 2 minute read
Photo
Photo by Dan Cook on Unsplash
Developing microservices for the Canadian Road Patrol

We developed a web application to be used, inter alia, by the canadian road patrol. Weather data from official canadian meteorology sources was ingested, normalized and made available via a responsive web application. After data ingestion and analysis, the application showed a map and alarms for road service predictions.

Two internal developers and me were responsible for one of the data ingestion parts. The source for our data was publicly available via a RabbitMQ exchange, were retrieved near real time data from the meteorology stations all over Canada. Upon receiving the message, we converted the data into our desired domain model. Afterwards, we stored the converted messages into a MongoDB database and our microservice offered RESTful endpoints for other services to access the data. Additionally, we stored the raw message from the queue in S3 for a specific period of time.

After our services worked as intended, our team disbanded and each of us helped out in other teams to help finish the project in time.

Challenges 🔗

  • Understand domain
  • Understand business use case

This was a freshly staffed project, with lots of external and internal developers mixed together with a tight deadline and, for most developers, introduced a variety of new technologies. Concepts of code quality differed greatly. My first team stood in stark contrast to my second team, were they questioned the usefulness of automated (unit) tests altogether. In the end we found a compromise and were able to finish the project in time.

My Contribution 🔗

  • Talk to stakeholders
  • Present solutions
  • Design and implement software solutions