portraits/transparent/simon_t.png

Simon Berggren

Finding the right solution for the right problem.

I’m a tech lead and senior fullstack developer with nine years in the industry, specializing in .NET, React/TypeScript, and secure cloud platforms on Azure and Google Cloud. I take products from idea to production and own the whole path: architecture, code, security model, and the Terraform-managed infrastructure it ships on. I’ve built multi-tenant SaaS, cross-platform mobile apps, identity provisioning, and payment integrations for clients in banking, e-commerce, and medtech. I work as an agentic engineer: I shape repositories, specs, and test suites so AI coding agents can do real work safely, and I keep architecture, review, and security decisions in my own hands. On Geshdo’s Tech Excellence team I mentor consultants, run technical interviews, and help our engineers adopt the same way of working.

Image - SkillsSKILLS

JavaScript / TypeScript
C# / .NET (ASP.NET Core, EF Core, Azure Functions)
React
CI/CD & Platform Engineering (GitHub Actions)
Identity & Access (Entra ID, OIDC, OAuth 2.0, keyless CI federation)
Microsoft Azure & Azure Integrations
AI-Assisted Development (agentic tools, prompt engineering, workflow automation)
Node.js (Fastify, Express)
Application Security (multi-tenant isolation, row-level security, security reviews)
PostgreSQL (row-level security, Drizzle ORM, EF Core)
Google Cloud Platform
Terraform (IaC)
Secrets Management (Azure Key Vault, GCP Secret Manager)
Azure DevOps
REST API & Frontend Integration
Cross-platform Mobile (Capacitor, React Native, native iOS & Android)
Next.js
Observability (Sentry, Cloud Logging & Monitoring, Application Insights)
Automated Testing (Vitest, Playwright, xUnit, database integration tests)
Payment Integrations & Event-Driven Systems
Firebase (Firestore, Auth, Cloud Messaging, Cloud Functions)
Microsoft Teams Bots & Microsoft Graph
AWS
Vue 2 & 3
SQL Server, Azure SQL Database & MySQL
Cosmos DB (NoSQL)
Jira & Agile Tooling
LLM Integration (OpenAI API, LangChain, vector search)
Java

Image - AptitudesAPTITUDES

Image - ExperienceEXPERIENCE

  • Tech Lead | Fullstack Developer
    September 2026 - Current
    Geshdo AB - Kompass
    Employment

    Geshdo's SaaS pulse and feedback tool for consulting firms. Consultants answer a weekly pulse in Microsoft Teams or on the web, customers rate the work through signed links, and managers see results by person, customer, or company without exposing any individual. As tech lead, I took it from hackathon prototype to a multi-tenant, bilingual product in five weeks.

    I designed the architecture and security model: Entra ID sign-in, PostgreSQL row-level security on every tenant table, and anonymity guarantees enforced in the database and proven by an adversarial test suite. I built the React frontend, Node.js API, Teams bot, Next.js admin console, and a .NET mail service, and provisioned the platform with Terraform on GCP and Azure, with secretless deploys and alerting from day one.

    Skills: TypeScript, React, Next.js, Node.js (Fastify), PostgreSQL (Drizzle ORM, Row-Level Security), C# / .NET 10, Microsoft Teams Bots, Microsoft Graph, Microsoft Entra ID (OIDC), Terraform, Google Cloud (Cloud Run, Cloud SQL, Secret Manager, Cloud Monitoring), Azure (Bot Service), GitHub Actions, Vitest, xUnit
  • Parental leave
    January 2026 - August 2026
    Geshdo AB
    Leave of absence

    Parental leave, staying partly active on the Friends of Executive app.

  • Lead Fullstack Developer
    November 2025 - Current
    Friends of Executive - Networking App
    Contract

    Members-only app for Friends of Executive, an exclusive, invite-only Swedish network of over 300 executives: membership applications, events with QR check-in, a member directory, real-time chat, and an admin console. One React and TypeScript codebase ships to web, iOS, and Android through Capacitor. As lead developer, I set up the codebases and led development from first commit to store release.

    I replaced a five-year-old Azure Functions and SQL Server backend with a new platform on Google Cloud (ASP.NET Core API, PostgreSQL, Firebase Authentication and Cloud Messaging), reaching MVP in January 2026. I later consolidated it into a TypeScript monorepo with a Fastify API, with zero schema changes so rolling back meant redeploying the previous image. On mobile I wrote custom native plugins in Swift and Java for navigation and LinkedIn sign-in, and shipped the app's first Android release.

    I own security and reliability: shared Zod contracts validate every request and response, Sentry redacts PII across web, iOS, Android, and API, logs never carry client IPs, and an error contract keeps an API outage from signing members out. Cloud SQL runs on private networking, deploys hold no stored credentials, and tag-driven releases promote from dev to a separate production environment, gated by a Playwright suite that runs against the full stack in CI. The platform became Geshdo's baseline for later products.

    Skills: React, TypeScript, Capacitor (iOS/Android, custom native plugins), Swift, Java, TanStack Query, Tailwind CSS, Zod, Node.js (Fastify), C# / ASP.NET Core (.NET 10, Entity Framework Core), PostgreSQL (Drizzle ORM), Firebase (Authentication, Cloud Messaging), WebSockets, Sentry, Playwright, Vitest, Terraform, Google Cloud (Cloud Run, Cloud SQL, Cloud Storage, Identity Platform), GitHub Actions, App Store Connect / TestFlight, Google Play Console
  • Integration Developer
    July 2024 - November 2025
    Norion Bank
    Contract

    Replaced Microsoft Identity Manager (MIM) with a purpose-built identity provisioning service for the bank's roughly 500 employees and the accounts of former staff: a C# sync job that takes employees from the HR system into Active Directory and Entra ID, and on to the expense platform. Accounts reach on-premises AD and Entra through Entra's API-driven inbound provisioning on Microsoft Graph, and an interrupted run resumes where it stopped.

    I built the joiner, mover, and leaver lifecycle: account creation, organizational unit placement, email and username generation written back to the HR system, and disabling of inactive and terminated users. Every external call goes through Polly-based resilience, credentials load from Azure Key Vault, and the service deploys to Azure Container Apps from GitHub Actions over OIDC.

    Skills: C#, .NET 8, Microsoft Graph (API-driven inbound provisioning), Entra ID, Active Directory, Azure (Container Apps, Container Registry, Key Vault, SQL Database), Dapper, Polly, GitHub Actions (OIDC)
  • Technical Advisor | Senior Software Developer
    March 2023 - January 2026
    CDON AB
    Contract

    Technical advisor to the CTO and Lead Architect at a Nordic online marketplace, and senior developer on its payment and finance flows: checkout, the Qliro integration, and finance reporting, across an event-driven Azure platform built on Event Hubs, Service Bus, and Functions.

    When CDON merged with Fyndiq, I moved to the platform migration. I kept payments working through the transition, built migration features such as product sync to the new platform, and kept the legacy platform stable, from its Service Fabric cluster to undocumented services on aging Windows servers that nobody on the team knew anymore. I upgraded the cluster, applied security patches, and decommissioned a large share of the Azure resources as workloads moved to GCP, cutting cloud costs.

    I defined the branching and merge strategy for the combined teams, maintained the Azure DevOps pipelines, and introduced AI tooling to speed up legacy code analysis.

    Skills: C# / .NET 8, Azure (Functions, Event Hubs, Service Bus, Service Fabric, Key Vault, Application Insights, SQL Database, DevOps), Windows Server, SQL Server, Dapper, Polly, Datadog, Event-Driven Architecture, Payment Integrations (Qliro), Legacy Modernization, CI/CD (Azure Pipelines), Git Branching Strategy, AI Tooling
  • Fullstack Developer
    March 2022 - Current
    Geshdo AB - Internal product portfolio
    Employment

    Technical owner of Geshdo's internal products, alongside client assignments.

    JobNow: an AI tool that matches our consultants to open assignments, with broker-site scrapers, LLM-written CV profiles, vector search matching, and a Next.js dashboard behind Entra ID.

    Microniq: a resource planning platform for field-service companies. I built its route and shift optimization service in .NET 9 with Google OR-Tools, added Google Maps views, and restructured its PostgreSQL data model.

    Secret: Geshdo's one-time secret sharing service, with AES-256-GCM encryption and delete-after-read on Azure Container Apps, all in Terraform.

    Fortnox integration API: a .NET 9 service for the Fortnox accounting system on Cloud Run, secured with Entra ID.

    geshdo.com: the company site, including an MCP server that exposes consultant CVs to LLM clients, and the CV template every consultant's CV starts from.

    Everything ships through a reusable GitHub Actions library I built, with per-pull-request preview environments and Dependabot on every repository. Since 2022 I've also managed Geshdo's internal AWS environment.

    Skills: React, TypeScript, Next.js, Astro, Vue 3, Node.js, Express, TypeORM, PostgreSQL, Google Maps API, Auth0, MUI, C# / .NET 9 (ASP.NET Core), Google OR-Tools (route optimization), xUnit, Tailwind CSS, Zod, Puppeteer, OpenAI API, LangChain, Vector Search, Firestore, Playwright, Vitest, Docker, Terraform, GitHub Actions (reusable workflows, OIDC), Azure (Container Apps, Key Vault, Managed Identity, Entra ID), Google Cloud (Cloud Run, Cloud Build, Secret Manager, Workload Identity Federation), AWS (Lambda, API Gateway WebSockets, Aurora Serverless, DynamoDB, CloudFront, IAM OIDC)
  • Tech & Project Lead
    October 2021 - February 2023
    GN Hearing A/S
    Contract

    Mobile app for people with hearing loss, used in 5 regions.

    I architected and built the app, and managed customer relations, stakeholders, integrations, and the development team, while staying hands-on in daily coding so the team could stay focused on their work.

    I integrated the React Native frontend with Azure Functions APIs and third-party services, and wrote the native module layer in Java and Kotlin on Android and Objective-C and Swift on iOS. Automated pipelines in Azure DevOps and Visual Studio App Center delivered the app to testers and stores.

    Skills: Leadership, Stakeholder Management, Integrations, React Native (TypeScript), Azure (Functions, Cosmos, DNS, CDN, Data Factory, SQL, Key Vault, Speech to Text, SendGrid, DevOps), CI/CD, Objective-C, Swift, Java, Kotlin, VS App Center, Firebase Cloud Messaging
  • IT Consultant
    September 2021
    StepStone AB
    Contract

    Four-week investigation into StepStone's processes, APIs, and monitoring on AWS. I worked alongside senior developers to map pain points and bottlenecks, and delivered a report of recommended architecture and process improvements that was presented to leadership as the basis for technical roadmaps.

    Skills: Analysis, Reports, AWS, GCP
  • Fullstack Developer | Scrum Master
    February 2020 - July 2021
    Securitas Sverige AB
    Contract

    Internal customer service tool. I started as a fullstack developer and moved into the Scrum Master role, leading sprint estimation and planning with key stakeholders and running end-of-sprint demos. I also maintained the team's CI/CD setup in TeamCity.

    Skills: .NET Core, Knockout.js, MySQL, TeamCity, CI/CD, Jira, Trello, Confluence
  • Fullstack Developer
    February 2020 - Current
    Geshdo AB - TimeNow
    Employment

    Geshdo's internal time reporting and business system, where employees report time and admins and finance manage users, invoices, and revenue forecasts. I'm the largest contributor to its React and TypeScript rewrite, and contributed to the Vue 3 predecessor before that.

    I built much of the time-reporting core (planned absence, report locking, tariffs, overtime) and the finance features accountants rely on: invoice and customer-hours views, revenue forecasts with per-customer drilldown, employee margin, and Excel exports. When a feature needed backend support, I added it to the C# API myself.

    I secured it with role-based access on Microsoft Entra ID, group-based stakeholder access, and admin-only impersonation, and made URL state fully type-safe with Zod so admin and finance views are deep-linkable. For reliability I added type checking to every commit, fixed UTC and ISO-week date handling, and ship through separate dev and prod environments on AWS.

    Skills: React, TypeScript, Vite, Vue 3, React Router, TanStack Query & Table, React Hook Form, Zod, Tailwind CSS, shadcn/ui (Radix UI), Recharts, Excel export (typed-xlsx), Microsoft Entra ID (MSAL), Sentry, Biome, Lefthook, Playwright, C#, .NET 8 (ASP.NET Core Web API), GitHub Actions, AWS (DynamoDB, Aurora, Lambda)
  • Technical Lead | Senior IT Consultant
    February 2020 - Current
    Geshdo AB
    Employment

    Geshdo is my employer. The client contracts in this timeline (Friends of Executive, Norion Bank, CDON, GN Hearing, StepStone, and Securitas) were all carried out from here, in parallel with the internal product work listed above.

    On the Tech Excellence team I develop our consultants' knowledge, skills, and career growth. As Technical Lead in Gothenburg I help grow our regional office by building engineering culture and running technical interviews. As a Senior IT Consultant I help clients with cloud architecture and performance, and guide their teams to work more efficiently.

    I set the engineering standards our teams build on: a shared React and TypeScript project template, CI/CD and code review conventions, a repeatable platform baseline for new products, and repository conventions that let AI coding agents work safely. I also wrote Geshdo's AI Policy & Toolkit, which governs how our consultants use AI tools.

  • IT Consultant
    February 2019 - January 2020
    Sigma AB
    Employment

    I joined as a SharePoint developer, saw the need to modernize, and led the frontend re-architecture to React with microservices. Releases went from 6-hour deployment windows to zero-downtime deploys. I also trained the team in React and managed planning and prioritization.

    Skills: React (TypeScript), .NET Core, SharePoint
  • Software Engineer
    June 2017 - June 2018
    Modelon AB
    Employment

    Web application for modeling and simulation of dynamic systems. I turned my graduation project into the prototype that became a core commercial product, migrated the frontend to React and TypeScript, and supported backend services in Node.js, Python, C#, and Java.

    Skills: React (TypeScript), Node.js, Python, C#, Java
  • Teaching Assistant
    February 2016 - June 2017
    Malmö University
    Employment

    I tutored students in programming, data structures, and object-oriented design, and helped plan the workshops.

    Skills: C#, MySQL, DirectX, Data structures & Algorithms, Object Oriented Analysis and Design

Image - educationEDUCATION

  • Bachelor's degree in Computer Science with focus on Game Development
    2014 - 2017
    Malmö University

Image - LanguagesLANGUAGES

  • 100SwedishNative
  • 90EnglishAdvanced

Image - LinksLINKS

  • LinkedIn

    Connect with me on LinkedIn.

Image - Contactfor inquiries contact

Daniel Sanfridsson