Johannes Link

Softwaretherapeut. Programmierer. Unterstützer.


Profil

Ausbildung und Berufserfahrung

  • seit 10/2006  Freiberuflicher Berater für Softwareentwicklung
  • 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

  • Java, JavaScript, TypeScript, Groovy, C#, Python, Clojure/Lisp, Erlang, Frege/Haskell, Smalltalk, C
  • Web-Technologien: HTML5, Javascript, CSS, Aurelia, Grails, SpringBoot, Knockout, JQuery
  • Softwaretesten, testgetriebene Entwicklung (JUnit/JUnit5, Spock, Jasmine, Karma, Selenium/WebDriver, NUnit, MS-Test, FitNesse, Cucumber)
  • Continuous Integration und Deployment: Git, Gradle, Docker, SVN, Maven, Jenkins, Ant
  • Analyse und Design (objekt-orientiert und funktional)
  • Design Patterns, Analysis Patterns, Architecture Patterns
  • Relationale und NoSQL-Datenbanken (MongoDB, CouchDB, SQL, Hibernate, PostgreSQL)
  • Software-Entwicklungsprozess: Extreme Programming, Scrum, Kanban, Lean
  • Entwicklungsumgebungen: IntelliJ, MS VisualStudio, Eclipse, Atom, PyCharm
  • Moderation von Retrospektiven

Ausgewählte Projekte

  • Frontend-Entwicklung eines Systems zum Browsen verteilter Fachdaten
    Techniken: Javascript, Aurelia, Micro-Services, Docker, Groovy, OAuth2
  • 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++)
  • Scrum-Coach bei der Einführung von Scrum in einem Software- und Dienstleistungsunternehmen der Versicherungsbranche
    Techniken: C#, Scrum, Teamaufbau
  • Leitender Berater bei der Einführung Agiler Entwicklung in einem Software-Produkt-Haus für spezialisierte Suchmaschinen
    Techniken: Java & C++, agile Planungstechniken, Teamaufbau, Architektur
  • 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
  • Beratung einer deutschen Großbank bei der Auswahl einer strategischen Plattform für Business Process Management und service-orientierte EAI.
    Techniken: Anforderungsanalyse, Systemarchitektur, Web-Services, BPEL
  • 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