31 Jul
|
Pine Labs
|
Bengaluru
31 Jul
Pine Labs
Bengaluru
Frontend Technical Lead ( Flutter)
Location: Bangalore
Experience: 7+ Years Why this exists
Fave is a UPI app built around homes, not individuals. Flatmates splitting rent and groceries. Dual-income couples managing a household together. Families paying the cook, the maid, the driver. The everyday money that moves between the people you live with — finally in one place.
Millions of people will open this app on iOS and Android to move real money. Every frame that stutters, every state that goes stale, every payment screen that hesitates — they feel it. The architecture is what decides whether they keep trusting it. That’s the job. The role
You’ll inherit a mature codebase — and the reasons it looks the way it does.
This isn’t greenfield. You’re taking over a real app with established patterns: Bloc and Cubit with custom extensions, algebraic data types, a generated API client, an embedded payments SDK. Your first job is to understand why those patterns exist.
Your ongoing job is to know when they should change — and to be the person who makes that call and owns the outcome.
You’ll lead a team of three. There’s no architecture committee to hide behind and no one else to own the hard decisions. Most weeks, you lead by writing code — the features, the bug fixes, and the payment-flow edge cases nobody else wants to touch.
You’re also the person leadership asks what’s feasible, what it costs, and what we’d be trading away — and that answer changes what we decide to build. What you’ll spend time on:
Owning the architecture end-to-end — state management, module boundaries, navigation, the data layer, and how features are structured as the codebase grows.
Turning ambiguity into a plan — partnering with design, product, and backend to weigh tradeoffs and say what’s feasible, what it costs, and what we’d trade away.
Owning the hard parts of a payments app — asynchronous transaction state, third-party payment SDKs, and a real mobile security surface (device attestation, certificate pinning, app hardening), and making them fail gracefully.
Owning the developer experience — CI/CD, build and release tooling, testing infrastructure, linting and static analysis, code generation, local dev setup; the three of you move as fast as the tooling lets you.
Going all the way down — when something is slow or janky, opening the profiler, reading the rendered layer tree, checking what the platform channel is really doing, and fixing the cause, not the symptom.
Setting the standard — raising the level of Flutter and Dart craft through code review, technical design docs, and mentoring the two engineers around you. Who we’re looking for
We want judgment. Not a framework preference.
Anyone can pick a state-management library. What’s rare is knowing when a pattern is worth enforcing and when it’s costing more than it gives — and having lived with that call on a codebase that outlived you.
Bloc, Cubit, streams, build_runner — whatever the codebase needs. We care about the decisions you make with them.
We're looking for someone with:
6+ years shipping mobile apps, with real production Flutter and Dart experience — you’ve maintained an app, not just built one.
Deep command of Bloc and Cubit — async patterns and streams, and opinions about when each is the right tool and where the pattern starts to cost more than it gives.
Comfort at the native layer — platform channels, the iOS and Android build systems, App Store and Play Store releases; a plus if you’ve touched device attestation, certificate pinning, or app shielding.
A need to know how things actually work — you open the profiler, read the layer tree, and find the real cause instead of accepting the abstraction’s answer or the fix that just ships under time pressure.
Payments or fintech instinct — async transaction lifecycles, callbacks, idempotency, and reconciliation edge cases; or you’ll ramp on them fast.
Already using AI in your daily workflow — Claude, Cursor, Copilot for code, log analysis, and internal tooling; you’re faster because of it.
Clear written communication — much of leading is writing things down: the design doc, the decision, the reasoning behind it.
The judgment to know when a pattern is worth enforcing and when it’s worth breaking.
Bonus: You’ve worked at a UPI app, a payments app, or another fintech. You’ve owned a release pipeline end-to-end (GitLab CI, Codemagic, Fastlane), triaged native crash reports, or worked with code generation in a large Flutter codebase. You’ve led a small team where there was no one else to own the call. Our stack
What you’ll be working in — and have a real say in changing.
Framework — Flutter, targeting iOS and Android → from one codebase
State management — Bloc and Cubit, with custom extensions
Data layer — HTTP REST with websocket streaming, over a generated OpenAPI client
Payments — an embedded third-party payments SDK
Pipelines — GitLab CI and Codemagic
Code style — algebraic data types throughout: errors as values, sealed classes for deterministic state Why you shouldn’t join
We want someone who moves quick and gets it right. We won’t pick one.
That’s the hardest thing about this role. It’s a team of three on a payments app — you ship fast, and there’s no separate architecture team to catch you. But this is money.
An abstraction you rushed, a state bug you shipped, a pattern you enforced too early — none of it stays theoretical. It shows up in someone’s bank balance.
If you want to design in isolation and hand specs down, you’ll be frustrated: most of your week is writing the code. If you want to only ship features and never own the foundation, you’ll be frustrated too.
The people who thrive here are the ones who can hold both — move fast and still control the details users feel.
📌 Lead Frontend Engineer (Bengaluru)
🏢 Pine Labs
📍 Bengaluru