Johannes Thoma, Developer in Vienna, Austria
Johannes is available for hire
Hire Johannes

Johannes Thoma

Verified Expert  in Engineering

Linux Kernel Developer

Vienna, Austria

Toptal member since May 16, 2016

Bio

Johannes started programming at the age of 10 and now has 30+ years of experience in the field. The focus is on creating clean architectures with minimal lines of code. Johannes is proficient in Ruby on Rails, Python, Shell Scripting, C programming (both UserLand and Linux Kernel), and C++ programming. He hosts many OpenSource Projects on GitHub.

Availability

Part-time

Preferred Environment

MacOS, Linux, Unix, Vi

The most amazing...

...thing I've done was to design and implement a Linux device driver for use in an air traffic control system in the high availability field.

Work Experience

Linux Kernel Developer (Freelance)

2014 - 2015
Frequentis
  • Created a device driver to switch to a failover network in case a given IP address cannot be reached. This driver is in use in air traffic control systems.
  • Fixed a bug in the handling of Level 1 cache memory consistency in conjunction with the USB driver stack.
Technologies: Linux Kernel, C

Ruby on Rails Developer (Freelance)

2012 - 2014
University of Technology, Vienna
  • Created reusable components (Gems) for the TISS campus management system.
  • Created an address book for the TISS campus management system.
Technologies: Ruby on Rails, Ruby

Senior Linux Developer (Freelance)

2012 - 2014
Bank Austria
  • Created mmap allocator; a STL vector that mmaps files.
  • Contributed to Risk Engine (RE3) development.
Technologies: Bash, Python, Linux, C++

Senior Linux Developer

2007 - 2012
Linbit
  • Contributed many bug fixes to DRBD device driver.
  • Created a test suite in Python for stress testing the DRBD driver.
  • Created a Ruby on Rails web application for managing customer contracts.
  • Created a Ruby on Rails application for customers to manage their contracts themselves.
  • Created a DRBD proxy, a multi threaded TCP/IP server (in C) with focus on stability, scalability, and performance.
Technologies: Linux Kernel, Python, Ruby on Rails, Ruby

Senior Linux Developer (Freelance)

2005 - 2006
AV Digital
  • Wrote an audio streaming server for a public announcement system.
  • Created an Linux-Based Operating system for custom hardware.
  • Wrote a web-based management interface in Bash.
Technologies: Real-time Streaming, Bash, C, Linux

Senior Linux Developer

2000 - 2004
Topcall
  • Built a network device driver for PowerPC architecture.
  • Ported U-Boot and Linux kernel to custom hardware.
  • Helped in finding hardware bugs.
  • Wrote an user-land application (TCP/IP server) for communicating with the device.
  • Created a Linux read-only file system for accessing the proprietary top call file system from Linux.
Technologies: C, U-Boot, Embedded Linux

mmap-allocator - An Extension of STL Vector to Use Mmapped Files

https://github.com/johannesthoma/mmap_allocator
The mmap allocator enables the STL vector class to use data from an memory-mapped file. This can be used to scale processing of large amounts of equally structured data (for example time-series data) and increase performance of processing that data. It is a zero copy approach which enables STL vector to directly use the operating system's page cache.

Driver for the HC-SRO4 Ultrasonic Ranger

https://github.com/johannesthoma/linux-hc-sro4
The driver exports an interface via the Linux sys file system to make measurements of the distance to an object as measured by the HC-SRO4 ultrasonic ranger. It uses an interruption to measure the time between the two signals on the GPIO bus where the ultrasonic ranger is attached. It is currently in the process of being included into various Linux Kernel distributions.

Small Wrapper for REST Client

A code I wrote, which demonstrates how the Ruby send method can be used to create a wrapper that catches certain exceptions—for example, when a 4XX HTTP status is returned by the REST server—raised by the REST Client gem.
1992 - 2004

Master's Degree in Computer Science

Vienna University of Technology (Technische Universität Wien) - Vienna, Austria

Libraries/APIs

jQuery

Tools

U-Boot

Languages

Bash, SQL, C++, Python, Ruby, C, JavaScript

Frameworks

Ruby on Rails

Platforms

Linux, Unix, MacOS, Embedded Linux

Paradigms

REST, Test-driven Development (TDD)

Other

Linux Kernel, Vi, Real-time Streaming

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