Mark Grech

Senior Software Engineer · Java/Spring Boot · React/TypeScript · Financial Services

Download CV (PDF)

Zürich, Switzerland · immortaldeity@gmail.com· full contact details in the downloadable PDF

Profile

Full-stack engineer with over 10 years of experience: Java and Spring Boot on the backend, React and TypeScript on the frontend. I've built MiFID II regulatory systems, KYC flows, and wealth management tools at Credit Suisse, Fintama, Swisscom, and Accenture. Running through the last three roles is a consistent thread of identity & access management work — authentication and authorisation architecture, role and permission modelling, and access control enforced from the backend through to the UI. Equally at home designing an API or refining a component library, and I enjoy helping teammates level up.

Skills

Identity & Access Management

Auth architectureOAuth2 / OIDCSAMLJWTKeycloakSpring SecurityRBACEntitlement modellingSSO

Backend

Java 8 / 11 / 17Spring BootHibernate / JPAREST / OpenAPIApache KafkaApache SparkOracle SQLPL/SQLSQL ServerRuby on RailsC# (.NET)

Frontend

ReactTypeScriptNext.jsVikeVueReduxReact QueryMaterial UIRadix UITailwindCSSStorybook

Testing & Tooling

VitestJestPlaywrightChromaticViteGitGitLab CI / JenkinsDocker

Domain

MiFID IIKYC / onboardingWealth aggregationInvestment advisoryCore bankingFinancial services

Languages

German (native)Swiss German (native)English (native)Maltese (native)

Experience

Senior Software Engineer · Apriko, Zürich

Jan 2025 — Jul 2026
  • Designed and implemented role- and permission-based access control for a rendering engine where the backend defines the frontend layout, so each screen renders conditionally against the signed-in user's entitlements rather than hiding elements client-side.
  • Extended the rendering engine to support dynamic, backend-driven layouts, including the C# changes required server-side.
  • Migrated the entire application from Create React App to Vite, cutting build times by roughly 40% and shortening the local feedback loop for the whole team.
  • Rebuilt the component library and UI on Material UI, and introduced automated visual regression testing to keep the design system stable across releases.
  • Modernised the testing setup end to end with Storybook, Chromatic, and Vitest.
ReactTypeScriptViteMaterial UIStorybookChromaticVitestC#RBAC

Senior Frontend Developer · Fintama, Zürich

Jan 2023 — Dec 2024
  • Lead developer for the Products & Services and KYC frontends of a core banking platform, responsible for frontend architecture and cross-team API design.
  • Worked across the full stack during integration phases, contributing directly to the Java 17 / Oracle SQL backend alongside the backend teams.
  • HawkEye (financial ledger and wealth aggregator): built the dashboards for wealth aggregation and financial analytics.
  • Built rapid proofs of concept that helped secure client funding, and extended the internal design system used across projects.
ReactNext.jsTypeScriptReduxReact QueryMaterial UIOpenAPIJava 17Oracle SQL

Senior Full-Stack Engineer · Credit Suisse, Zürich

Apr 2022 — Aug 2022
  • Maintained and refactored investment advisory portfolio products on a Java 8 / PL/SQL stack.
  • Migrated legacy Control-M batch jobs to Apache Spark and built a React application to visualise and configure the resulting job landscape.
  • Replaced deprecated interfaces with modern, documented REST APIs.
Java 8PL/SQLApache SparkReactAngularJS

Software Engineer · Onsite Partner AG, Winterthur

Oct 2020 — Feb 2022
  • Built the access control layer of the DBMilch platform — authentication, role-based authorisation, and the underlying permission model — in the Spring Boot backend, enforced consistently through to the Vue frontend.
  • Built the majority of the DBMilch web application end to end, from the Vue frontend down to the Spring Boot backend and SQL Server database.
  • Designed backend endpoints and tuned SQL queries for large-scale data aggregation across the platform.
VueTypeScriptJava 11Spring BootSpring SecurityHibernateSQL ServerRBAC

Software Developer II · Swisscom AG, Zürich / Bern

Apr 2018 — Aug 2020
  • Worked with Keycloak as the identity provider; built and maintained in-house authentication and authorisation services covering token issuance, session handling, and mapping identities to application-level roles and permissions.
  • Applied that access model across the Valiant banking project and internal applications, enforcing role-based access consistently between backend services and React frontends.
  • Developed React applications on the Liferay CMS platform for the Valiant banking project.
  • Created a Kafka-based prototype for real-time cash-flow visualisation in a finance context.
  • Automated internal processes on MAP, Swisscom's company-wide employee portal.
ReactReduxJava 8Spring BootKeycloakOAuth2 / OIDCApache KafkaLiferay

Software Developer Consultant · Accenture AG, Zürich

Jan 2017 — Jan 2018
  • Implemented MiFID II regulatory backend systems for Credit Suisse Luxembourg clients, working to a hard regulatory deadline.
  • Developed a dashboard for monitoring project build pipelines across teams.
Java 8Spring BootHibernateSQLBash

Projects

Literature Review Tool · Personal project

2026 — present

Full-stack tool that parses RIS bibliographic files and uses an LLM to assist systematic literature-review workflows for academic researchers. Solo end-to-end build spanning the frontend, a Node.js/Fastify backend, and LLM integration; currently in active development.

Education

Eidgenössisches Fähigkeitszeugnis (EFZ) Informatiker · Swisscom AG, Bern

2012 — 2016
  • Four-year federal IT apprenticeship. Built Ruby on Rails tooling that automated Swisscom's network configuration and extended internal Java reporting tools.

Interests

Motorbikes and driving, music production (live coding), fitness, philosophy and psychology, reading.