About Refreshi
Summary
What we do
At Refreshi, we are dedicated to reducing food waste by connecting consumers and businesses with surplus food from various sources, including restaurants and supermarkets, at discounted prices. Our mission is to ensure that good food doesn't go to waste, making meals affordable and accessible for everyone while promoting sustainability.
Why work for us
Joining Refreshi means being part of a mission-driven team focused on environmental impact and social responsibility. We offer opportunities for growth in a dynamic startup environment, where your contributions directly influence our expansion across South Africa and beyond.
Our culture
We foster a collaborative and innovative work environment that values sustainability, teamwork, and creativity. Our culture encourages open communication and a shared commitment to making a positive difference in our communities through food waste reduction.
Our engineering process
Our engineering team employs modern technologies and agile methodologies to develop robust mobile and web applications. We prioritize collaboration and continuous improvement, ensuring that every team member's input is valued in our development processes.
Application and Data
Refreshi runs a Flutter (Dart) app that ships from a single codebase to iOS, Android, and the web, using Provider for state management, GoRouter for navigation, and GetIt for dependency injection, with interactive store maps built on flutter_map/OpenStreetMap. The backend is a Node.js/TypeScript serverless stack on AWS: an AppSync GraphQL API (Apollo Server) backed by Lambda, with PostgreSQL + PostGIS on RDS for geospatial store and product data, Prisma as the ORM, and DynamoDB, S3, EventBridge, and the EventBridge Scheduler supporting event-driven order and product-schedule flows. Authentication is handled by AWS Cognito, inputs are validated with Zod, and GraphQL types are code-generated end to end across both the app and the API.
DevOps
All infrastructure is defined as code with AWS CDK in TypeScript and deployed across four environments (dev, qa, uat, prod) via GitHub Actions, while Codemagic builds and releases the mobile apps and Shorebird provides over-the-air code push to Flutter users. Developers can spin up the full stack locally with Docker, and quality is enforced with ESLint, Jest, and Flutter's analyzer and test tooling. Observability comes from Lumigo distributed tracing over AWS CloudWatch and X-Ray.
Utilities
Payments are processed through Peach Payments with tokenized card storage and a full hold/capture/refund lifecycle, including webhook-driven payment state handling. Customer engagement runs on OneSignal push notifications and WhatsApp Business API messaging, and product analytics and stability monitoring are covered by Mixpanel, Firebase Analytics, and Crashlytics. Device geolocation, secure on-device storage, and deep linking round out the mobile toolkit.
Business Tools
The team works out of GitHub with pull-request-based reviews and branch-per-environment delivery, tracks work in Azure Boards linked directly to commits, and uses Metabase dashboards for business and operational analytics. As South Africa's food-rescue marketplace — 200,000+ registered users, 700+ partner stores, and 200,000 meals saved from landfill in its first sixteen months — Refreshi pairs this stack with a product that has measurable real-world impact.
Our hiring process
Our hiring process is designed to identify passionate individuals who align with our mission. It typically includes an initial screening, technical assessments, and interviews with team members to evaluate both skills and cultural fit, ensuring we find the right candidates to join our journey.
Tech Stack
application and data













utilities




dev ops



business tool

