Table of contents
Editor's note:
What does it actually mean to work as a Frontend Engineer at a fast-growing fintech company like Kora?
From the outside, fintech engineering is often associated with secure APIs, compliance requirements, and fast transaction processing. While those are certainly part of the job, they do not tell the whole story. At Kora, one thing shapes how we work more than anything else: ownership.
If you have ever wondered how frontend engineering works here - from deciding what to build, to collaborating across teams, to shipping production-ready features. This article walks through what that process looks like.
1. The Kora culture: Ownership over instructions
Kora moves quickly. There are always multiple products, features, and technical improvements happening at the same time. In many engineering teams, developers mainly work from assigned tickets - they receive requirements, implement them, and move on.
Our approach is different. Engineers are encouraged to look at the product roadmap, identify problems worth solving, and take initiative rather than waiting for tasks to be assigned.
This level of autonomy naturally comes with a high degree of responsibility. It means you are surrounded by engineers who genuinely care about writing good software and continuously improving their craft.
Rather than creating unnecessary pressure, this environment makes collaboration stronger. We regularly challenge ideas, share feedback, and help each other improve. You are always encouraged to contribute beyond your immediate task, whether that is suggesting a cleaner implementation or taking charge of a new initiative.
Investing in continuous learning
To support this mindset, Kora invests heavily in education. Engineers have unlimited access to platforms like Frontend Masters and Udemy, making it easy to keep building skills.
Crucially, learning is not limited to frontend development. If you are curious about Docker, cloud infrastructure, backend systems, or DevOps, you are encouraged to explore those areas. The goal is to help everyone develop a broader, holistic understanding of how modern software is built.
2. Our tech stack & design system
One thing I enjoy about working at Kora is that we're constantly building with modern tools. Our frontend work spans both web and mobile, so we're always thinking about creating a consistent experience across platforms.
Some of the technologies we use include:
- Turborepo for managing our monorepo and sharing code across projects.
- React and React Native (Expo) for our web applications
- React Native (Expo) for mobile applications.
- React Native for our SDKs
- Tailwind CSS alongside modular SCSS for styling.
- Vitest for unit, component testing
- Testing Library for DOM interactions testing
- Jest-axe for accessibility testing.
Building a shared design system
As the number of our applications grew, we started running into a familiar problem: the same components were being recreated across different projects. Besides the extra work, it also became harder to keep the user experience consistent.
To solve that, we built a shared design system within our monorepo.
We use Storybook to build and document components in isolation before they're used in an application. Once a component is ready, it's added to our shared UI library and published to our private GitHub Packages registry. That means any frontend project across the company can install and reuse the same components instead of building them again from scratch.
This has made it much easier to maintain a consistent look and feel across our products while also speeding up development. When a new application needs a button, modal, form component, or table, chances are we've already built and tested it.
Like any engineering team, our stack continues to evolve as our needs change. But one thing stays the same: we try to choose tools that help us build maintainable products without adding unnecessary complexity.
3. How a feature moves from idea to production
At Kora, engineering is involved long before the first line of code is written. Frontend engineers participate in early product discussions so that technical feasibility, performance implications, and user experience are factored into decisions from day one.
Once a feature is agreed upon, the Product Requirement Document (PRD) becomes the team’s primary reference. The design team then creates the user flows and high-fidelity screens. When those are finalized, the frontend and backend teams begin implementation in parallel: backend engineers work on the APIs while frontend engineers build out the client interface.
Whenever architectural or logic questions come up during development, our hierarchy is simple: we look at the designs first to understand the intended user experience, then refer back to the PRD for the core business requirements.
4. Our Git Workflow
One challenge many engineering teams face is having incomplete or unintegrated features negatively affect a shared development environment. To prevent this, we use a disciplined branching strategy that cleanly decouples UI development from live API integration.
Let us use a hypothetical Jira ticket, WRK-399, as an example of how this works in practice.
Phase 1: Building the UI in isolation
We first create a feature base branch to act as our local staging ground:
Bash
git checkout -b WRK-399-base
Next, we spin up a dedicated UI branch directly from it:
Bash
git checkout -b WRK-399-ui-work
On this branch, we build the interface using mock data while the backend APIs are still being developed. Once the UI is structurally complete, we write unit tests with Vitest and verify accessibility compliance using jest-axe.
When ready, the first pull request is opened:
WRK-399-ui-work ➔ WRK-399-base
Code reviews are a vital part of our quality gate. Typically, at least three engineers review the work: two focus purely on the code implementation and architecture, while a third pulls the branch locally to verify that the feature behaves as intended and matches the design layout pixel-for-pixel.
Phase 2: Connecting to the backend
Once the UI work has been approved and merged into the feature base branch, we spin up our second working branch:
Bash
git checkout -b WRK-399-api-work
This is where we replace our static mock data with real API calls. To keep our tests reliable and deterministic, we use Mock Service Worker (MSW). MSW intercepts network requests during automated testing, allowing us to simulate backend responses without depending on a live staging environment.
After another review cycle, this API branch is merged back into the main feature branch (WRK-399-base). Throughout this entire process, engineers are responsible for proactively updating their Jira statuses so the cross-functional team has full visibility into the state of the work.
5. Staging, QA, and shipping
Once the unified feature branch is fully approved, it is deployed to our staging environment for final validation. The QA team steps in to verify new functionality, run regression tests, and check edge cases before anything reaches a single customer.
If any bugs are uncovered, fixes go through the exact same branching and peer-review process before being redeployed to staging. Only after QA formally signs off is the feature released to production.
Sharing what we learn
Our work does not stop once a feature reaches production. Every two weeks, the frontend team gets together for a dedicated session to learn, align, and unwind.
The first part of the session is all about learning from one another. A selected Engineer presents topics they have been exploring, whether it is a tool they have found useful, an interesting architectural approach, or a specific lesson learned while working through a challenging problem. It is a straightforward way to make sure valuable insights spread across the team instead of staying with just one person.
The second half focuses on team alignment where important updates across the company, shifts in our engineering processes, or architectural decisions that affect how we build and maintain our frontend applications are being communicated. This keeps everyone on the same page and gives us the full context behind those updates.
We also make sure these sessions are not strictly business. We frequently wrap things up with a team game or another light activity. It is a great way to unwind, catch up with one another, and keep burnout at bay before we dive back into the codebase.
Final thoughts
Working as a frontend engineer at Kora means having the freedom to take true ownership while having the safety net of a highly collaborative team. You are trusted to make technical decisions, encouraged to keep learning across disciplines, and expected to contribute far beyond just writing code.
It is an environment where engineers continue to grow their careers while building fintech products that have a tangible impact.





.png)



%201.png)
%201.png)

%201.png)
%201%20(1).png)