Summary
I’m a backend developer with over 10 years of experience in software development: web development, RESTful APIs, object-oriented design, database modelling… I’m an easy learner, self-taught, organised, detail-oriented. I take ownership and suggest improvements to workflows and processes. I value communication, be it written, spoken and/or async (remote-first approach). I have an “open source” attitude: write good documentation and code comments, share knowledge, collaborate to implement the best solutions. I try to keep up to date and experiment with new technologies.
My current stack is Python, FastAPI/Flask, MongoDB, gRPC, PostgreSQL, AWS, Docker, Kubernetes, Ansible, Celery, Redis, on both macOS and Linux. In the past, I have worked with other languages (Kotlin, PHP, C#, C++, ASP.NET), databases (MySQL, Oracle, SQL Server, SQLite) and operating systems (Windows).
Current Skills & Proficiency
Python 3, FastAPI/Flask, REST API
pytest, TDD, Unit Tests
MongoDB, PostgreSQL
Docker/OrbStack
Amazon AWS, Kubernetes
Celery, Redis
Git, GitHub, GitLab
Linux, Ubuntu, macOS
Bash/shell Scripting
Agile (Scrum, Kanban)
Projects
Experiences
- Worked 1 year in the Payments Team, responsible for the cash, chargeback and fraud projects
- Now working in the Delivery as a Service (DaaS) Team: delivery service provided by Wolt to any kind of business (restaurants, shops, etc.)
- Implemented the backend integration of the Vipps payment method in Norway
- Improved the backend API for cash payments (used in 12 countries), replacing multiple Kafka topics by a simpler Kafka setup, consuming events from a single topic, published by the Courier mobile app backend
- Currently working in a peer-to-peer delivery project, allowing customers to deliver objects to other customers
- Python 3.9 to 3.12, FastAPI, MongoDB, gRPC, PostgreSQL, Kafka, Docker, Kubernetes, Datadog, Grafana, Kotlin,
- Logistics platform to connect customers with carriers in order to deliver cargo through FTL (full-truck loads)
- Collaborated on a project and system-wide change to allow multiple stops to truck routes
- Implemented automated solutions for the Finance department (invoicing, carrier debt emails, etc.)
- Python 3.7, Django REST API, FastAPI, Celery, Docker, Kubernetes, Datadog
- Optimized the invoice adjustment tool (PHP): refactored the code to make it fail-safe and reliable
- Upgraded to Python 3.7 a SalesForce integration script written in Python 2: remodelled to run on Docker, improved SQL queries and overall performance/code quality
- Automated the install of a C#/ASP.NET application using Chocolatey and PowerShell scripts
- Collaborated with the Product team using Jira and Confluence
- Created invoice PDF files with AWS Lambda, replacing manual invoices (Python, NodeJS)
- Accelerated the performance of the Data Warehouse/ETL tool by limiting the initial filter to the current month (BI with Pentaho)
- Maintained AWS infrastructure (EC2 servers, ECS Fargate containers, S3 buckets, ELB)
- Optimized and tuned the PostgreSQL database hosted on Amazon RDS, checking slow queries, deadlocks and indexes (AWS RDS)
- Upgraded the whole platform with the latest software, applying security updates and bug fixes
- Standardized CI/CD using Jenkins Pipelines, showing a better output, making it easier to replay/rebuild jobs (Groovy)
- Built a Python RESTful API from scratch to replace a PHP application (Python 3.6, Flask, PostgreSQL 9.6, SQLAlchemy, Alembic)
- Streamlined asynchronous jobs using a distributed task queue (Celery 4, Redis)
- Shaped a flexible JSON API to be consumed by iOS, Android and web clients
- Conceived a reliable and fail-safe payment component
- Processed and refunded credit card, SEPA, PayPal and Apple Pay transactions via the Adyen payment gateway
- Introduced a comprehensive unit/integration test suite and Sentry monitoring, ensuring safe code changes
- Optimized an algorithm for the “travelling salesman problem” with Python and Google Maps/Matrix API
- Delivered orders to customers on pre-scheduled slots using the least number of drivers and the fastest route
- Assisted the operations team in London with driver routes simulation
- Increased efficiency of the delivery service, avoiding human mistakes in route calculation
- Developed store/shop/retailer selection by using the current GPS location
- Increased performance on geographical SQL queries (PostgreSQL, PostGIS)
- Composed email, SMS messages and automated phone calls using Mandrill, Mailchimp and Nexmo
- Facilitated marketing campaigns and strengthened customer communication channels
- Assembled dev tools to lint and assert proper typing and code quality (PyLint, flake8, MyPy)
- Conceptualized a multi-language application, prepared for expansion to other countries (Flask-Babel, Transifex)
- One of the first Berlin startups to display bilingual content in English and German to customers
- Remodelled container deployment to use ECS Fargate, a serverless technology (Docker, AWS ECS, AWS Fargate)
- Minimized costs with EC2 instances
- Allocated more containers automatically with auto-scaling when the app was not responding
- Designed front-end pages using a Flux-like architecture (Node.js, Riot, Backbone.js, Underscore.js)
- Participated in a collective effort to write the remaining web pages before the initial platform release
- Collaborated with the team using Agile (Scrum/Kanban) with Trello
- Collaborated on the proprietary PHP framework of the company, adding new core classes and improving existing ones
- Authored a hyphenation class for Portuguese words, used to split multiline text on classified ads
- Enhanced a class to deal with master/detail table data, facilitating the creation of admin interfaces
- Conceived a class to manipulate data trees, speeding up data retrieval without using slow recursion techniques
- Supported the migration of newspaper subscriptions from a desktop app (written in Oracle Forms) to a web app (PHP, MySQL)
- Participated on the Paywall project, limiting articles for readers: free access up to N stories per month; above that, only subscribers can read
- First newspaper in Brazil to use this technology in 2012, loosely based on what The New York Times has done in the USA
- Streamlined data processing to generate daily reports of visitor count and unique hits count (MongoDB, MySQL)
- Computed 5 million records per day and up to 90 million records per month
- Implemented a fast search for newspaper articles using a full-text search engine (Sphinx search)
- Guided the team during the migration of classified ads from a proprietary third-party desktop system (Windows, C++) to a web app (PHP, MySQL)
- Overhauled the credit card app, eliminating double charges and failures, saving company money and increasing customer satisfaction
- Integrated the hyphenation module into the ad capture app, reducing the price of the ads for the customers
- Spearheaded the use of tools for code quality and coding standards: Code Sniffer, CI with Jenkins, design patterns
- Redesigned the blacklist app, optimized PL/SQL queries and stored procedures, reducing execution time from hours to minutes
- Orchestrated the conversion of C++ and Visual Basic 6 desktop applications to C#
- Designed a C++ app to concentrate all the department reports, moving code from legacy VB6 apps
- Generated output in different formats: Excel sheets, text files or e-mail
- Connected to different databases: Oracle 11g/10g/9i, Microsoft SQL Server 2005/2000
- Published a C# Windows Service to update the bookstore marketplace inventory, using XML files to transfer data
- Created C# class libraries, OLE/ActiveX/OCX components
- Initiated a C# shared class library, serving as a base for an internal framework
- Developed an OLE C++ 1.52 component interfacing with a third-party 16-bit DLL, enabling it to be used by a VB6 32-bit app
- Led the migration of version control from Microsoft SourceSafe to Subversion
- Maintained standalone Visual Basic 6 applications that interfaced with the third-party classified ads C++ app
- Produced application setup executables for standalone VB6 apps using NSIS (Nullsoft Scriptable Install System)
- Documented internal technical articles and how-tos with Drupal CMS, after trying Joomla and Wordpress (PHP)
Education
I attended university in a non tech-related field. It helped to open up my mind, think different and to see things from another point of view.
Vocational school in which I learned sofware development techniques and a few programming languages:
- C, C++ and Pascal languages, Object-Oriented Programming
- Relational databases
- Scope definition, requirements analysis, logical design, UML diagrams