What is CentralApp
Websites are crucial for businesses—helping them get chosen, and bought from online. Yet for many small businesses, websites become a burden. They launch with high hopes, agonizing over every little detail, aiming for perfection. But soon after launch... nothing. The website sits untouched, slowly becoming outdated, broken, and buried by search engines, eventually joining the ranks of the "living dead" websites in the vast online cemetery
To fix this issue, CentralApp is breaking away from template first system and create a new way to create website which blends a headless CMS (with plenty business modules pre-created) and branding engine with millions of possibilities.
Our solution is currently used by thousands of businesses across Europe, mostly in France, Belgium, Italy & Spain.
In addition to our website product, we offer a suite of tools designed to enhance your impact: an Integration Marketplace, Basic Reservation Systems, Client inbox & clients list, Local SEO with Listing Management, an Instagram Wall, and a Review Wall.
How does it work on the backend?
CentralApp is a large distributed backend system written in Haskell.
It has multiple services, each in charge of specific functionality. We chose Haskell since it is very conducive to building robust large systems with good performance within small teams.
The entire backend system is a monorepo with shared types and Generic based (de)serialisation derivations. Services are agnostic of each other and communicate either during a request flow (our own API gateway) or via message passing.
We use:
- Postgres (RDS) & Opaleye for storage
- Redis (Elasticache) & Hedis for caching
- Servant for APIs
- Optics
- etc.
The system is deployed on AWS using docker images built with Nix. The images are deployed on AWS ECS (Fargate).
Additionally, we use Nix for developer tooling and builds.
Requirements
- At least 4-5 years of experience with Haskell, or with functional programming in an industrial setting.
- Strong fundamentals with *nix like systems.
- Ability to work with the frontend team and discuss/document/explain the API design.
Benefits
- Be able to add features and maintain on a complex problem in Haskell. The system has very little technical debt, so not much refactoring is needed. Most tasks are automated.
- Work in a high growth company.
- Competitive salary.