Hi, my name is Andrzej
I build web applications. I specialize in backend and infrastructure, but I don't shy away from front-end work either.
I took on my first paid work in 2009, building dynamic websites, small internal tools for companies and marketing applications in PHP and MySQL. Those early years taught me the fundamentals — object-oriented programming, algorithms, design patterns — but just as importantly, they taught me how to work with clients: how to understand what they need, agree on what will be built, and turn that into something that works.
A few years later I picked up Python, mostly because I had become interested in geographic information systems (GIS), where Python is one of the standard tools. Along the way I learned PostgreSQL, its PostGIS extension and the basics of spatial analysis. One of the projects from that period was a live map of incoming reports: whenever a new record hit the database, it showed up on the map in the browser instantly, with no page refresh. Under the hood it ran on PostgreSQL notifications, a Tornado server and OpenLayers.
In 2017 I joined Karkonosze National Park, where I spent four years in the GIS team, though my main job was looking after the network, the servers and the systems. I modernized the institution's IT infrastructure and launched a map portal built on ArcGIS Enterprise. That job changed how I look at software: I learned to think about reliability, backups and security, not just about the code.
My first paid Python web application project came in August 2020, while I was still working there. A year later the same client offered me a full-time position, and building web applications has been my main work ever since. JavaScript and TypeScript joined Python along the way, but the backend is still my specialty. After two years on the payroll, in 2023 I went self-employed and have been working with clients on a B2B basis since then.
Today I build web applications, mostly on the backend — business logic, APIs and integrations with other systems — though I also handle the user interface when a project calls for it. The other half of my work is the automation and infrastructure that keeps those applications running: deployment pipelines, backups, monitoring and the environments the software lives in. That means I can take a project from the first conversation all the way to a stable system running in production, or join an existing team and fill whatever gap needs filling.