Back to Work
SAP Logo

KulturPass DE

SAP SE

Senior React Native Developer

Note: The KulturPass program was discontinued at the end of 2025. The app and web services were terminated on November 30, 2025, with redemptions possible until December 15, 2025. Learn more

KulturPass was a German government initiative that provided all 18-year-olds in Germany with a digital budget of 200 EUR to spend on cultural activities such as books, concert tickets, museum visits, and more. The app enabled young adults to discover and redeem cultural offers from participating providers across Germany.

Project Overview

Contributed to the development of the KulturPass mobile application built with React Native. As part of the SAP development team, I implemented core features including the favorites system, form validation, secure storage, and state management architecture. The app integrates with Germany's national ID card (Personalausweis) for identity verification and connects to a commerce backend for offer discovery and redemption.

Key Contributions

Favorites System

Built the complete favorites functionality allowing users to save and manage cultural offers they're interested in. Implemented the list view with product images, pricing badges, and swipeable delete actions. Added comprehensive accessibility labels for screen reader support and thorough test coverage.

Form Validation

Implemented client-side and server-side form validation for login and registration flows using React Hook Form and Zod. Created a robust error handling system that displays translated validation messages for each form field, with proper integration of CDC (Customer Data Cloud) API error responses.

Secure Storage

Set up encrypted storage for sensitive user data using react-native-encrypted-storage. Implemented a layered storage architecture separating persistent data from secure credentials, with proper Redux Persist integration for state hydration.

Redux State Management

Established the Redux architecture using Redux Toolkit with Redux Saga for side effects and Redux Persist for state persistence. Configured separate storage backends for regular and sensitive data, ensuring proper serialization and type safety throughout.

React Native Upgrade

Led the upgrade of React Native from earlier versions to 0.70.x, including Hermes engine updates and dependency migrations. Resolved breaking changes, fixed build errors, and patched security vulnerabilities in third-party packages.

Code Quality & Testing

Improved code quality by enabling stricter ESLint rules and fixing TypeScript errors across the codebase. Set up React Native Testing Library and wrote comprehensive unit tests for components and services, establishing testing patterns for the team.

Environment Configuration

Built a dynamic environment configuration system that reads build configurations from YAML files. Implemented a configuration picker UI for development builds, allowing easy switching between different backend environments.

API Error Handling

Created an error registry system for consistent error handling across the app. Implemented error modals for API failures with proper error code mapping and user-friendly error messages.

Registration & Authentication

Implemented the preferences screen for user registration including location (ZIP code) input with validation. Built the forgot password flow with proper error handling and user feedback.

CI/CD Pipeline

Set up continuous integration pipelines running TypeScript checks, ESLint, and Jest tests. Configured the build wrapper repository for automated app builds and distribution.

Technology Stack

Frontend

  • React Native 0.70
  • TypeScript
  • Redux Toolkit
  • Redux Saga
  • React Navigation
  • React Hook Form

Services

  • AppCenter Analytics
  • AppCenter Crashes
  • i18next
  • Axios

Security

  • Encrypted Storage
  • Zod Validation
  • AusweisApp2 SDK

DevOps

  • Jest
  • React Native Testing Library
  • ESLint
  • GitHub Actions

Additional Contributions

react-native-ausweisapp2-wrapper

Contributed to the React Native wrapper for the AusweisApp2 SDK, which enables integration with the German national ID card (Personalausweis) for secure identity verification within the app.