Case study
Badilk
A phone spare-parts compatibility finder for the Algerian and wider Arab market.
Co-Founder & CTO · Live on Android & iOS
- phone models in the catalogue
- 2,500+
- compatibility records
- 36,000+
Problem
In the spare-parts market it is hard to know whether a given part is actually compatible with a given phone. Buyers and repair shops rely on guesswork, and mistakes cost money.
Solution
A comprehensive compatibility search platform backed by an automated data discovery engine that keeps the catalogue current without manual entry.
My role
As Co-Founder & CTO I own the full product stack: Flutter apps, .NET 8 APIs, the data discovery engine, Ops dashboard and CI/CD on VPS.
Hardest problem solved
Keeping a live spare-parts catalogue accurate without manual entry — a discovery engine with rate limiting, proxy pool, circuit breaker and incremental discovery so search stays fresh under real traffic.
Tech
- .NET 8 / ASP.NET Core backend built on Clean Architecture
- Data discovery engine with 6 components: rate limiter, proxy pool, header randomization, caching, incremental discovery, circuit breaker
- Optimized search through PostgreSQL GIN trigram indexes
- Redis, HybridCache, Play Integrity API, OneSignal, MaxMind GeoLite2, JWT revocation
- Full CI/CD with GitHub Actions on a Vultr VPS behind Nginx + Let's Encrypt
Flutter.NET 8PostgreSQLRedisNginxGitHub Actions
Result
- Received an innovation certificate from the Algerian government
- Product family: the official app, an internal Studio app for phone data, the Badilk Ops dashboard (Next.js + .NET Core / PostgreSQL) and the official website