Senior Fullstack Engineer; m/f/d
Listed on 2026-07-04
-
Software Development
Backend Developer
Senior Fullstack Engineer
Freshflow — Senior Fullstack Engineer (m/f/d) | Berlin
€72 billion worth of fresh food is wasted every year in European grocery retail. Freshflow is building the AI Operating System for the Fresh Food Supply Chain — starting with ordering and inventory optimization for fresh produce departments.
The RoleYou'll work primarily on the Python backend and secondarily on the Flutter mobile app. We are a small team and you will get exposure to every part of our product. This includes ingesting data from customers, processing it, integrating our AI services, and serving it to our customers via our app or into their external systems.
What You'll Work OnBackend
- APIs:
Building and maintaining the REST APIs that serve order recommendations to the mobile app and white-label partners, handle order submissions, and those that we use internally.
- Partner integrations:
Receiving data and routing finalized orders to supplier systems via different means. Building new integrations as we onboard retail chains.
- Data delivery:
Bridging the analytical layer and the mobile app — reading computed recommendations from the warehouse, denormalizing them, and writing them to an operational store the app can sync from.
- Infrastructure:
Provisioning and managing the cloud resources these services run on (compute, databases, messaging, secrets).
Mobile App
The primary focus for this role is our backend, but we need you to be able to also contribute to our Flutter mobile app when required. Topics here could include:
- Working on the on-device recommendation adjustment engine and the sync protocol client-side.
- Client-specific adjustments to the order flow.
- Adjusting our app to make it ready for other device types (especially Android Mobile and/or MDE devices used by retail stores).
- Strong Python experience. You'll write FastAPI services, Pydantic models, async code, and background workers.
- Experience with PostgreSQL and at least one document database (Firestore, MongoDB, DynamoDB). You'll work with both daily.
- Experience with REST API design. You'll build APIs that both internal UIs and external partners consume (versioning, auth, rate limiting, documentation).
- Understanding of authentication and authorization patterns (OAuth 2.0, JWTs, role-based access control).
- Understanding of multi-tenant data isolation (row-level security, path-based isolation, scoped tokens).
- Experience with Flutter or strong willingness to work in Dart/Flutter. You don't need to be a Flutter expert, but you should be comfortable reading and contributing to a mobile codebase.
- Experience building sync protocols or offline-first mobile apps.
- Comfort moving between layers — backend one week, mobile the next, based on what needs doing.
- Experience with GCP or equivalent cloud platform.
Nice to have
- Experience with Big Query or similar columnar warehouses.
- Terraform or equivalent IaC experience.
- Familiarity with async messaging patterns (queues, pub/sub, dead-letter handling, idempotency).
- Exposure to B2B SaaS or the grocery/retail domain.
- Small team, high ownership, minimal process overhead.
- Python backend, dbt for analytical data transformation, Flutter for mobile, Airflow for orchestration.
- Everything on GCP:
Cloud Run for compute, Big Query for analytics, Firestore for operational data.
- We are a small company and you need to be comfortable in an unstructured environment.
Applications for this role are handled exclusively through our Notion application form — please do not send applications by email.
→ Apply for Senior Fullstack Engineer
Freshflow is proud to be an equal opportunity employer. We don't discriminate based on race or ethnic origin, color, language, national origin, disability, age, gender, gender identity, sex, sexual orientation, religion, beliefs, or political opinions.
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).