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

Johan Dahlin

Verified Expert  in Engineering

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

Doktor.se
Python 3, Django, PostgreSQL, Amazon RDS, Datadog, GitHub, gRPC, Node.js...
Textual Relations
Python 3, Django, PostgreSQL, Celery, RabbitMQ, Redis, AWS Lambda, Amazon RDS...
SparkMeter
Amazon Web Services (AWS), HTML5, CSS, Angular, Docker, SymmetricDS, Heroku...

Experience

Availability

Part-time

Preferred Environment

PyCharm

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

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

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

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

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

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

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

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

GTK Builder

https://git.gnome.org/browse/gtk+/tree/gtk/gtkbuilderparser.c
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.

Libraries/APIs

SQLAlchemy, GLib, jQuery, AngularUI, Node.js

Tools

Gerrit, Jenkins, GTK+, Glade, Makefile, Celery, Android NDK, Amazon Elastic Container Service (ECS), Chef, Terraform, PyCharm, Emacs, GNOME, RabbitMQ, GitLab, GitHub, Notion, Figma

Languages

SQL, Python, HTML5, CSS, C, JavaScript, TypeScript 2, Bash, HTML, Python 3, TypeScript

Frameworks

Jinja, Flask, Django REST Framework, AngularJS, Django, Angular, Robot Framework, GStreamer, gRPC, Express.js

Platforms

Amazon Web Services (AWS), Ubuntu, AWS Lambda, Amazon EC2, Heroku, Docker, Kubernetes

Storage

PostgreSQL, JSON, Microsoft SQL Server, PostgreSQL 10, Amazon S3 (AWS S3), SymmetricDS, MongoDB, Elasticsearch, MySQL, Redis, Datadog

Paradigms

Agile, Extreme Programming, REST

Other

CI/CD Pipelines, System Administration, Amazon API Gateway, GTL, Gjs, Amazon RDS

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