Deal Finder | Lead Developer

Christopher Glantschnig

Fullstack Engineer
Software Architect
Web Developer
Angular
Elasticsearch
Spring Boot

The deal finder application is all about finding promotions and leaflets which are valid nearby your current location.

The system consists of a web application, a mobile app, a CMS, an API and an dedicated job to handle the rapid sitemap changes in the background.

My responsibility was to lead the development and I mostly worked on the CMS, API and everything around the infrastructure. I made sure to advice the customer for certain features and made sure that the customers ideas are all doable and cost effective.

This project taught me a lot about Infrastructure, as it is deployed on a Kubernetes Cluster on the Azure Cloud. I learned how to deal with Api Management, proper storage options and much more. Additionally I also got used to Elasticsearch and writing complex queries in it.

The Api is based on Java Spring Boot (2.x) and has over 100 different Endpoints.

The CMS is a custom solution made with Angular and contains many sophisticated components for a rich user experience.

This project had a 2 main challenges along the way:

  1. performance of endpoints
  2. SEO

Performance

Initially we tried to just write the endpoints directly writing SQL queries and observe the performance using stress / load tests. As the results have not been satisfied we first tried to optimize the performance using general database optimization strategies like indexing and other improvements suggested my analyzing the queries.

But this lead to a dead end and would only bring small improvements. So at the end we had to switch over to Elasticsearch to get way faster filtering of already pre-generated results. This lead to great results.

Another way we archived better performance is to use location based caching in a simple way as seen in the picture below.



SEO

As the application is heavy reliant on random traffic from the internet, we needed to optimize the website for SEO. Beside the usual steps to make your website better for SEO (h1 tag, proper title & description, semantic web, ...) we also had to take care of creating a better sitemap.xml file dynamically. This challenge was hard because of the limited validity of promotions / leaflets and the amount of data. Every few hours the sitemap could potentially change its content. From a background job that runs initially for 15min, we could optimize it through a few tricks to a couple of seconds.



Partner With Christopher
View Services

More Projects by Christopher