Przemysław Pietrzak

Full-stack TypeScript Developer

I build and deploy full-stack TypeScript applications with React/Next.js on the frontend and Node.js/NestJS on the backend. I also develop PHP/Symfony projects, APIs, queues and integrations with PostgreSQL, MySQL and MongoDB.

01 — 05 / portfolio

Selected projects

Five projects where I was responsible for the code, technical decisions and delivery.

01

ORGON — HR system

An HR system developed in one monorepo with a Symfony API and worker, Next.js, Go tooling and PostgreSQL.

Project goal
Build an HR system that brings together a web application, API, background jobs and administration tools in one consistent environment.
My scope
I designed the service layout, worked on the backend and frontend, and prepared deployment and recovery procedures.
What I did
  • I split the API, worker, web application and database into four services.
  • I moved background jobs to an outbox-based worker with retries and idempotency.
  • I added Go installation and update tools, automated backups and test database restores.
Outcome
ORGON runs on Railway: the web app, API and worker use the same version of the code. Backups run daily and a database restore is tested every week.

Stack

  • PHP 8.2+
  • Symfony 7.4
  • Messenger
  • Doctrine
  • Next.js 16
  • React 19
  • TypeScript
  • Go
  • PostgreSQL
  • Docker
  • Railway
02

PP Solutions — website and platform

A bilingual B2B website with an enquiry form and a backend supporting company processes.

Project goal
Create one place to present services, collect enquiries and support company processes.
My scope
I worked on the frontend, backend, API contracts, deployment and maintenance of the service.
What I did
  • I built the frontend in Next.js and the API in Fastify.
  • I based frontend-backend communication on OpenAPI and a generated TypeScript client.
  • I split the backend into modules covering enquiries, projects, contracts and invoices, among others.
Outcome
The site works in Polish and English, presents the offer and accepts enquiries through a form with clear privacy information.

Stack

  • Next.js
  • React
  • TypeScript
  • Node.js
  • Fastify
  • OpenAPI
  • PostgreSQL
  • Redis
  • Render
03

Kraina Karpat — WordPress and WooCommerce

An editorial WordPress site extended with a prepared and controlled WooCommerce storefront.

Project goal
Extend the editorial site with a B2C store and prepare it technically for launch once the organizational and legal matters are approved.
My scope
I prepared the block theme, WooCommerce integration, tests, migrations, deployment and backup procedures.
What I did
  • I prepared content migrations and activation so they can be run again safely.
  • I left sales disabled until the organizational and legal decisions are settled.
  • I added separate storefront and checkout tests for desktop and mobile, plus a backup restore procedure.
Outcome
The public site is running and the store has a prepared deployment and recovery path. Sales are not live yet.

Stack

  • WordPress
  • WooCommerce
  • PHP
  • Block Theme
  • MySQL
  • Docker
  • Playwright
  • Mikrus
04

CASN — from Laravel to Next.js

A Laravel and Blade site modernized into a publishing platform based on Next.js, MySQL and Strapi.

Project goal
Move years of analyses to a new publishing platform while keeping the content public and well organized.
My scope
I built and maintained both versions of the site and worked on migrating the content and publishing infrastructure.
What I did
  • In the Laravel version, I brought authors, articles, routing and the sitemap into one content registry.
  • In the new version, I separated Strapi CMS from the public data model in MySQL.
  • I moved the frontend to Next.js and TypeScript and standardized the runtime with Docker and Nginx.
Outcome
The new version is live at casn.pl. The older Laravel site remains a public reference point for the migration.

Stack

  • Laravel 11
  • PHP 8.3
  • Blade
  • Next.js 16
  • React 19
  • TypeScript
  • TypeORM
  • MySQL 8
  • Strapi 5
  • Docker
  • Nginx
05

Personal site — full-stack portfolio

A bilingual portfolio with a Next.js frontend, NestJS backend and an outbox-based contact form.

Project goal
Create a portfolio that presents my projects, stack and way of working while remaining easy to develop and update.
My scope
I built and maintain the whole site: frontend, backend, portfolio data, contact form, tests and deployment.
What I did
  • I separated the Next.js frontend from the NestJS backend with REST and GraphQL.
  • I based the contact form on an outbox, retries, idempotency and provider webhooks.
  • I store project data in MongoDB while keeping its source version under version control in the repository.
Outcome
The site works in Polish and English. CI checks the code, backend, main browser journeys, SEO and accessibility on desktop and mobile.

Stack

  • Next.js 16
  • React 19
  • NestJS 11
  • TypeScript
  • Node.js
  • MongoDB
  • Prisma
  • REST
  • GraphQL
  • Docker
  • Playwright
  • Cucumber
Przemysław Pietrzak

About me

I build and deploy full-stack applications in TypeScript, using React and Next.js on the frontend and Node.js and NestJS on the backend. I also develop PHP projects with Symfony and Laravel. I work with APIs, queues, relational databases and MongoDB, and automate quality and delivery with tests, Docker and GitHub Actions.

stack / focus

Skills and technologies

Technologies I use in the projects shown above, from interfaces and APIs to databases, testing and delivery.

Primary stack

01
  • TypeScript
  • React
  • Next.js
  • Node.js
  • NestJS
  • Fastify

Backend and integrations

02
  • PHP
  • Symfony
  • Laravel
  • REST
  • GraphQL
  • OpenAPI
  • Messenger

Data, testing and delivery

03
  • PostgreSQL
  • MySQL
  • MongoDB
  • Redis
  • Docker
  • GitHub Actions
  • Playwright
  • Railway
  • Render

Contact

Contact

Send a message - I'll respond as soon as possible.

Maximum 2000 characters · 0/2000

Your name, email, message and technical connection data are used only to handle your enquiry and stored for up to 90 days.