Lead Software Engineer & Solution Architect · Stockholm

Nick Firouzi

Independent consultant designing and building secure, scalable and maintainable systems — with Java, IAM and modern web at the core.

Background

About Me

Lead Software Engineer and Solution Architect, in the industry since 2014 and consulting through my own company, NIFI. Specialised in Identity and Access Management — OAuth 2.0, OpenID Connect, WSO2 Identity Server and BankID — built on Java, Spring Boot and microservices in Azure, with Angular on the front end. There the work is the application layer: forms and validation, API integration, routing and guards, and session and token handling — implemented from a given design.

Technical lead for IAM at Vattenfall since 2023, responsible for solution design, architecture strategy, coding standards and mentoring within the team, and for the daily work with security, compliance, enterprise architecture and the business. Quality and maintainability come first: solutions that hold up to security and GDPR requirements, and that are still straightforward to work on long after delivery.

  • Role
    Lead Software Engineer & Solution Architect
  • Company
    NIFI — owner & CEO since 2018
  • Based in
    Stockholm, Sweden
  • Experience
    In the industry since 2014
  • Focus
    Java · IAM · Solution architecture
  • Education
    B.Eng. Computer Engineering
    B.Sc. Technology, KTH
  • Languages
    Swedish (bilingual) · English (professional) · Persian (native)

Technologies & practices

Skills

Languages
Java TypeScript JavaScript SQL HTML & CSS XML
Identity & security
IAM OAuth 2.0 OpenID Connect SAML JWT WSO2 Identity Server BankID Signicat Multi-factor authentication TOTP Identity provider design Spring Security Bouncy Castle Auth0 GDPR
Frameworks & platforms
Spring Boot Spring Hibernate / JPA Java EE JSF Thymeleaf Tomcat GlassFish Maven Gradle
Front-end
Angular RxJS Forms & validation Route guards API integration Client-side caching Bootstrap
Databases
Oracle MySQL PostgreSQL MS SQL Server
Cloud & infrastructure
Azure DevOps Azure API Management Azure Key Vault Azure Blob Storage Azure Web Apps Azure Static Web Apps SendGrid Ansible Linux Docker CI/CD Git
Testing & tooling
JUnit Selenium Performance testing Performance optimisation Jenkins Swagger / OpenAPI Jira Bitbucket Nexus IntelliJ IDEA
Architecture
Solution architecture Software infrastructure Microservices REST APIs Systems integration Platform migration & upgrades Proofs of concept Domain Driven Design Object Oriented Design Database design
Ways of working
Technical leadership Clean code Coding standards Test Driven Development Code review Mentoring Knowledge sharing Stakeholder communication Support & maintenance Scrum Agile

Career history

Experience

May 2018 – Present · Stockholm

Owner & CEO

NIFI

My own consultancy, delivering software engineering and IT services to clients. Started it for the freedom to choose my own assignments and for the responsibility that comes with owning the result end to end. Every assignment listed below since 2018 is delivered through NIFI.

Jan 2023 – Present · Stockholm

Lead Software Engineer & Solution Architect

Vattenfall

Technical lead for Identity and Access Management, responsible for how authentication and authorisation are designed, delivered and maintained across every application in Sweden and Finland — around ten applications serving some 1.5 million users.

  • Design solution proposals that address the business's IAM challenges, and set the coding standards, best practices and architecture strategy the team works to.
  • Designed and built account sharing, where one customer invites another and the agreement is signed with BankID — explicit consent that satisfies GDPR without making the invitation harder to get through.
  • Reconfigured caching in the frontend and cut traffic by around 90%, which also raised the platform's tolerance of denial-of-service attacks.
  • Designed and implemented the BankID and Signicat identification integrations, and multi-factor authentication with TOTP apps across the platform.
  • Designed and built several identity providers, and led the migrations behind them — BankID from SAML to REST and on through versions 3 to 6, and Signicat onto a new environment before the old one was shut down.
  • Responsible for the applications and plugins carrying the identity logic on top of WSO2 Identity Server, while the core team maintains, configures and upgrades the platform underneath.
  • Integrated the platform with SendGrid and with Azure API Management, Key Vault, Blob Storage and Static Web Apps.
  • Kept the Spring Boot backend and the frontend current through successive upgrades across the life of the project.
  • Implement security solutions that protect the platform against cyber attacks, and run support and maintenance for everything the team has delivered.
  • Work daily with security, compliance, enterprise architects and the business, so that what is delivered matches what was agreed.
  • Help other teams understand IAM concepts and implement authentication in their services, and started an internal course teaching IAM to developers across the company.
  • Build proofs of concept to test the options before the company commits to one, and run the performance testing behind those decisions.
  • Onboarded and mentored a new developer in a distributed team of five, freeing my own time for the security, compliance and coordination work.
Java Spring Boot IAM OpenID Connect OAuth2 JWT WSO2 IS BankID Signicat MFA Microservices Azure Azure API Management Azure Key Vault SendGrid Ansible Linux TypeScript Angular Tomcat Scrum
May 2018 – Dec 2022 · Stockholm

Software Engineer

Vattenfall

Part of the team responsible for Identity and Access Management across the company's applications, built on the open-source WSO2 Identity Server.

  • Built in-house plugins extending WSO2 Identity Server for Vattenfall, and configured and optimised the Swedish side of the platform.
  • Implemented and maintained the integration with the BankID service.
  • Developed REST APIs for managing users and their claims.
  • Performance tested, troubleshot and fixed bugs across the IAM stack.
  • Took on more of the delivery as the assignment went on, working directly with other parts of the company rather than only inside the team.
  • Moved from implementing solutions to designing them, and continued as the team's sole developer after the other engineer joined another team — the step that led to the lead role.
Java Spring Boot WSO2 IS BankID REST Maven Azure DevOps Jira
Sep 2017 – May 2018 · Stockholm

Software Engineer Consultant

Åhléns AB

Back in the same team as in 2016, now responsible for maintaining, debugging and further developing all the Java applications we had built — mainly Spring Boot microservices, among them the service keeping item counts in step across stores and the one handling members' loyalty points. Both are still in production.

Java 8 Spring Boot Spring Security Hibernate REST Maven Gradle Jenkins JUnit Selenium Thymeleaf Bouncy Castle Red Hat Linux DDD
Sep 2017 – Nov 2017 · Stockholm

Software Engineer Consultant

Lantmännen

Built a proof of concept showing what Auth0 could and could not do as their identity provider — the capabilities, the pitfalls and the trade-offs either way. The brief was to give Lantmännen the basis for the decision rather than to make it. Ran alongside the Åhléns assignment.

Auth0 Java Spring Security
Nov 2016 – Aug 2017 · Stockholm

Software Engineer Consultant

UC AB

A KYC (Know Your Customer) system for Sweden's leading credit information agency, letting banks and other companies run customer due diligence under anti-money laundering regulation. One of two backend developers and the one writing the code full time, while the other worked mainly as solution designer — a microservice architecture with automated processes and event monitoring, BankID authentication, and several integrations with external services to fetch and validate the data. It went live, and the product and the team behind it were later spun out into a company of their own, with the banks that owned UC as shareholders.

Java Spring Boot Microservices REST BankID Hibernate Swagger JUnit CI/CD Scrum
Apr 2016 – Oct 2016 · Stockholm

Software Engineer Consultant

Åhléns AB

One of the developers in an agile team building a new system for club member loyalty points and the receipt transaction flow. The applications were mainly REST APIs. Built from scratch rather than replacing anything older, and still running today.

Java Spring Boot REST Hibernate Gradle Nexus JUnit Swagger Scrum
Jan 2016 – Apr 2016 · Stockholm

Junior Software Engineer Trainee program

Omegapoint

A trainee program tailored for engineers who want to work as consultants. Together with other junior developers, delivered a proof of concept for handling CA certificates — a web interface taking relying parties through generating and issuing new certificates — alongside courses in continuous integration, domain driven design, test driven development and Git.

Java 8 Spring Boot Spring Security Bouncy Castle Thymeleaf Jenkins JUnit Selenium DDD
Aug 2014 – Jan 2016 · Stockholm

Software Engineer In-house consultant

CGI

Worked with customers such as AFA Försäkring, Tele2 and Unionen to automate data and document processing flows, building pipelines that transform data from one format to another with the Quadient Inspire suite, then called GMC Inspire. Among them the digital handling of CSN's mailings nationwide, and the invoice flow for Tele2. My first long-term role, and where I learned how to work in a professional organisation.

Quadient Inspire Designer Quadient Inspire Interactive Java EE JavaScript SQL MySQL HTML
Jun 2014 – Aug 2014 · Stockholm

Software Developer Summer job

KTH Royal Institute of Technology

Built a web platform for professor Mats Brorsson where students submit programming assignments. The service runs each submission on a supercomputer in a controlled environment and reports the result back. Delivered administration, source code submission, execution, result feedback, self-registration for users and registration of new courses and labs.

JSF Java EE JPA MySQL SQL HTML

Credentials

Education, Certifications & Training

2026

Iasa IT Architects — Core Course

Dataföreningen Kompetens · Iasa Global

A five-day architecture programme built by architects for architects — the Iasa Core curriculum, also known as Iasa Foundation, taken through Dataföreningen Kompetens who deliver it in Sweden. Took it to grow into the solution architect role, and what stayed with me is how much of that role is not technical: understanding what other roles are responsible for, what matters to them, and how to communicate across them. Attended and completed the course; the CITA-Foundation exam is separate and I have not sat it.

Architecture lifecycles & deliverables Architecture engagement models Business & technical stakeholders Customer centric design Value measurement & tradeoff analysis Quality attributes & design structures Architecture descriptions & viewpoints Options, decisions & architecture assessment
2020

Angular Course

Ribomation

Four days on building single-page applications with Angular. Taken because the Vattenfall assignment needed it, and it has been my front-end framework ever since.

TypeScript & modern ES Component design & component I/O Modules, pipes & directives Services & dependency injection RxJS & HttpClient Routing, parameters & route guards Template- & component-driven forms Validation & user-defined validators Server-side rendering
Jul 2019

Web Security: OAuth and OpenID Connect Certification

Keith Casey · LinkedIn Learning

An advanced course on implementing OAuth 2.0 and OpenID Connect correctly — choosing the right grant type for each use case, protecting secrets, and avoiding the misunderstandings that make OAuth implementations fragile. This is daily work, and it maps closely to the IAM platform at Vattenfall.

OAuth 2.0 fundamentals & endpoints Extending OAuth 2.0 with OpenID Connect Designing and using scopes Tokens, JWT validation & safe handling Authorization Code flow & PKCE Client Credentials & Device flows Resource Owner Password flow Security considerations & recommended practices
2018

WSO2 Identity Server Course

Yenlo

Level 1 vendor training on the identity platform behind most of my IAM work: two days of hands-on labs on the platform's core. Have worked with WSO2 Identity Server in production ever since, at Vattenfall from 2018 to today.

Resident identity provider Secondary user stores Self-service & account workflows Single sign-on SCIM provisioning Federated authentication Multi-factor & adaptive authentication Key stores & trust stores
2017

Jenkins Course

Ribomation

Three days on running Jenkins as a CI/CD server. Still familiar ground, though Azure DevOps is where my pipeline work has happened since.

Installation & configuration Plugins Job types, from build to deployment Git integration & credentials Remote build agents Build notifications Backup & restore Authentication, authorisation & secure access
2016

Oracle Certified Associate, Java SE 8 Certification

Oracle

Builds a foundational understanding of Java and general programming, demonstrating proficiency in object-oriented programming concepts and the Java language fundamentals. Earned by passing the Java SE 8 Programmer I exam (1Z0-808).

2016

Certified ScrumMaster® Certification

Scrum Alliance · course taken at Crisp

A Certified ScrumMaster® helps teams properly use Scrum, increasing the likelihood of the project's overall success. CSMs understand Scrum values, practices and applications, and act as servant leaders helping the team learn the framework. In practice I work alongside Scrum Masters rather than as one — at Vattenfall, keeping other teams in step with what the IAM platform delivers and when, so they can consume it as soon as it lands.

2016

Strategic Information Security Course

Dataföreningen Kompetens

Three days on information security from a strategic standpoint — what information is worth, and how the risks against it are understood and handled. It sits directly under the IAM work: an access decision is only as good as the understanding of what is being protected.

2011 – 2014

B.Eng. Computer Engineering Degree

KTH Royal Institute of Technology

A three-year engineering degree covering the technologies that build and enable the Internet, with emphasis on software and application development, computer networks and infrastructure.

Object Oriented Design Algorithms & Data Structures Concurrent Programming Network Programming with Java Data Storage Paradigms Operating Systems Software Engineering Web Development — Client & Server Design of Global Applications HCI: Principles & Design
2011 – 2014

B.Sc. Technology Degree

KTH Royal Institute of Technology

A separate three-year programme taken alongside the engineering degree, delivering a broader qualification than a traditional engineering programme and aligned with the international Bachelor's degree structure recognised worldwide.

Outside the assignments

Volunteering

Jul 2017 – Jun 2018

Mentor Science & technology

Omegapoint

Mentored new employees as they started their first job as IT consultants.

Feb 2017 and Feb 2018

Crew member Education

Jfokus

Jfokus is Sweden's annual conference for people who work with Java development. Part of the crew running the event two years in a row.

Jun 2012 – Jul 2012

Teacher & interpreter Civil rights & social action

Björkudden transit

A transit home for unaccompanied refugee children who had sought asylum in Sweden.

  • Taught basic mathematics and Swedish.
  • Interpreted whenever it was needed.
  • Explained to the young people their rights and obligations in Sweden.
  • Was simply there when someone needed a person to talk to.
2007 – 2011

IT technician, secretary & teacher Children

AFGUF

AFGUF is an association working to integrate young people into society, guiding them in the right direction through activities such as maths lessons and sports. As their IT technician, maintained and solved the association's IT issues, and sat on the board as secretary between 2007 and 2009. Also taught subjects including Mathematics A and B, computer studies and Physics A. From 2009 to 2011, stayed on to look after their website.