Leonardo Zelenski

Hand me the problem, I'll make the lemonade.

Fast websites for local businesses. Solid backend for teams.

Lisbon · Websites and backendOpen to full time roles

Websites for local businesses

Restaurants, clinics, hotels, dance schools… A fast, good looking website that is easy to find on Google, built around each business.

Taking on new projects

Who it's for

  • Restaurants
  • Clinics
  • Pharmacies
  • Hotels
  • Dance schools
  • Theatres
  • And other local businesses

How it works

  1. Chat

    A short chat to understand the business and what it needs.

  2. Proposal

    A clear proposal with a fixed timeline and price.

  3. Live site

    The site goes live, fast and ready for customers.

  • Python
  • Django
  • PostgreSQL
  • Docker
  • Nix
  • NixOS
  • Linux
  • TypeScript
  • JavaScript
  • Astro
  • Next.js
  • Bootstrap
  • Git
  • GitHub Actions
  • Nginx
  • Kotlin

Projects built from scratch

Demos for businesses and personal projects, from the operating system to a recycling map.

  • 01 · Static site · restaurant

    Concept · fictional business

    Casa do Beco

    An Alfama tavern with a seasonal menu, opening hours, a map and one tap bookings on a phone. Blue and white tile identity.

    ConteúdoAstroHTML estático

    • Lighthouse ≥ 0.9 on a phone
    • No accessibility errors (axe)
    • Astro
    • HTML
    • CSS
    Open demo

    Static site · restaurant

    Concept · fictional business

    Casa do Beco

    My role

    Designed and built by me: identity, sample copy and code.

    Problem
    A neighbourhood tavern needs to show its menu and hours and take bookings, without paying a platform every month.
    Solution
    A static site with the seasonal menu, the hours, the map and a booking button always within reach, fast on any phone.

    Main features

    • Seasonal menu with prices
    • Opening hours and a map to get there
    • One tap booking, ready for phone, WhatsApp or TheFork
    • Blue and white tile identity
  • 02 · Booking flow · clinic

    Concept · fictional business

    Clínica Aurora

    A family clinic with specialties, a team page and an appointment booking flow, as in a Django site with an admin area.

    FormulárioHorários livresConfirmação

    • Booking in three steps
    • Tested end to end (Playwright)
    • Astro
    • HTML
    • CSS
    Open demo

    Booking flow · clinic

    Concept · fictional business

    Clínica Aurora

    My role

    Designed and built by me. The booking is simulated in the browser, as it would work on a Django site with an admin area.

    Problem
    Booking by phone means calling during reception hours and waiting on the line.
    Solution
    Pick the specialty, the day and the time in a short form and see the confirmation on screen.

    Main features

    • Six specialties, each with its description
    • A team page
    • Booking form with open time slots
    • Appointment confirmation at the end
  • 03 · Static site · dance school

    Concept · fictional business

    Estúdio Compasso

    A dance school with a weekly class timetable, teachers and a one tap trial class request.

    ConteúdoAstroHTML estático

    • Weekly timetable readable on a phone
    • Free class request already filled in
    • Astro
    • HTML
    • CSS
    Open demo

    Static site · dance school

    Concept · fictional business

    Estúdio Compasso

    My role

    Designed and built by me: identity, sample copy and code.

    Problem
    Parents and students want to know which classes run, when and with whom, and to try before signing up.
    Solution
    The week's timetable in a table that reads on a phone, the teachers, and a trial class request by email with the guide already in it.

    Main features

    • Weekly class timetable by style
    • Teachers page
    • Trial class request in one tap
    • Bold colour identity for a young audience
  • 04 · Infrastructure · personal system

    In daily use

    NixOS dotfiles

    My whole system in one repository: NixOS with flakes, Home Manager, AwesomeWM and an AI setup (Claude Code, skills and MCP servers) declared in Nix. Reinstalling the laptop is one command.

    Nix flakesNixOSHome Manager

    • Reinstalling the laptop is one command
    • AI setup declared in Nix
    • Nix
    • NixOS
    • Lua
    • Bash
    View code

    Like my NixOS dotfiles? Support its development.Buy Me a Coffee

    Infrastructure · personal system

    In daily use

    NixOS dotfiles

    My role

    A personal project, written and maintained by me.

    Problem
    Setting up a computer by hand takes days, and it never comes out the same twice.
    Solution
    The whole system declared in Nix: NixOS for the machine and Home Manager for the user, pinned to fixed versions by flakes.

    Main features

    • Separate NixOS modules: network, sound, Bluetooth, NVIDIA, Docker, nginx, ZeroTier
    • Home Manager for kitty, rofi, picom, Firefox, VSCodium and git
    • AwesomeWM configured in Lua
    • Claude Code with skills and MCP servers, declared like everything else
  • 05 · Full stack · school project

    Team project

    RebootVerde

    A platform that rewards people for recycling electronic waste in Lisbon: a filterable map of drop off points, recycling codes and points to trade for sustainable products. A school team project.

    DjangoPostGISLeaflet

    • Lisbon map filtered by parish and waste type
    • Two factor authentication (TOTP)
    • Python
    • Django
    • PostGIS
    • Leaflet
    • Bootstrap
    • Docker
    • Nix
    View code

    Full stack · school project

    Team project

    RebootVerde

    My role

    Built by a team of three students, as the interdisciplinary project of year 12 (GPSI).

    Problem
    Portugal collects little electronic waste, and people who want to recycle don't always know where to drop it off.
    Solution
    A map of Lisbon's drop off points and a points system: each drop off gives a code, which earns points to trade for sustainable products in the shop.

    Main features

    • Leaflet and PostGIS map with filters and favourite points
    • Recycling codes protected against reuse
    • Shop with cart, orders with tax number and PDF invoice
    • Accounts with email verification and 2FA
    • Interface in Portuguese and English

The road so far

Python backend, automation and Linux. Two internships: one on a remote team, one in test automation.

Career

  1. InternshipRemote

    to

    4 months · Lisbon

    Software Engineer

    Munit Marketing Digital Publicidade

    PDF processing automation

    Engineered a cross platform automation tool (Windows, macOS, Linux) for PDF processing workflows, compiled and distributed via GitHub Actions. Reduced processing time by about 80% at this stage of the workflow.

    PHP to Python migration and webserver refactor

    Migrated a webserver from PHP to Python, fully refactoring and redesigning its architecture, adding new features and deploying to cPanel. Delivered as a banner creation platform for retail businesses, integrated with a database, featuring:

    • CRUD management for clients, users and banner formats
    • Role based permission levels
    • OTP authentication and email service integration
    • Per client user limits and custom format creation with configurable limits

    Both projects fully documented and version controlled by me.

    • Python
    • PHP
    • JavaScript
    • ExtendScript
    • GitHub Actions
    • cPanel
  2. InternshipHybrid

    to

    4 months · Lisbon

    Test Automation Engineer

    Slice, Sistemas Lógicos de Informática Cálculo e Equipamentos

    • Developed a desktop application in C# using Windows Forms and DevExpress to streamline test automation.
    • Automated repeated test execution, significantly improving testing efficiency.
    • Implemented logging that exports results to a database.
    • Slice is a Lisbon software company specialized in patient flow for hospitals and healthcare facilities.
    • C#
    • Windows Forms
    • DevExpress
    • SQL
    • Git
    • GitHub

Other experience

  • Holiday Children Supervisor

    Junta de Freguesia da Estrela

    Dec 2025 to Jul 2026

    Holiday programmes for children aged 6 to 8, always ensuring safety and well being, helping with daily routines and creating a fun, inclusive environment.

    • Summer 2026 (Jul 2026): cinema, outdoor activities, sports and dance workshops, traffic safety education, group games and team building.
    • Easter 2026: egg hunts, bingo, theatre, cinema, dance, peddy paper and group games.
    • Christmas: dance, cinema trips, themed bingo, theatre, cooking workshops, mystery challenges and outings to play centers.
  • Volunteer Assistant

    Jardins Abertos

    Sep 2023

    Welcomed visitors at participating gardens across two weekends, invited passersby in and shared information about the festival and Lisbon's green spaces.

  • Community Volunteer

    World Youth Day Lisbon 2023

    Aug 2023

    Coordinated accommodation for pilgrims, preparing sleeping areas at Escola Rainha Dona Amélia and Escola Básica Raul Lino, ensuring everyone was welcomed and well accommodated.

Skills

  • Languages

    16
    • Python
    • SQL
    • Bash
    • Nix
    • JavaScript
    • TypeScript
    • PHP
    • Lua
    • C#
    • C
    • C++
    • Objective C
    • Kotlin
    • ExtendScript
    • HTML
    • CSS
  • Frameworks and libraries

    9
    • Django
    • Django REST Framework
    • Next.js
    • Bootstrap
    • .NET
    • Windows Forms
    • Jetpack Compose
    • Tkinter
    • Bun
  • Databases

    4
    • PostgreSQL
    • PostGIS
    • MySQL
    • MariaDB
  • Infrastructure and DevOps

    9
    • Docker
    • Podman
    • Kubernetes
    • Nginx
    • Apache
    • Azure
    • GitHub Actions
    • cPanel
    • WSL
  • Tools and hardware

    11
    • Git
    • GitHub
    • GitLab
    • Codeberg
    • GitHub Codespaces
    • Android Studio
    • Arduino
    • ESP32
    • Adobe InDesign
    • Adobe Creative Cloud
    • Microsoft Office
  • Systems and shells

    6
    • NixOS
    • Linux
    • macOS
    • Windows
    • Zsh
    • PowerShell

Education

IT Systems Management and Programming (GPSI)

Escola Profissional Bento de Jesus Caraça · to

Final grade 18/20

Professional secondary programme (EQF Level 4), Software Development Technician. 3181 hours combining general education with a technical core in software development, systems and networks.

Technical component

  • Programming and Information Systems582h19
  • Networks and Communications230h19
  • Operating Systems144h20
  • Computer Architecture144h20
  • Mathematics300h18
  • On the job training600h19

Class Representative for 3 consecutive years: represented the class with school staff, mediated conflicts, organized activities and facilitated communication between students and teachers.

  • Git
  • GitHub
  • and more

The school's seals

  • Portuguese Republic, Education, Science and Innovation
  • EQAVET conformity seal
  • Operation of Strategic Importance, Pessoas 2030, funded by European funds

Languages

  • PortugueseNative
  • EnglishEF SET 65/100C1
  • SpanishC1

Certificates

  • Cisco · Introduction to Cybersecurity

    Cisco · Introduction to CybersecurityVerify

    Introduction to Cybersecurity

    An introduction to cybersecurity: threats, defence and careers.

    • Global impact of cyber threats on industries
    • Why it is a growing profession
    • Vulnerabilities
    • Threat detection and defence
    • Certifications and careers in the field

    Verify

  • Cisco · Introduction to Modern AI

    Cisco · Introduction to Modern AIVerify

    Introduction to Modern AI

    Using AI day to day and understanding how the models work.

    • AI features in free apps: photos, translation and chatbots
    • In depth prompting practice with a chatbot
    • Fundamentals of how the models work
    • How that knowledge shapes the prompts

    Verify

  • Cisco · Digital Safety and Security Awareness

    Cisco · Digital Safety and Security AwarenessVerify

    Digital Safety and Security Awareness

    Everyday digital safety.

    • Spotting digital threats
    • Safeguarding personal information
    • Protecting personal devices
    • Healthy digital habits

    Verify

  • EF SET · English C1

    EF SET · English C1Verify

    English C1

    English test at level C1 (Advanced) on the CEFR.

    • Reading
    • Listening

    Verify

  • Anthropic · Claude Code in Action

    Anthropic · Claude Code in ActionVerify

    Claude Code in Action

    Running Claude Code past the quick task and trusting the result.

    • Scoping and steering long sessions
    • Writing instructions Claude actually follows
    • Enforcing rules that cannot be skipped
    • Handing work off to unattended and scheduled runs
    • Verifying what ran while no one was watching

    Verify

  • Sololearn · Python Intermediate

    Sololearn · Python IntermediateVerify

    Python Intermediate

    Python past the basics: collections, functions and OOP.

    • Dictionaries
    • Sets
    • Lambda functions
    • Recursive functions
    • Object oriented programming
    • Classes and objects
    • Exceptions
    • Working with files

    Verify

  • Sololearn · C# Intermediate

    Sololearn · C# IntermediateVerify

    C# Intermediate

    Intermediate C#: types, OOP, files and collections.

    • Classes and objects
    • Value and reference types
    • Arrays and strings
    • Inheritance and polymorphism
    • Structs, enums and exceptions
    • Manipulating files
    • Generics and collections

    Verify

  • Sololearn · Introduction to HTML

    Sololearn · Introduction to HTMLVerify

    Introduction to HTML

    HTML basics, from structure to forms.

    • Headings, text formatting, lists and tables
    • Links, images, video and audio
    • Attributes
    • Menus and navigation
    • Forms and drop down menus
    • Internal, external and inline styles
    • Inline and block elements
    • Comments, standards and best practices

    Verify

Nice to meet you, I'm Leonardo

Automation, backend and Linux, from the problem to the delivery.

Portrait of Leonardo Zelenski
Leonardo ZelenskiDeveloper in Lisbon

I'm Leonardo, I'm 20 and I've been tinkering with computers since I was 5. These days I work mostly on backend and automation, with Linux under everything.

What I enjoy most is automating the boring stuff, tuning my system until it's exactly how I want it (my NixOS setup and dotfiles are on GitHub), hosting my own things and opening programs up to see how they work inside. In my internships I worked on a remote team and in test automation: I ask questions before writing code and speak up when I see a better option.

I want technology that serves the people who use it: open, hackable and built to last. That's what I want to bring to real projects while I grow in backend and Linux.

Leonardo ZelenskiDeveloper in Lisbon

Away from the keyboard

  • Camping

    Camping makes you plan, improvise and fix things with what you have. It's good to unplug.

  • Unlocking devices

    Jailbreaking and the like: if I bought it, it's mine, and I want it to last. Giving an old device a new life is one of my favourite things.

Letter of recommendation

Leonardo joined a team working remotely, a role that demands greater maturity and discipline. He attended every meeting he was called to, on time, with good conduct and clear, assertive communication.

He showed consistent commitment throughout the internship, without needing constant supervision, which reveals a level of autonomy and time management that is uncommon at this stage of training.

He showed a critical, constructive mind: he questioned approaches, proposed alternatives and did not limit himself to doing what he was asked. His attitude towards the work and towards the team was exemplary at all times.

António BaldoCofounder of MunitTranslated from Portuguese

Got a project? Let's talk.

A website for a business, a job opening or just a question: the answer comes by email.

I run a business I'm a recruiter