Backend systems
that stay boring
in production.

Independent Django and Python engineer. Working since 2013, building multi-tenant platforms, async pipelines and data-heavy backends for product teams in European Union.

Based in
Setúbal, Portugal
Works with
Remote, EU — mostly DE
Languages
English, Russian, Ukrainian
Availability
From January 2027

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.

  • Azweb homepage: logo and the headline “Increase your profit with the fast & scalable website!” over a blurred desk with a laptop and a cup of coffee

    Web development and outstaff agency · Lithuania

    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 website: sign-up steps above a squad builder with a football pitch

    Fantasy football platform

    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 homepage with three statistics over photos of people: new benefactors, new opportunities and articles

    Crowdfunding platform · Ukraine

    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 homepage: a data-driven marketing agency headline next to a contact form

    eCommerce marketing agency

    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 logo, a line-drawn unicorn, above an orange and red geometric pattern

    Agency · Switzerland

    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 homepage with a man working on a laptop beside a window and a travel-industry headline

    Travel agency · Netherlands

    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 website: a product search over a fruit-themed banner, with featured products below

    Nutrition encyclopedia

    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.

Have a backend that needs building or fixing? Send a short brief.

All fields are required.

Please enter your name.
Please enter a valid email address.

Project, timeline and rough budget.

Please describe what you need (at least 10 characters).

Your details are used only to reply to your message (see the privacy policy). No cookies. The spam check runs in your browser and sends nothing to third parties.