← Live feed

CTO / Lead Engineer for K9 Genius (Flutter app + Next.js learning platform, NestJS on Google Cloud)

Budget
$10.0 - $15.0
Contract
HOURLY / FULL_TIME
Client
South Africa · ★ 4.87 (4)
Live feed
Upwork

nest.js, dart, google-cloud-platform, api

Preferred qualifications

  • Experience: Expert
K9 Genius builds dog training products. We need a technical lead to take 2 products from working prototypes to live releases: K9 Genius, a consumer dog training app for iOS and Android, built in Flutter. K9 Design, a certification and learning platform for dog trainers, built as a Next.js web app. Both run on one backend: NestJS, PostgreSQL with Prisma, Firebase Auth and Storage, deployed to Google Cloud Run through GitHub Actions. There’s also an internal admin panel built in Next.js with Refine. Where the build is today Most screens in the mobile app and the web app are built and tested. They currently run on mock data. The backend and admin panel are connected. Admin login, users, dogs, breeds and onboarding options work end to end. Mobile and web aren’t connected to the backend yet. That includes login, onboarding, training, the shop and subscriptions. Only development environments exist. There’s no staging, no production, and no infrastructure as code. The Android app still has a placeholder app ID and debug signing. A full technical handover document is ready for whoever takes this role. The team you’ll lead 3 Flutter developers, 1 React/Next.js developer, 1 NestJS developer and 1 QA engineer. A design team of 4 to 5, plus a design lead. 2 product/project managers joining now, one for K9 Genius and one for K9 Design. They own the backlog, ticket writing and delivery dates. You own how it gets built. Most of the team is in Indonesia (UTC+7). The founder is in South Africa (UTC+2). What you’ll own Architecture and technical decisions across the app, the web platform, the admin panel and the API. Turning approved designs and product tickets into technical tasks and estimates, together with the product managers. Reviewing and merging every pull request, and holding the team to agreed coding standards. Setting up staging and production on Google Cloud, with releases you can roll back. Connecting mobile and web to the backend, starting with login and onboarding. Releasing the app to the App Store and Google Play, including signing, bundle IDs and store compliance. Payments and subscriptions with Stripe, Apple and Google. Security. All code, cloud projects and accounts stay in company-owned accounts. Secrets live in Secret Manager or GitHub Secrets, never in the repo or in chat. Hiring and onboarding developers when we need more capacity. Your first 30 days Take over the handover: get admin access to GitHub, Google Cloud, Firebase, Apple and Google Play, and confirm every account belongs to the company. Change any password or key that has ever been committed to a repo or shared in chat, and clean those values out of the repositories. Set up staging and production, with database migrations as part of the release process. Get login and onboarding working end to end on mobile and web. Agree a release plan for both products with the product managers, with dates you’re willing to commit to. Must have At least 5 years building production apps, and at least 2 years leading a team of 4 or more developers. Hands-on Flutter and TypeScript (NestJS and Next.js). You can review a PR in either language. Google Cloud (Cloud Run, Secret Manager, Artifact Registry) and Firebase Auth and Storage. PostgreSQL and Prisma, including migrations on a live database. At least 1 app shipped to both the App Store and Google Play. Stripe, plus in-app subscriptions for Apple and Google. Clear written English. We work in Slack and expect a short written update every day. Nice to have Learning platforms, video content or gamified apps. Using AI coding tools well, with the judgement to review what they produce. Experience taking over a codebase someone else started. Hours and how we work 30 to 40 hours a week, committed and consistent. We’ll agree a fixed weekly minimum before you start. At least 3 hours a day of overlap with UTC+7. Time is tracked live with the Upwork desktop app. Manual time needs approval in advance. If your availability changes, tell us that week. This is a long-term role. We expect to work together for at least 12 months. To apply, answer these 5 questions Describe the largest Flutter app you’ve taken to both app stores. What was your role, and how many developers did you lead? You inherit a project where the UI is built on mock data and only the admin panel talks to the API. What do you do in your first 2 weeks? How do you set up staging and production on Cloud Run, including secrets and database migrations? How many hours a week can you commit for the next 6 months, and what are your working hours in UTC? What’s your hourly rate, and is any of your time already committed to other long-term clients?
Open job

AI proposal draft

Generate a short cover letter to copy into the offer. Says you are interested and ready to work.

Sign in to generate an AI proposal draft.

Log in