
Johan Dahlin
Verified Expert in Engineering
Python Developer
Gothenburg, Sweden
Toptal member since June 6, 2017
Johan is a developer with 18 years of professional experience—his key technologies are Python, JavaScript, Flask, GTK/GNOME, PostgreSQL, Jenkins, and Gerrit. Johan has been contributing to open-source communities for many years, including maintaining the key technologies used in the GNOME desktop environment.
Portfolio
Experience
- Python - 16 years
- Ubuntu - 12 years
- PostgreSQL - 10 years
- SQL - 10 years
- Django - 8 years
- JavaScript - 8 years
- TypeScript - 8 years
- Gerrit - 5 years
Preferred Environment
PyCharm, Python, PostgreSQL, Django, React
The most amazing...
...work I've ever done was the GNOME project where I learned how to be a software engineer—writing code, testing, bug-triaging, managing releases, and more.
Work Experience
Staff Software Engineer
DrifterWorld
- Rewrote the existing legacy codebase into a modern back end using Django and SQLite and a front end using React (TanStack).
- Replaced the existing Mikrotik router with a custom VPN solution with Tailscale, saving the company significant hardware and software resources.
- Wrote an AI-based internal tool to query a PostgreSQL database to create queries and graphs on the fly.
Principal Software Web Engineer
Yara International - Digital Sustainability & Traceability
- Wore multiple hats as staff software engineer, system architect, and interim engineering manager.
- Led the migration from DocumentDB to MySQL running on RDS and transitioned Node.js Lambda functions to Next.js, improving runtime and latency.
- Participated in workshops to decide on the implementation of green environmental goals and their technical solutions.
Senior Software Engineer and Tech Lead
Doktor.se
- Led a remote team of five developers, responsible for the general architecture, code reviews, and mentoring of new developers.
- Migrated ORM from Peewee to Django ORM as part of improving reliability.
- Maintained authentication and user and profile management APIs.
- Implemented JWT refresh tokens across all company APIs.
Senior Software Developer
Textual Relations
- Led a remote team of five developers, responsible for the general architecture, code reviews, and mentoring of new developers.
- Migrated production database from MySQL to PostgreSQL for lower latency and more efficient resource usage for lowered cloud bills.
- Created the process for QA and release management, both manual and automated, using Cypress and Selenium.
- Developed the external plug-in architecture using serverless for client-specific integrations.
- Handled the deployment and DevOps using Jenkins, GitLab, and Kubernetes in both AWS and GCP cloud providers.
- Focused on quality by adding types in both front end and back end.
- Lowered latency by moving from Django templates towards a responsive single-page application by rewriting core parts of the front end in React.
Senior Software Engineer
SparkMeter
- Designed and implemented an asynchronous replication system using PostgreSQL/SymmetricDS for low bandwidth, high-latency clients.
- Ported an existing application over from MongoDB to PostgreSQL—archiving a 100x performance improvement in many cases.
- Implemented billing and dynamic tariffs for metering energy used by customers.
- Improved the product quality by adding unit tests for close to 100% code coverage and added integration testing using Nightwatch.js to automate the QA.
- Packaged Python applications using Wheel and Docker for automated deployment and simplified testing used by the QA.
DevOps Engineer
Audience
- Designed and implemented a continuous integration system using Gerrit and Jenkins.
- Planned, designed, and built a hardware testing lab for running kernel audio drivers tests on DragonBoard using the Android and Robot framework.
- Planned and implemented release scripts for the handling of the internal software releases of the audience source driver for the Android Linux Kernel.
- Migrated Git repositories from Gitolite to Gerrit.
Software Engineer
Async Open Source
- Designed and implemented an open-source POS system using Python and GTK+.
- Conducted contracting work for Nokia by implementing a GTK+ XML parser to construct user interfaces components (GtkBuilder).
- Improved Bugzilla by doing contracting work for NASA and Mozilla.
- Maintained the Python GTK+ binding and did major architectural work like separating the lower level parts (GObject, ATK, Pango) from a high-level (GTK, Glade).
- Gave several speeches about the SVN revisioning control system for graduate school classes at the University of São Paulo (USP).
Software Engineer
Litl
- Worked on an OS GUI; written in C and JavaScript using SpiderMonkey and GNOME technologies.
- Maintained the GObject Introspection language binding framework for GNOME.
- Designed and implemented a web application for interacting with an application-tracking system (AST).
- Installed and maintained a continuous integration environment based on Gerrit and Jenkins for the projects developed at Litl.
- Wrote a debugger front-end for the GNOME JavaScript binding for SpiderMonkey.
- Wrote server side software for storing OS data in Python using Google App Engine and Django.
Software Engineer
Fluendo
- Wrote an open-source streaming video and audio server using, Python, Twisted, GStreamer, and GTK+.
- Maintained the Python GStreamer bindings.
- Improved the GNOME Sound Recorder by using GStreamer in more efficient ways.
- Wrote a Nintendo Sound File (NSF) decoder for the GStreamer framework.
- Tested the video server during KDE and GNOME conferences.
Experience
GTK Builder
During my contract work for Nokia, I wrote most of the original code; the GNOME community has since modified it.
Skills
Libraries/APIs
Node.js, SQLAlchemy, GLib, React, jQuery, OpenAI API, Stripe API, Puppeteer, AngularUI, Axis, React Query, OpenAPI
Tools
Gerrit, Jenkins, GTK+, Glade, Makefile, Terraform, Prisma, Celery, Android NDK, Amazon Elastic Container Service (ECS), Chef, NVIDIA Jetson, PyCharm, Emacs, GNOME, RabbitMQ, GitLab, GitHub, Notion, Figma, Ansible, Docker Compose, TanStack Router
Languages
SQL, Python, HTML, HTML5, CSS, C, JavaScript, TypeScript 2, Bash, TypeScript, CSS3, GraphQL, Python 3, C#
Frameworks
Jinja, Flask, Django, Django REST Framework, NestJS, Selenium, AngularJS, Angular, Robot Framework, GStreamer, gRPC, Express.js
Paradigms
Code Refactoring, Automated Testing, Refactoring, Scalable Application, Agile, Extreme Programming, REST, Microservices
Platforms
Docker, Amazon Web Services (AWS), Ubuntu, AWS Lambda, Amazon EC2, Kubernetes, Azure, Apache Arrow, Heroku, Web, Jupyter Notebook
Storage
PostgreSQL, JSON, Microsoft SQL Server, PostgreSQL 10, Amazon S3 (AWS S3), SymmetricDS, MongoDB, Elasticsearch, MySQL, Redis, Datadog, Cloud Firestore, SQLite
Other
CI/CD Pipelines, RESTFul APIs, FastAPI, APIs, CSV File Processing, Scraping, Back-end, Front-end, Full-stack, Back-end Development, Startups, API Integration, Web Scraping, Data Scraping, Artificial Intelligence (AI), System Administration, Amazon API Gateway, Natural Language Processing (NLP), Document Parsing, Browser Automation, OpenAI, AI Accelerators, GTL, Gjs, Amazon RDS, Software, Technical Leadership, IP Cameras, ALPR, Tailscale, Conda
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring