01 About
I design data models, tenancy boundaries and background processing that a team can keep extending without fear.
Former lawyer turned engineer. Solo contractor through my own Portuguese company — one client team at a time, embedded, long-term. Stack: Django, PostgreSQL, Celery, DDD, distributed systems, DSPy for LLM evaluation.
02 Portfolio
-
Azweb, MB
A Django-focused agency that ran long-term engagements for international clients and kept most of them for a year and a half or more.
Django · Flask · ReactJS · CI/CD · Team leadership · Mentoring
Read the case study
Azweb was an outsource and outstaff web development agency, registered in Vilnius and run remotely. From 2018 to 2021 it grew to a team of 12 developers, QA engineers and designers, delivering for clients in e-commerce, fintech-adjacent platforms, CRM and crowdfunding, among others.
The agency never took short-term jobs. Most clients stayed 18 months or longer, and my longest client, who started working with me in 2016, still comes back to me ten years later. Work came from direct sales on Upwork and from my own network. I wrote proposals, ran discovery calls, agreed rates and terms, and then staffed each engagement from the free capacity on my team or hired extra help when we needed it.
During this period the team released 3 greenfield projects built with Django, Flask and ReactJS, and shipped features on 2 legacy codebases while steadily improving them.
As the only owner, I handled everything except marketing: lead generation, sales, hiring and layoffs, delivery management and client communication. That made test automation a necessity, not a nicety. Everything we built had unit tests, end-to-end tests, repeatable scripts and documentation wherever possible. I introduced Kanban and automated code checks in CI/CD, reviewed code, and mentored 3 intern developers into capable Python and Django backend developers.
Not every project succeeded. One of the few we failed was an insurance-company project that required scraping data from their internal subsystems. The data could only be read once, because it changed status as soon as someone opened it, and there was no staging environment. Neither side knew this at the start, so we were all working from wrong assumptions, and I had underestimated the task. After that we screened projects more carefully, checked data accessibility before quoting, and made a staging environment a condition of any work involving third-party data.
Azweb was wound down gradually in 2021, with teams transferred to other employers over time. The last employee left at the end of 2021, and I continued as an independent contractor. What I took from it is a practical sense of how to build lightweight processes (Kanban, CI/CD, solid test coverage) that make small teams deliver faster. The habit of switching context quickly across projects, people and codebases has also turned out to be useful in today’s agentic coding workflows.
-
Serie A Fantasy
Led the backend team of an online fantasy football platform, built its random-squad generator, and kept API responses under one second as the user base grew.
Performance · Async jobs · Heroku
Read the case study
Fantasy football lets users build teams of virtual counterparts of real professional players and compete in private or public leagues. Points follow the players’ real-life match statistics.
I led the backend team and owned the complex components from the start. That includes the “Create Random Squad” algorithm, which takes other users’ performance and analytics into account, along with the total budget and internal limits, to assemble a team.
The main achievement was steady performance gains during rapid user growth. ORM query optimization, database denormalization and asynchronous jobs kept API calls within a one-second limit while keeping infrastructure costs manageable.
The team also handled DevOps. We proposed moving the app from AWS Fargate to Heroku, which brought significant cost savings, and the project ships through CI/CD.
“Anton and his team were fantastic in all aspects during our collaboration! Most diligent and professional team of specialists I came across on this platform and was lucky enough to work with. Responsibility towards the project is their most valuable asset. Very thorough team with a high skills and expertise in their field!
Anton himself is an irreplaceable member to have on your side, very honest individual who deserves highest praise”
Client review on Upwork, May 2020 – Jun 2021 “Great job as always, delivered thorough and quality work every time during our collaboration”
Client review on Upwork, Aug 2021 – Oct 2023 -
BigIdea
New workshop, profile and payment modules for Ukraine’s largest crowdfunding platform, plus a full migration of 60,000 lines of Python 2 to Python 3.8.
Python 2 → 3.8 · pyinfra · Unit tests
Read the case study
BigIdea is a web application for the largest crowdfunding platform in Ukraine, launched in 2010 and still running. The client wanted new features such as tests and workshops, and payments through Ukrainian third-party providers.
I developed custom modules for workshops, profiles and payments. That meant designing the backend architecture for the new models and building the frontend from custom designs, on Python 2 and Bootstrap 3, which the project used at the time.
We then migrated the whole codebase, 60,000 lines of Python 2, to Python 3.8. The infrastructure was updated too: new security patches, the matching Python versions, and deployment automation with pyinfra. The new models were covered by unit tests.
Beyond code, I trained the team in basic security practices for key management, which led to company-wide changes to the VPN and disk encryption policies. As team lead, I joined stakeholder meetings to estimate, plan and propose releases, and I introduced and maintained the monitoring tools that significantly shortened the time to resolve bugs and critical errors.
-
DMCommerce
A recommendation engine for retail and e-commerce (B2B and B2C) in over 40 languages, kept fast across many products, categories and vendors.
Django · Performance · Mentoring
Read the case study
The client needed a complex recommendation engine for retail and e-commerce, B2B and B2C. The engine stores users’ answers and paths to build a decision tree and analyze every possible outcome, with intricate testing mechanics, and it supports over 40 languages.
The biggest challenge was a quick response time across a wide variety of products, categories and vendors, which called for continual optimization of the backend implementation.
My main responsibilities were code review, mentoring junior developers and constantly improving the performance of the Django backend. I also took part in hiring and firing for the backend team.
-
Einhorn Manufaktur
A CRM for invoicing and project management: 500,000+ legacy rows migrated, and a new project-management module added to a Django REST Framework system.
Django REST Framework · Data migration · TDD
Read the case study
A web-based CRM for invoicing and project management. The client, a Swiss agency, had a legacy system built on Django REST Framework that needed further development. What we achieved:
- Migration of more than 500,000 rows of legacy data from the old system into the new framework
- A new backend module for project management
- Bulk editing of complex data structures
- Custom system-wide settings, available in the admin panel
- Per-object permissions depending on roles, object owners and more
- Unit test coverage following TDD principles
The data migration was the most challenging part. GitHub and CircleCI were used to ship improvements based on the client’s needs on a daily basis.
“Working with Anton was wonderful. He is very polite, has a quick apprehension, gives important feedback, has a good working attitude and answers quickly on things. Also the code was clean and well-organized. I can recommend him 100% and will be happy to work with him again!”
Client review on Upwork, Feb 2018 – Jul 2019 -
Qenner
A PHP integration library rebuilt as a clean Python interface to a third-party API, with scheduled imports into the database and a REST API for the frontend.
Python · Django REST Framework · Cron
Read the case study
The client, a travel agency in the Netherlands, wanted a PHP library converted to Python. The library wrapped a third-party API behind a PHP interface; the goal was a clean Python interface to the same API. They also needed that API’s data processed into their database on a routine basis and sent to the frontend through Django REST Framework.
The Python interface was completed. A Django management command, run via cron, regularly updates the database with new information, and the data reaches the frontend through Django REST Framework.
-
Produkty Spożywcze (Miarydomowe.pl)
A web encyclopedia of nutrition data for every product, protected against scraping, with a tailored Django admin for moderating user-suggested edits.
Django · Anti-scraping · Bitbucket Pipelines
Read the case study
The client’s goal was a web-based encyclopedia of nutrition information, with data on every product and its components: carbohydrates, fats, proteins, vitamins and minerals. Protecting that data from web scraping was the main challenge.
I built a responsive web application that limits access to specific users, and we used specialized tools to restrict third-party APIs, bots and scrapers.
The backend customizes the Django admin panel to fit the client’s workflow: users of Miarydomowe.pl can propose changes to product descriptions, and moderators approve or reject them. A mixed logic randomizes which products appear on the main page, for a more individual experience.
The frontend uses Bootstrap 3 and jQuery. The application runs on DigitalOcean, with Bitbucket Pipelines as the CI/CD service that builds, tests and deploys to the client’s repository.
03 Contact
Have a backend that needs building or fixing? Send a short brief.
All fields are required.