Karol Gunia.Python / Django Developer
I build Django systems that bring order to chaos: I break the problem down and ship a solution that works.
I have worked with Django since 2020. Over four years in a six-person Django team at AGH: systems for 5,000+ staff, code review, onboarding new people into the project, Product Owner on one project. In parallel a CRM for a commercial client, carried through three major Django migrations.
01 — Need proven Django delivery?
Yes. Over four years in a university Django team, including a Product Owner role, plus a CRM run since 2020 for a commercial client. I ship, test, document and hand over.
AGH University of Science and Technology
–Institutional platforms for 5,000+ staff at one of Poland's largest technical universities.
- Employee Portal — co-built Achievements module (SSO, automated imports, periodic staff evaluations); replaced a legacy system and migrated its data.
- HELPI — digital-accessibility platform built to WCAG 2.1: needs and barriers reporting, user–unit messaging, dormitory applications, and consultation scheduling with iCal/Outlook.
- Oferta Badawcza — public bilingual research showcase; advanced search with data integrated over REST and SOAP.
- Starter — employee onboarding and front-end for the central IdAM system; replaced a paper process.
- Designed the roles, permissions, and organizational-structure module, later replicated across three of the team's systems; introduced pytest, Playwright, and CI/CD.
ATL CRM · Slavic Studio
–Business-critical CRM in production since July 2020. Built and run by me for six years, full lifecycle ownership.
- End-to-end ownership: features, schema and migrations, infrastructure, and direct client support.
- Three major Django migrations (3.0 → 3.2 → 4.2 → 5.2) between 2020 and 2026 without interrupting production; 8 apps, 22 domain models, 134 database migrations.
- GitLab CI/CD with Ruff and mypy, automated tests, Trivy and SAST scanning, Docker builds and deploy.
- Operations I own: 3-2-1 PostgreSQL backups, Let's Encrypt TLS, Sentry monitoring, scripted deploys, self-hosted VPS over WireGuard.
02 — What can you expect working together?
You get a clear scope before any code is written, written updates throughout, and a system that's tested and deployed through CI. I don't hand things off — I run what I build, including the monitoring and anything that pages at 3am.
Written first, calls when needed. You always know where things stand.
If it breaks, CI catches it before you do.
I operate what I build. Backups, monitoring, and recovery are part of the job, not an afterthought.
Security baked in, not bolted on.
03 — Curious about the code?
Most of the work is under NDA — client systems running in production, not on GitHub. One public contribution: Polish localisation of django-prose-editor, merged upstream.
Polish translation (localization) of django-prose-editor — a rich-text editor for Django (ProseMirror). The contribution was merged upstream.
View merged pull request04 — What's in the tech stack?
Python and Django at the core, PostgreSQL and Redis for data, Docker and GitLab CI/CD for infrastructure. Full-stack ownership — from database models to the deployment pipeline.
| Backend | Python · Django · Django REST Framework · REST API design |
|---|---|
| Data | PostgreSQL · Redis · JSONB · query optimization (EXPLAIN ANALYZE) |
| Async & integrations | Celery · RabbitMQ · REST · SOAP · webhooks · OpenAPI |
| DevOps & infra | Docker · GitLab CI/CD · Nginx · Linux (Debian, Alpine) · Proxmox · WireGuard · Cloudflare · Sentry |
| Testing & quality | pytest · Playwright · Ruff · mypy · Trivy · SAST · code review |
| Frontend | HTMX · Alpine.js · Tailwind CSS · Bootstrap |
05 — What does it cost to work together?
B2B contract: 130 to 150 PLN/h net. Projects are priced as a fixed fee for the result: send your scope and budget and I reply with a proposal. Employment: yes, gladly, salary range to be agreed in conversation.
Let's talk about your system.
Looking for a Django developer, permanent or B2B, remote or in Krakow? Write to me, I usually reply within 24 hours.