Johan Dahlin
Verified Expert in Engineering
Software 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
- JavaScript - 8 years
- C - 8 years
- Flask - 6 years
- Gerrit - 5 years
Availability
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
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
https://git.gnome.org/browse/gtk+/tree/gtk/gtkbuilderparser.cDuring my contract work for Nokia, I wrote most of the original code; the GNOME community has since modified it.
Skills
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
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