Fotovea
Fotovea created a unique platform that revolutionizes photography contests through AI-powered ranking systems, connecting photographers and art enthusiasts in a fair and engaging environment.
When Fotovea approached us in the early stages of development, they needed a technical partner who could:
- Implement complex AI-based ranking algorithms
- Create a scalable backend system for vote processing
- Develop an administrative panel and REST API
- Collaborate with their Switzerland-based mobile and ML teams

Technologies
A new era of photo contests
Fotovea goes beyond typical photo-sharing platforms. At its heart lies a sophisticated AI algorithm that ensures fair contest evaluation through intelligent pairwise comparisons. The platform creates an inclusive environment where photographers can share their work, receive constructive feedback, and grow their artistic skills.
What sets Fotovea apart is its commitment to maintaining a positive, supportive community where feedback is always constructive and photographers can truly focus on developing their craft.


Our development approach
We took over development of the platform at an early stage, and our team was in charge of delivering the administrative panel, a REST API for consumption by the mobile app, as well as back-end operation - especially the flow of incoming votes, ranking calculation and management based on the unique Fotovea algorithms, and assigning voting pairs to judges.
Our team worked in co-operation with a Switzerland-based team of Fotovea mobile application & machine learning developers, delivering a custom solution based on Elixir and Erlang/OTP primitives for concurrent processing and caching of votes and rankings, as well as creating an OpenAPI-based interface for the mobile app, and using Phoenix LiveView for the Web UI.

Requirement
The client sought a team of Elixir developers and consultants to help finesse the definition of the voting and ranking system and transform the logic into data structures and processes in Elixir, which had consciously been the project's technology of choice straight from the beginning.
We brainstormed the requirements with the client and helped bring them to life with a custom application written in Elixir, leveraging the language's famous concurrency capabilities and the ease of implementing complex business process using inter-process message passing.
Client’s voice
