tobias fernkorn

Full-stack developer · Laravel · Vue · remote

More capacity for your dev team, legacy code included.

I get up to speed in existing codebases, ship features, modernize legacy code and build up test coverage. Remote, billed by the hour.

Portrait of Tobias Fernkorn
Onboarding

Productive fast in unfamiliar code, even without documentation.

How I work

In your workflow: Git, tickets, code reviews.

Billing

Hourly, no minimum commitment.

Services

Individually or combined, depending on where your team needs help right now.

01

Modernizing legacy code

I bring aging applications up to current versions and reduce complexity step by step, without putting production at risk.

PHP and Laravel upgrades · Refactoring · Dependency cleanup

02

Team augmentation

I work as part of your team: shipping features, fixing bugs, reviewing code. In your tools, following your conventions.

Backend · Frontend · APIs · Code reviews

03

Testing and quality

A lean testing strategy that fits your codebase, so changes become predictable and nothing breaks unnoticed.

PHPUnit · Vitest · Playwright · PHPStan · CI

Up-to-date tooling

My focus is Laravel and Vue, on current versions, with AI agents as part of my daily workflow. I quickly find my way around existing stacks.

  • Laravel 12Backend
  • PHP 8.3Backend
  • REST APIsBackend
  • QueuesBackend
  • PostgreSQLData
  • MySQLData
  • MigrationsData
  • Audit logsData
  • Vue 3Frontend
  • TypeScriptFrontend
  • Tailwind CSSFrontend
  • PiniaFrontend
  • GitWorkflow
  • DockerWorkflow
  • GitHub ActionsWorkflow
  • ComposerWorkflow
  • Claude CodeAI
  • MCPAI
  • GitHub CopilotAI
  • PHPUnitQuality
  • VitestQuality
  • PlaywrightQuality
  • PHPStanQuality
  • HetznerOperations
  • CloudflareOperations
  • nginxOperations
  • BackupsOperations

Experience

Areas I know well from building and maintaining web applications.

01

Multi-tenant SaaS

Many customers in one application: strictly separated data, with roles and permissions enforced in the backend.

Tenancy · Roles and permissions · Policies

02

Personal data

Applications built with data protection in mind from day one: audit trails, anonymization, clear deletion rules.

GDPR · Audit logs · Data processing agreements

03

Integrations

Moving data between systems: imports from third-party formats, PDF and CSV exports, queued email delivery.

Imports · Exports · REST APIs · Queues

04

Operations and deployment

Getting applications into production and keeping them running: server setup, backups with tested restores, updates and monitoring.

Hetzner · Cloudflare · Backups · Monitoring

How we work together

Remote, billed by the hour, no minimum commitment.

  1. 01
    Introduction

    You tell me what your team is working on and where things are stuck.

  2. 02
    Code walkthrough

    I get an overview of the codebase, workflows and open issues.

  3. 03
    Joining the team

    Access, a first ticket, first pull requests in your workflow.

  4. 04
    Ongoing support

    For as long and as much as you need. Billed by the actual time spent.

Frequently asked questions

Do you work with our tools?

Yes. I work in your repository and your ticketing system, following your review rules.

How does billing work?

Hourly, based on actual time spent, with transparent time tracking.

Do you take on code without tests or documentation?

Yes, that is often where things start. I first cover the critical parts with tests, then make changes.

Do you also work in German?

Yes. Communication, code and documentation in English or German.

How do you use AI?

I work with AI agents such as Claude Code, for example to find my way around unfamiliar code, write tests or prepare changes. I review every change myself before it goes into a pull request. Whether and which AI tools I use on your code is something we agree on up front.

// Contact

What is your team working on right now?

Two quick questions, then your message. I usually reply within one business day.

What is it about?
Roughly how long?

I only use your details to respond to your request. Learn more in the privacy policy (in German).