Reporting tools at Nokia
Internal tools for a global sales organization.
In plain terms
A large company sells in a lot of places, and every quarter its executives need one picture of how that went. Getting to that picture meant asking people across the regions to send their numbers in, in whatever shape they kept them, and somebody assembling it by hand. Here that somebody was a finance analyst, and it took their entire workday, every day of the quarter-end close.
The fix isn't clever, it's just the whole job: build something the regions can fill in themselves, get it in front of the people who have to use it, and keep it working when they run into trouble. The second half of this page is the same job wearing different clothes — the company was moving off one reporting system, and every report and every user had to come out the other side.
The problem
Quarterly executive reporting ran on manual data collection — a process that consumed one finance analyst's entire workday, every day of quarter-end close, chasing inputs across regions and formats. At the same time, sales reporting lived in Salesforce Analytics, which the organization was moving away from.
What I built
Two main things. First, a self-serve Power App for quarterly executive reporting, now used by 80+ stakeholders across seven regions — it replaced the manual collection process entirely. Second, I owned the migration of all sales reporting from Salesforce Analytics to Power BI for 150+ users: data modeling, transformation logic in SQL and DAX, and the global rollout.
For both, I was the whole team: requirements, build, executive demos, user support, bug triage, and iteration across time zones. More recently I've been bringing LLMs and Python into these workflows where they earn their place.
Note: this work is internal to Nokia, so screenshots and specifics are limited by confidentiality. The numbers above are ones I can stand behind.
What I'd tell a hiring manager
This is what I mean by operator: I sit between the business and the tooling, and I close that gap myself rather than filing a ticket.