$ 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.
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
Experience
From PHP Developer to Senior PHP Developer — thirteen years of growth.
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 5JenkinsDockerScrum2017
PHP Developer · Transfer Multisort Elektronik
Developed e-commerce store features as part of a development team, using Laravel and MySQL.
Laravel 5PHP 7.1MySQLREST APICacheQueue2016 — 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 ORMTwigMySQL2015
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 APIMySQLBootstrap2014 — 2015
PHP Developer · BPM Interactive
Designed and built websites for real estate clients using Laravel.
Laravel 4PHP 5.4BladeMySQLBootstrapjQuery2013 — 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.
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
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 dailyBackend
- 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.
© 2026 MSoftware.app — Paweł Malinowski · Senior PHP / Laravel Developer
App · v1.3.0