Johan Dahlin, Developer in Gothenburg, Sweden
Johan is available for hire
Hire Johan

Johan Dahlin

Bio

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

DrifterWorld
Python, PostgreSQL, MySQL, Cloud Firestore, Ansible, Docker, Docker Compose...
Yara International - Digital Sustainability & Traceability
Software, Python, Web, Node.js, Technical Leadership, Amazon RDS, AWS Lambda...
Doktor.se
Python 3, Django, PostgreSQL, Amazon RDS, Datadog, GitHub, gRPC, Node.js...

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

2024 - 2025
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.
Technologies: Python, PostgreSQL, MySQL, Cloud Firestore, Ansible, Docker, Docker Compose, Axis, IP Cameras, Ubuntu, NVIDIA Jetson, ALPR, Tailscale, React, React Query, TanStack Router, OpenAI, OpenAPI, SQLite, API Integration, Data Scraping, Artificial Intelligence (AI), AI Accelerators

Principal Software Web Engineer

2023 - 2024
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.
Technologies: Software, Python, Web, Node.js, Technical Leadership, Amazon RDS, AWS Lambda, Web Scraping, Data Scraping, Artificial Intelligence (AI), C#

Senior Software Engineer and Tech Lead

2022 - 2023
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.
Technologies: Python 3, Django, PostgreSQL, Amazon RDS, Datadog, GitHub, gRPC, Node.js, Express.js, TypeScript, Kubernetes, Notion, Amazon Web Services (AWS), Figma, CSS, Django REST Framework, HTML, Docker, Amazon Elastic Container Service (ECS), Microservices, RESTFul APIs, CSS3, OpenAI API, React, FastAPI, APIs, CSV File Processing, Stripe API, Browser Automation, Azure, Back-end, Code Refactoring, NestJS, Automated Testing, Refactoring, GraphQL, Prisma, Front-end, Full-stack, Back-end Development, Startups, Scalable Application, Web Scraping, Data Scraping, Artificial Intelligence (AI), C#

Senior Software Developer

2020 - 2022
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.
Technologies: Python 3, Django, PostgreSQL, Celery, RabbitMQ, Redis, AWS Lambda, Amazon RDS, Datadog, GitLab, Jenkins, Kubernetes, Docker, Amazon Web Services (AWS), CSS, jQuery, Django REST Framework, HTML, Amazon Elastic Container Service (ECS), TypeScript, Microservices, RESTFul APIs, CSS3, Node.js, React, Natural Language Processing (NLP), FastAPI, APIs, CSV File Processing, Stripe API, Document Parsing, Browser Automation, Scraping, Azure, Puppeteer, Back-end, Code Refactoring, Automated Testing, Refactoring, GraphQL, Prisma, Front-end, Full-stack, Back-end Development, Startups, Scalable Application, Web Scraping, Selenium, Data Scraping, Conda, Jupyter Notebook, C#, Apache Arrow

Senior Software Engineer

2015 - 2018
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.
Technologies: Amazon Web Services (AWS), HTML5, CSS, Angular, Docker, SymmetricDS, Heroku, RabbitMQ, PostgreSQL, Flask, Python, SQLAlchemy, Terraform, Amazon API Gateway, CI/CD Pipelines, jQuery, Django REST Framework, HTML, Amazon RDS, MongoDB, Amazon Elastic Container Service (ECS), TypeScript, RESTFul APIs, CSS3, Node.js, APIs, CSV File Processing, Browser Automation, FastAPI, Back-end, Code Refactoring, Automated Testing, Refactoring, Django, Front-end, Full-stack, Back-end Development, Startups, Web Scraping, Selenium, Data Scraping

DevOps Engineer

2014 - 2015
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.
Technologies: Robot Framework, Python, Android NDK, Jenkins, Gerrit, HTML, Docker, RESTFul APIs, CSS3, APIs, CSV File Processing, Document Parsing, Scraping, Back-end, Code Refactoring, Automated Testing, Refactoring, Front-end, Full-stack, Back-end Development, Startups, Selenium, Data Scraping

Software Engineer

2001 - 2014
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).
Technologies: PostgreSQL, GTK+, Python, Amazon Web Services (AWS), CSS, HTML, MySQL, TypeScript, RESTFul APIs, CSS3, React, APIs, CSV File Processing, Scraping, Back-end, Code Refactoring, Automated Testing, Refactoring, Front-end, Full-stack, Startups, Data Scraping

Software Engineer

2008 - 2013
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.
Technologies: Amazon EC2, Amazon S3 (AWS S3), Gjs, JavaScript, MongoDB, Flask, Python, Amazon Web Services (AWS), CSS, HTML, Elasticsearch, MySQL, Microservices, RESTFul APIs, CSS3, APIs, CSV File Processing, Back-end, Code Refactoring, Automated Testing, Refactoring, Full-stack, Data Scraping

Software Engineer

2004 - 2004
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.
Technologies: GNOME, GTK+, GStreamer, Python, HTML, MySQL, APIs, CSV File Processing, Back-end, Automated Testing, Refactoring, Full-stack, Data Scraping

Experience

GTK Builder

This is a parser for the GTK in a UI file format (an XML format with UI definitions). The code assumes that the code has been parsed and constructs GTK user interface widgets/objects based on the format.

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

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring