i5dr0id

Work / Papershift GmbH, 2021 to 2024

Absence and shift planning for 10,000 people a day

A component library, a TypeScript migration and two product modules built end to end on a German workforce-management platform.

@@ a Vue 2.6 product with 10,000+ daily active users @@
untyped modules, ad-hoc UI
TypeScript, 78% coverage, 15% faster
shared component library, 12% fewer regression bugs
legacy modules refactored, 22% fewer crash reports

Context

Papershift is a cloud HR platform used for legally compliant time tracking, shift rostering, absence management and payroll preparation across hospitality, retail, healthcare and manufacturing. The frontend was a Vue 2.6 application backed by a Rails API, with a Mobiscroll scheduler at its centre. I worked on it as a freelance frontend engineer for four years, remote from Lagos, embedded with the team in Karlsruhe.

What I built

Two kinds of work: the foundations, and the product modules that sat on them.

  • A library of reusable Vue components, which cut regression bugs by 12% and sped up feature delivery, measured in the fortnightly retrospectives.
  • The TypeScript migration, bringing the Composition API into the Vue 2.6 codebase and reaching 78% code coverage with a 15% performance improvement.
  • The absence-management module: the calendar timeline integration, overlap detection and notification, date-range filters, attachment validation, employee search, timezone-correct absence creation and the mobile layouts.
  • The shift-plan module from an empty directory: module types, store, routes and components, then area sections, shift cards, shift templates and staffing-state colouring on the scheduler.
  • Automated testing in the workflow with Jest, Storybook and Chromatic, plus Hotjar, numbered web releases and a Jira board cleanup.

Outcome

Crash reports fell 22% after the legacy refactor. The absence and shift-plan modules shipped to production and are part of the product today. Papershift’s managing director issued an employment certificate describing the work as designing scalable, maintainable user-facing applications, crafting modular and reusable components, and introducing automated testing into the development workflow.