Johannes Link

Softwaretherapeut. Programmierer. Unterstützer.


Profil

Ausbildung und Berufserfahrung

  • seit 10/2006  Freiberuflicher Berater für Softwareentwicklung, Softwarearchitekt und Entwickler
  • 2011 - 2013  Mitgründer und Vorstand der Netdosis AG
  • bis 09/2006  100world: Chief Application Developer
  • 1999 - 2006  andrena objects: Entwickler, Architekt und Projektleiter
  • 1998 - 1999  ABB Forschungszentrum: IT-Forschung und Softwareentwicklung
  • 1995 - 1998  Deutsches Krebsforschungszentrum: Medizinische Bildverarbeitung und Genom-Informatik
  • 1996 Diplom-Informatiker der Medizin (Universität Heidelberg)

Technische Expertise

  • Testgetriebene Entwicklung (JUnit/JUnit5, Jqwik, Jasmine, Selenium/WebDriver, NUnit, MS-Test, Cucumber) und Property-based Testing
  • Java, Kotlin, JavaScript, TypeScript, Groovy, C#, Python, Clojure, Haskell
  • Web-Technologien: REST, HTML, CSS, Spring/SpringBoot, React, Angular
  • Web-Security: Open ID Connect, Keycloak
  • Microservices und Cloud-Technologien
  • Continuous Integration und Deployment: Git, Gradle, Docker, Maven, Jenkins
  • Analyse und Design (objekt-orientiert und funktional)
  • Relationale und NoSQL-Datenbanken (PostgreSQL, MongoDB, Hibernate, JPA)
  • Software-Entwicklungsprozess: Extreme Programming, Scrum, Kanban, Lean
  • Entwicklungsumgebungen: IntelliJ, Eclipse, PyCharm, MS VisualStudio
  • Coaching, Ausbildung, Teamentwicklung

Ausgewählte Projekte

  • Weiterentwicklung (Backend und Frontend) eines Portals für die Partnerunternehmen einer bundesweiten Drogeriekette.
    Techniken: Java 11, TypeScript, SpringBoot, React, Gitlab CI, Docker, Cloud Foundry, Selenium WebDriver, Open ID Connect, PostgreSQL
  • Architekturberatung und Backend-Entwicklung einer Platform zur Persistierung und Publizierung von Payment-Daten
    Techniken: Java 11, Kotlin, Kafka, MongoDB, SpringBoot, Property-based Testing, Micro-Services, AWS Cloud
  • Full-Stack-Entwicklung einer Platform zur Wissenserfassung und Publikation
    Techniken: Jersey, Docker, Open ID Connect, Keycloak, TypeScript, React, PostgreSQL, Google Cloud
  • Full-Stack-Entwicklung eines Systems zur Vermittlung radiologischer Dienstleistungen
    Techniken: Javascript, Angular 4, SpringBoot, Docker, Groovy, Open ID Connect, Keycloak, PostgreSQL, Microsoft Azure
  • Backend-Entwicklung eines Cross-Platform-Produkts für Handwerker
    Techniken: Micro-Services, Groovy, Java, Spring Boot, OAuth2 mit Keycloak
  • Gründungsmitglied im Core-Team von JUnit 5, der neuen Generation des JUnit Testing-Frameworks.
    Techniken: Java 8, Gradle, Asciidoctor
  • Frontend und Backend-Entwicklung einer Web-basierten Kiosk-Lösung zur Straßenmaut-Erfassung.
    Techniken: HTML5, CSS, Knockout, Groovy, Java, Spring Boot, Gradle
  • Leitender Entwickler und Architekt von netdosis.de, einem Webportal zur Erfassung und Präsentation von Medikamenten-Dosierinformationen.
    Techniken: Grails, Groovy, HTML5, CSS, mobile Web, Postgres
  • Berater bei der strategischen Einführung von Scrum und agilen Methoden in einem großen deutschen Telekommunikationsunternehmen.
    Techniken: Agile Entwicklungspraktiken, Scrum, Skalierung auf viele Teams, Agilität in Querschnittsbereichen (Testen, Design, Produktmanagement)
  • Coach bei der Einführung von Scrum und anderen agilen Methoden bei der Entwicklung eines Softwareprodukts zur Steuerberechnung im Bankenbereich.
    Techniken: Agiles Produkt-Management, agile Planung, Scrum, Skalierung auf viele Teams
  • Berater und Coach bei der Umstellung auf agile Entwicklung eines zentralen Produktbereichs bei einem großen deutschen Softwarehaus.
    Techniken: Agile Entwicklung, agiles Produkt-Management, agile Planung, Scrum, Skalierung auf viele Teams
  • Trainer und Coach bei der Einführung von testgetriebener Entwicklung in einem mittelständischen Systemhaus.
    Techniken: Testgetriebene Entwicklung (Java)
  • Scrum-Coach bei der Einführung von Scrum in einem Projekt eines großen Elektrokonzerns.
    Techniken: Scrum, Teamaufbau, Retrospektiven, Akzeptanztests (FitNesse), Testgetriebene Entwicklung (C# & C++)
  • Berater und Coach bei einem mittelständischen Softwarehaus mit dem Ziel der Qualitätsverbesserung in der Produktentwicklung
    Techniken: Codereviews, Architekturanalyse und Dokumentation, testgetriebene Entwicklung, Continuous Integration
  • Leitender Berater bei der Migration eines mittelständischen Softwarehauses der Touristikbranche auf agile Entwicklung und der Einführung testgetriebener Entwicklung
    Techniken: C# & .NET, Moderation von Retrospektiven, agile Planungstechniken, MS Team Test, FitNesse
  • Technische Projektleitung bei Neuentwicklung eines Internet-Brokerage-Systems und eines Systems zur betrieblichen Altersversorgung einer Industriebank
    Techniken: Java/J2EE, XML, WebSphere, QSTools, Unit Testing, Eclipse
  • Leitender Berater beim Aufbau qualitätssichernder Techniken und testgetriebener Entwicklung bei einem deutschen Webportal- und Freemail-Anbieter
    Techniken: Java/J2EE, Spring, Unit Testing, Functional Testing, Performance Testing
  • Technische Projektleitung bei der Migration einer Filialsoftware einer großen deutschen Handelskette auf ein anderes Kassensystem
    Techniken: Java/J2EE, RMI, Unit Testing, Functional Testing, Eclipse-Plugin-Programmierung
  • Technische Projektleitung bei der Entwicklung einer automatisierten Übernahme von Online- Kursdaten bei einer Industriebank.
    Techniken: Java/J2EE, Unit Testing, Functional Testing, Eclipse
  • Migration eines Systems zur Bewertung und Verwaltung von Kreditsicherheiten bei einer großen deutschen Bank
    Techniken: Smalltalk, XML, Code-Generierung, Reverse-Engineering
  • Entwicklung eines Web-Portals in der Chemischen Industrie
    Techniken: Java/J2EE, Eclipse, XML, Unit Testing, Functional Testing