Solution
CHI Software’s team joined an ongoing project with several core tasks:
Optimization: Initially, our project involved enhancing the flow of budget reallocation recommendations and setting alerts. This encompassed:
– Refactoring the recommendations and alerts services from Scala to Python.
– Updating the user interface (UI) to provide a better user experience (UX), incorporating helpful features and charts.
– Adding the capability to customize preferred budget reallocation characteristics.
– Implementing an email notifications system.
– Creating comprehensive data visualizations to support the prominence of recommendations.
– Budget optimization involves giving users suggestions for reallocating their budget, considering historical ROI and campaign performance metrics.
Monitoring: Besides the core tasks, a side project related to monitoring emerged. Our team led this project, conducting market research and investigating monitoring possibilities.
– Collaborating with the CTO, we identified the need for two separate monitoring systems:
– One for clients.
– One for internal use.
– We drafted requirements for both, and the implementation was carried out without our direct involvement.
Insights: We then proceeded to create predefined dashboards for all users. One of these dashboards focused on comparing campaign and media plan goals with actual results, while the other compared recommendation forecasts to actual metric results.
Recommendation system: A recommender system has been deployed, utilizing advanced algorithms to deliver personalized recommendations to users. It uses provided customer data and preferences to recommend personalized marketing campaign strategies and budget optimization tailored to individual needs and preferences.
In terms of technology stack:
1. Backend development predominantly utilized Python to support asynchronous programming, ease of use, and suitable libraries for developing domain-driven applications.
2. Frontend development involved various JavaScript frameworks, with React.js being the primary choice.
3. Deployment was managed using Kubernetes and hosted on AWS. Our DevOps team configured Jenkins for automated building, code testing, and deployment to multiple sandbox environments, with each team having at least three sandboxes for testing.
4. We relied on Postgres for data storage, but specific data processing tasks required columnar databases like ClickHouse and NoSQL databases like MongoDB.
5. Some services communicated through Kafka, while others used plain HTTP requests.
6. The architecture was designed to focus on microservices and event-driven principles to ensure a clean, bug-free structure with high performance and scalability. We developed four services, including integrations with ad servers like CM360, Adform, Sizmek, and Appsflyer, to enable the adtech platform‘s trafficking feature.
Our technology stack
- Python
- Scala
- Java
- JS React
- Typescript
- Recharts library
- AWS
- Apache Kafka
- DataDog (with APM)
- Scikit-Learn
Key achievements delivered
We contributed to the development of a comprehensive ADTECH analytical system that delivered significant value to our client:
01
Accelerated Efficiency: Our work resulted in a 30% increase in the client's operational speed.
02
Enhanced Campaign Planning: We improved the quality of campaign planning, ensuring more effective and precise strategies.
03
Competitive Advantage: The SaaS platform gained a robust 'trafficking' feature, setting it apart from competitors and attracting new clients.
04
Increased ROI: Our efforts led to a remarkable 10 to 20% boost in return on investment (ROI) for our client.