← All posts

Engineering · FinTech

Building Banking Software: Lessons from the Trenches

Mihajlo Petrović3 min read

Working in FinTech has taught me things no tutorial ever could. Here are my honest lessons from building software that handles real people's money.

Building software for a bank is different from building a startup app. The stakes are higher, the processes are stricter, and the users are less forgiving. After years of doing it at Raiffeisen Bank, here are the lessons that stuck with me.


1. Correctness Beats Speed

In most software, a bug is an inconvenience. In banking, a bug can mean someone's account gets debited twice, or a loan application gets stuck in limbo. Correctness is non-negotiable.

This shaped how I write code. I now default to:

  • Explicit error handling over silent failures
  • Defensive coding for edge cases
  • Thorough logging so issues can be traced

2. Process Automation is Underrated

At Raiffeisen, we use Camunda 7 to model and automate complex business processes — things like customer onboarding flows, document verification, and approval chains.

Before this job, I thought BPMN (Business Process Model and Notation) was just for enterprise architects with too much time. Now I use it to:

  • Make complex workflows visible to non-technical stakeholders
  • Build process logic that can be changed without code deployments
  • Test individual steps in isolation

If you work on anything with multi-step workflows, look into process automation tools.


3. UX in Forms is Harder Than It Looks

Digital onboarding means forms. Lots of forms. And bad forms cost banks customers.

Some things I've learned:

  • Inline validation (validate as you type, not on submit) reduces frustration significantly
  • Progress indicators matter — users need to know how far along they are
  • Error messages should tell the user what to do, not just what went wrong
  • Mobile responsiveness in forms is not optional

4. International Teams are a Superpower

I've worked with people from multiple countries on the same product. Initially, communication overhead felt like a cost. Over time, I realized it's an investment.

Different perspectives catch different bugs. Different cultures have different expectations for UX. The product got better because of the diversity, not despite it.


5. Documentation is a Gift to Your Future Self

In a regulated industry, documentation isn't optional — it's a compliance requirement. But beyond compliance, good documentation is what lets a new team member contribute in their first week instead of their first month.

I now document:

  • Why a decision was made (not just what was decided)
  • Known limitations and workarounds
  • Business context behind technical requirements

Final Thought

Building banking software humbled me as an engineer. It taught me that the hardest part of software isn't the code — it's understanding the problem deeply enough to solve it correctly.

Those lessons apply everywhere, not just in FinTech.

  • #fintech
  • #banking
  • #enterprise
  • #software engineering

Written by

Mihajlo Petrović

Software engineer in Belgrade. Builds his own products and the AI automations that keep them running.

Have a task that repeats every week?

Tell me about it. If it can be automated well, I will show you how. If it cannot, I will say that too.

Tell me what to automate