software kunst. handwerk. wissenschaft.

« Ich bin freiberuflicher Softwareentwickler, Berater und Trainer aus Saarbrücken. »

ruby und rails

Seit 2010 bin ich Mitglied im Kernteam der Entwickler von Ruby (“ruby-core”) und auch Mitglied der Security-Teams von Ruby und Rails. Ruby ist meine Leidenschaft, und so programmiere ich auch privat am liebsten in Ruby. Auf internationalen Konferenzen wie etwa RubyConf oder Ruby Kaigi findet man mich als Redner, wo ich meine Leidenschaft gerne mit anderen teile. Dank umfangreicher Tests mit RSpec, Cucumber und Capybara und meiner langjährigen Erfahrung mit Refactoring und Design Patterns stelle ich sicher, dass Ihre Rails-Applikation von Anfang an läuft wie geplant. Auch wenn Sie Ihre Java-Web-Applikation hin zu JRuby und Rails migrieren möchten, kann ich Ihnen wertvolle Tipps liefern. Von der Planung über Entwicklung und Continuous Integration hin zum finalen Deployment, ich werde ich Ihnen stets ein hilfreicher Begleiter sein.

java ee

Java nutze ich seit der Version 1.0, die 1996 erschien. Spring oder EJB, Hibernate oder JPA, JBoss oder TomCat, Desktop- oder Webanwendung: Ich kann Ihnen mit Rat und Tat zur Seite stehen. Während früher der Fokus auf der Verarbeitung von XML, SOAP und Frameworks wie Spring MVC lag, konzentriere ich mich heute doch eher auf moderne Webanwendungen und Frameworks wie etwa Play oder Grails, die leichtgewichtigen APIs via REST und JSON den Vorzug geben. Dank der hervorragenden Eignung der JVM als Plattform für unterschiedlichste Sprachen setze ich auch gerne Groovy, JRuby, Scala oder Clojure ein, wo es besonders sinnvoll ist. Ein Experte in einer einzelnen Sprache zu sein bedeutet für mich, nicht wirklich ein Experte zu sein. Ich liebe Programmiersprachen aller Art, jede einzelne eröffnet neue Wege, um Probleme zu lösen.

javascript

Als “Full-Stack”-Entwickler habe ich plattform-, Framework- und sprachübergreifend Erfahrung im Entwickeln von Web-Anwendungen und Libraries erworben - ich fühle mich auf Back-End, Front-End und mobilen Geräten gleichermaßen wohl. JavaScript war dabei mein ständiger Begleiter. Auf Konferenzen teile ich mein Wissen durch Vorträge, versuche aber auch gleichzeitig mit der rasanten Entwicklung der Sprache mitzuhalten. So gehören client-seitige MVC-Frameworks wie Backbone.js, Angular.js und ember.js für mich mittlerweile einfach mit dazu, jQuery allein reicht nicht mehr. Minifizierung, Wartbarkeit und Testbarkeit - ein modernes Front-End muss viel mehr leisten als vor Jahren noch. HTML 5, CSS 3, Ajax, REST, Sass, Less, Bootstrap, fast täglich gibt es neue Entwicklungen. Ich kann Ihnen helfen, auch in Zukunft nicht den Überblick zu verlieren!

kryptographie

Ich war beteiligt an der Entwicklung und am Deployment komplexer PKI-Infrastrukturen und habe zahlreiche Produkte in den Bereichen Security & Kryptographie entwickelt, Code Reviews durchgeführt und Schwachstellen aufgedeckt. Ich bin Experte für die qualifizierte elektronische Signature und die europäischen Signaturstandards CAdES , XAdES und PAdES. Ich habe jeden dieser Standards selbst implementiert und Analysen durchgeführt, um ihre Integration in bestehenden Signaturstandards oder ihre Eignung als Basis für Langzeitarchivierung zu untersuchen. Seit 2010 bin ich Maintainer der OpenSSL-Extension, der standardmäßigen Kryptographie-Library von Ruby, die ich pflege und weiterentwickle. Seit Ende 2011 bin ich Autor und Maintainer von krypt , meinem Versuch, plattform- und library-unabhängige Kryptographie für alle gängigen Ruby-Plattformen (inklusive JRuby und Rubinius) bereitzustellen.

refactoring

Sauberer Code ist mir heilig - stetiges Refactoring, meine Erfahrung mit Design Patterns, Algorithmen und Datenstrukturen sind nützliche Hilfsmittel, wenn es darum geht, wartbare Architekturen von Grund auf neu zu entwerfen oder etwa im Umgang mit Legacy-Code. Durch die Beherrschung mehrerer server- und client-seitiger Test-Frameworks kann ich helfen, eine Testbasis neu zu entwerfen oder zu erweitern. Darüberhinaus kann ich ein tiefgreifendes Verständnis der Details anbieten: Falls etwas nicht so funktioniert, wie es soll - ich weiß, wo es nachzuschauen gilt. Auch wenn es darum geht, Ihre internen Prozesse zu optimieren, den ewigen Traum vom Build auf Knopfdruck zu realisieren, kann ich Ihnen Mittel und Wege aufzeigen, wie sie mit Continuous Integration, Code Coverage und modernen Tools wie git, Rake, Gradle oder Maven Ihre Prozesse verschlanken und so Ihrem Traum näherkommen.

test-driven

Ob nun dynamische Sprache oder nicht, ohne Tests geht es einfach nicht! Software zu entwickeln ohne eine automatisierte Testbasis ist unverantwortlich - der Compiler ist kein Ersatz für ausreichende Tests. Es ist nie zu spät, in jeder Phase gibt es Methoden und Tricks, wie man Tests hinzufügen kann und direkt von ihnen profitiert. Wenn Begriffe wie Mocks, Doubles, Seams, TDD und BDD noch Fremdwörter darstellen - kein Problem! Ich kann Ihr Team schulen und ihm die “Denkweise” des Test-Driven Development näherbringen. Im Nu dürfen Sie sich über verbesserte Code-Qualität, weniger Bugs, zufriedenere Kunden und Mitarbeiter freuen. Mit einer ausgefeilten Test-Suite gehören Last-Minute-Bugs endlich der Vergangenheit an. Egal ob server-seitig oder client-seitig mit Javascript, gleich in welcher Sprache, Sie werden Softwareentwicklung zukünftig mit anderen Augen sehen!

Was kann ich für Sie tun?

beratung

Sie benötigen Hilfe, um ein neues System zu entwerfen? Haben spezifische Anforderungen, wissen aber noch keinen Weg, der dahin führt? Wissen nicht, welche Sprache sie benutzen sollen? Welche Library oder welches Framework? Profitieren Sie von meiner Erfahrung: Von der Selektion der Komponenten, dem Schreiben der Spezifikation bis hin zum Design der Architektur und dem finalen Deployment - ich besitze die Erfahrung und würde mich freuen, sie weiterzugeben. Ich kann Bestehendes analysieren und gegebenenfalls verbessern.Ich kann helfen, eine Architektur zu entwerfen, die von Grund auf auf Wartbarkeit ausgelegt ist. Oder Ihnen zur Seite stehen, wenn es gilt, LegacyCode zu warten.

entwicklung

Sie könnten gut eine weitere Person in Ihrem Team gebrauchen? Jemanden, der schnell begreift, worum es geht, und der im Nu Ergebnisse liefern kann? Es ist zu teuer oder dauert zu lange, eine Person aus Ihren Reihen weiterzubilden? Sie haben ein ungutes Gefühl bei der Umsetzung eines kryptographischen Protokolls? Haben eine Aufgabe vor sich, die eine Unmenge verschiedener Technologien umfasst? Ich kann helfen, diese Features umzusetzen und gleichzeitig wartbaren Code hoher Qualität erzeugen, indem ich Design Patterns anwende, wo sie sinnvoll sind, Refactoring durchführe, wo es notwendig ist und alles umfassend teste, um sicherzustellen, dass es auch in Zukunft so läuft, wie ursprünglich geplant.

workshops

Sie möchten gerne mehr über Kryptographie oder Security im Allgemeinen wissen? Sie würden gerne endlich Klarheit darüber erlangen, wie man denn nun Passwörter richtig speichert? Oder würden gern mehr über Ruby und Rails erfahren? Oder möchten Sie erfahren, wie Sie Ihre Test-Driven Development-Praktiken auf den neusten Stand bringen können? Profitieren Sie von einem meiner in-house Workshops über eines dieser Themen. Würden Sie mich erst gerne einmal in Aktion sehen? Werfen Sie einen Blick auf einen meiner Vorträge , um einen ersten Eindruck zu gewinnen! Gerne passe ich mich Ihren individuellen Bedürfnisse an - teilen Sie mir Ihre Wunschthemen mit und wir entwerfen gemeinsam eine Agenda.

Warum sollten Sie sich für mich entscheiden?

Ich bin fest überzeugt, dass das breite Spektrum meines Wissens und meiner Erfahrungen einen großen Beitrag zu Ihrer Sache leisten können. Sie brauchen jemanden, der einen Job schnell aber gleichzeitig sauber erledigt? Sie arbeiten gern mit Menschen zusammen, die bereit sind, ihre Fehler einzugestehen, und die jeden in Ihrem Unternehmen respektvoll behandeln, ungeachtet von Status und Funktion? Sie wissen leidenschaftliche Arbeit zu schätzen und mögen Personen, die Herausforderungen suchen? Falls Sie auf der Suche nach jemand sind, der all diese Qualitäten vereint, würde ich mich freuen, Sie mit meiner Arbeit überzeugen zu dürfen!

Statten Sie mir doch einen Besuch ab bei github , Stackoverflow oder werfen Sie einen Blick auf meinen Lebenslauf oder meinen Blog, um einen Eindruck von meiner Arbeit und meinen Interessen zu bekommen.