We had a talk with Đorđe Mijailović, a Full-Stack Developer working on Business Analytics Tool for a global leader in the automotive industry.
About the project
This project started, at least for our company, back in November 2018, and I’ve been on it since day one. The project details are under NDA, but I can share that it’s about a tool for calculating the prices of car and van parts. We develop both an internal tool and an Internet-facing application meant for collaboration with an external partner of our client.
The team has changed structure over the years. We started as four full-stack software engineers from PD and one proxy PO from codecentric. Now, when the project is more in the maintenance phase, the team has been reduced to 3 software engineers. Apart from us, there are also two data engineers and the management on the client side.
Your tech stack
Most of our application is written in Java on top of Spring Boot – no surprises there. Our front end is written in Angular. Our tests were based on Testcontainers, JUnit, Mockito, and Cucumber. For data storage, we use Postgres with its JSONB capabilities alongside S3, which holds our bulk of data between processing steps.
Apps and data processing pipelines run in a Kubernetes cluster. We (still) have custom-written helm charts for that purpose, and we use ArgoCD for deployments based on GitOps principles. For code structure, we apply clean architecture described in Tom Hombert’s book “Get Your Hands Dirty on Clean Architecture.”
GitHub, Sonar, (unfortunately) Jenkins, ELK stack, Prometheus, Grafana, Harbor, Keycloak, Cert-Manager, Traefik, Minio, and Docker are some things worth mentioning too.
What do you like the most about the project?
The great thing about this project is that I had the opportunity to feel full freedom of choice regarding how to solve customer’s problems. This goes with responsibility, but responsible we were. It was not just about making technical decisions and coding, but really about being involved in discovering problems together with business and later on solving those in code and completely running the app on our own. This boosted a sense of ownership towards the product, so the motivation to work on the project was extraordinarily high.
Can you think of a moment on the project you and your team were really proud of?
During these four years, there have been many moments to be proud of, both as a team and individually, but the most important thing was that we discovered how much you can do with just 4-5 people if they are synced in ideas and goals. We’ve managed to learn a lot in many areas of our work, deliver results (measurable in money saved for the client), and have almost zero bugs along the way.
Could you tell us about some specifics related to only this project?
What I find interesting is that in this project, requirements matched team capabilities perfectly, and it made things go very smoothly both for the client and us. It’s maybe not specific to just this project, but this is the only time I have experienced a team functioning at its maximum and the benefits that go with that. I would like to feel it again in the next project because it’s a feeling you get addicted to :).