pl

$ whoami· Senior PHP / Laravel Developer· Gdańsk

Paweł Malinowski

I design and build PHP/Laravel systems from architecture to production.

13 years of experience building web applications. I specialize in REST API design, system integrations, CI/CD automation, and maintaining production applications.

Currently employed · open to B2B projects and full-time opportunities
scroll

About me

I design architecture and build production-grade PHP/Laravel systems.

13 years of experience designing and building web applications with PHP and Laravel. I design REST APIs, integrate external systems, and automate deployment processes with CI/CD. I own the application's full lifecycle — from architecture and implementation to stable production operation used by thousands of users.

in PHP and Laravel
13years
Laravel upgrade experience
9 → 13
of architecture and development ownership
8+years
of users
Thousands

Project · Nowa Era

Demo eduSensus — a commercial application designed and independently deployed to production.

An application for the Nowa Era publishing house that promotes tools for working with children with special educational needs, built with a deliberately split architecture: a content layer in Nuxt integrated with the company CMS, and a separate operational panel in Laravel and Filament for handling demo requests — a deliberate choice of the right technology for each responsibility, rather than forcing everything into a single monolith. Processes such as sending verification emails and cleaning up expired tokens run through events and queues built on Redis, with the whole system monitored via Sentry. I connected this with a GDPR consent system and email delivery, deployed it to production, and have owned its development since 2025. The application handles about 1,000 submissions per month, with seasonal load spikes.

Role
Architecture, deployment, and development
Website
Nuxt 4, integrated with the company CMS via API
Submissions panel
Laravel 13, Filament 5
Background processing
Redis + Laravel Horizon (queues, cache)
Integrations
GDPR consent management, email delivery
Scale
~1,000 submissions/month, with seasonal peaks
In development since
2025
Laravel 13PHP 8.5Filament 5RedisLaravel HorizonLaravel Events & ListenersSentryNuxt 4

Experience

From PHP Developer to Senior PHP Developer — thirteen years of growth.

  1. 2018 — present · promoted Apr 2026

    Senior PHP Developer · Nowa Era

    I own the architecture and development of PHP/Laravel systems used by thousands of users — from yCRM to educational content systems.

    • Independently designed and deployed Demo eduSensus to production — an application handling about 1,000 submissions per month.
    • Built CI/CD pipelines in Jenkins from scratch, automating a release process that used to be done manually.
    • Migrated several projects through the full Laravel 9 → 13 upgrade path.
    • I develop yCRM — a license-management platform handling about 50,000 activated licenses. The code responsible for generating product licenses is protected using SourceGuardian. I work in a 10-person Scrum team.
    • Since 2026, I've also been contributing to the development of an educational platform for a client in Belgium, built with Laravel Nova.
    Laravel 13PHP 8+Filament 5JenkinsDockerScrum
  2. 2017

    PHP Developer · Transfer Multisort Elektronik

    Developed e-commerce store features as part of a development team, using Laravel and MySQL.

    Laravel 5PHP 7.1MySQLREST APICacheQueue
  3. 2016 — 2017

    PHP Developer · Business Software Solutions

    Insurance policy sales platform — integration with two insurers' systems plus a premium calculator and comparison tool, built in Symfony.

    Symfony 3PHP 5.6Doctrine ORMTwigMySQL
  4. 2015

    Developer · Nord Systems

    CRM system for real estate agencies: listing and client management, search, and data import from external sources, built in Laravel.

    Laravel 5PHP 5.5Eloquent ORMBladeREST APIMySQLBootstrap
  5. 2014 — 2015

    PHP Developer · BPM Interactive

    Designed and built websites for real estate clients using Laravel.

    Laravel 4PHP 5.4BladeMySQLBootstrapjQuery
  6. 2013 — 2014

    PHP Developer · Tomsky Internet Marketing

    First professional experience — building and maintaining WordPress plugins.

    WordPressPHP 5.4

Personal project · portfolio

World Cup Explorer — a public football statistics system with its own REST API, MCP, and full CI/CD.

World Cup Explorer is a public, production full-stack system that I designed and maintain myself: a REST API and a custom-built MCP server running over the same business logic in Laravel, a Nuxt/Vue frontend with full internationalization, and my own FIFA World Cup 2002–2026 dataset published as an independent Composer package. I deploy the whole thing through a self-hosted CI/CD pipeline in Jenkins with a quality gate in GitHub Actions and automatic deployment to a VPS. I use AI-assisted development tools (Claude Code) in this project to speed up implementation — the architectural and design decisions remain mine.

Architecture

  • DDD-style domain modules
  • Application layer: Query → Handler → DTO (CQRS for reads)
  • SOLID compliance — Dependency Injection, Single Responsibility
  • No unnecessary abstractions, no repositories without a real need

Backend

  • Laravel 13, PostgreSQL, Redis
  • Static analysis: PHPStan / Larastan
  • Observability: Prometheus + Grafana (dev environment, opt-in)
  • Containerization: Docker

Frontend

  • Nuxt 4 / Vue 3 / TypeScript (strict)
  • Progressive Web App, full internationalization (i18n)
  • Own FIFA World Cup 2002–2026 dataset (974 records)
  • Data published as an independent Composer package with a quality audit

CI / CD

  • Self-hosted pipeline in Jenkins
  • Quality gate via GitHub Actions
  • Publishing to a self-hosted Nexus registry
  • Automatic deployment to a VPS via SSH
  • Nginx + Traefik as reverse proxy with production routing

MCP

MCP (Model Context Protocol) is a standard that lets AI assistants call an application's functions in a structured way — similar to a REST API, but designed for interaction with language models rather than a browser or another service. I built the MCP server as a second adapter over the same application layer the REST API uses — both expose the same use cases (Query → Handler → DTO), differing only in transport protocol and response format. The business logic lives in one place, so adding a new access channel didn't require duplicating rules or rewriting the domain layer. What's technically interesting is that MCP as a protocol is new enough that there aren't yet established patterns for integrating it with an existing application architecture — I had to decide on my own where to place it in the application layer so it wouldn't become another logic silo.

Highlights

  • Custom-built MCP server

    An unusual choice for a PHP developer's portfolio — experimenting with a new AI integration protocol, not just using off-the-shelf tools.

  • Public REST API

    A real, working contract — not sample endpoints in a repository, but an API you can query today.

  • Own Composer data package

    FIFA World Cup 2002–2026 data published as an independent package with a quality audit — built with reusability in mind, not just the application.

  • Self-hosted CI/CD

    A self-configured Jenkins pipeline with a quality gate and a self-hosted Nexus registry — a rarity in side projects.

  • Independent production ownership

    From architecture to monitoring and deployment, without a DevOps team — full ownership of the system's lifecycle.

  • Public API documentation (Swagger UI)

    Interactive documentation generated from OpenAPI, publicly available behind a reverse proxy — not a README file, but a live API contract you can test.

Laravel 13PostgreSQLRedisDockerJenkinsGitHub ActionsMCPNuxt 4TypeScriptPrometheusGrafanaNginxTraefik

Commercial project · Banking sector

Visitor management system — maintenance, modernization, and enterprise integrations.

A visitor management and access control system for a banking-sector institution — visit registration, access card handling, and integration with Active Directory and Lenel OnGuard physical access control. I develop the existing production architecture, run continuous modernization of the PHP/Laravel stack, and build integrations with external systems. I'm currently building an additional event channel based on RabbitMQ, complementing the existing REST integration.

Development and modernization

  • Continuous modernization of the PHP/Laravel stack on a live production system
  • Updating dependencies and removing legacy code
  • Adapting the existing architecture to successive framework versions
  • Reducing technical debt without interrupting system operation

Architecture

  • Repository + Service + DTO layer
  • Observers reacting to model events
  • Multi-tenancy at the organizational branch level
  • Custom validation rules for identity documents

Integrations

  • Active Directory (LDAP), with a mock mode for development environments
  • Lenel OnGuard — REST (OpenAccess API)
  • An event channel in development, based on RabbitMQ
  • Data import/export via Excel

Security and compliance

  • Enforced password expiration
  • Password history (reuse prevention)
  • Sessions and permissions scoped to each organizational branch
  • Identity document validation (PESEL/passport)

OnGuard

Lenel OnGuard is an enterprise-grade physical access control system — the business application communicates with it via REST API, handling cardholders, badges, and zone access levels. I'm additionally building an event-based communication channel on RabbitMQ, complementing this integration with real-time events. Current work includes hardening error handling and guarding against resource duplication on the OnGuard side.

Highlights

  • Integration with an enterprise-grade physical access control system
  • Modernizing a long-lived system without rewriting it from scratch
  • Evolving the existing architecture while keeping production running
  • Hardening integrations with external systems
  • Working in an environment with elevated security requirements
PHP 8LaravelMySQLLDAP / Active DirectoryREST APIRabbitMQ

How I work

Maintainability, automation, and code discipline — that's how I work day to day.

I favor code that's easy to change, not just fast to write — static analysis (PHPStan/Larastan) and tests are part of daily work, not an afterthought before release. I automate repetitive tasks to reduce manual steps and the risk of error. I treat AI-assisted development (Claude Code) as a tool that speeds up implementation, not a replacement for code review or thoughtful design decisions.

Skills

Core stack — used daily

Backend

  • PHP
  • Laravel
  • Symfony
  • Filament

Architecture and integrations

  • REST API Design
  • System integrations

Data and communication

  • MySQL
  • PostgreSQL
  • Redis
  • Queues & Messaging (Redis, RabbitMQ)

DevOps and quality

  • Docker
  • CI/CD (Jenkins, GH Actions)
  • Testing & Static Analysis (PHPUnit, PHPStan)
  • Git
  • Sentry
  • AI-assisted development

Frontend

  • Vue 3
  • TypeScript / Nuxt

Contact

Available for B2B projects immediately, open to full-time opportunities.

B2B contracts

Available now, remote, for companies across Poland.

Full-time roles

Open to full-time opportunities, remote or hybrid — about a 3-month notice period.

B2B projects — backend, in PHP and Laravel, with a focus on API architecture — I can start immediately, fully remote, regardless of the company's location in Poland. I work mainly with Laravel, but I'm also open to projects using Symfony. The Gdańsk–Gdynia–Sopot metropolitan area is my base, not a limitation.

Senior PHP / Laravel Developer · +48 516 768 848

© 2026 MSoftware.app — Paweł Malinowski · Senior PHP / Laravel Developer

App · v1.3.0