Christoph Herrmann

Lead Software Developer

Joyn GmbH, München, Deutschland

Ich bin ein Node.js Entwickler, der sich mehr und mehr in Richtung moderne Webanwendungen durch verteilte Services bewegt.

Senior Game Developer

Spiele sind nicht nur ein großes Hobby von mir, sondern gehörten auch lange Zeit zu meinem Beruf dazu. Vor allem das Erstellen komplexer Spielmechaniken, die Atmosphäre in der Branche und die Unterhaltung von Spielern machen den Reiz der Spieleentwicklung für mich aus.

Senior Node.js Developer

Node.js ist für mich derzeit die Sprache mit dem größten Potenzial, der größten Effektivität in der Entwicklung und der zu mir passendsten Kultur. Daher fokusiere ich mich derzeit auch mehr auf Node.js, mache aber zwischendurch auch gerne JavaScript im Frontend.

Joyn

Als Lead Software Developer und Tech Lead habe ich die fachliche Verantwortung für das Content Discovery Team, welches für die Metadaten rund um unsere Inhalte sowie die Suche verantwortlich ist.

More Soon…

https://www.joyn.de/

maxdome

Als Mitglied im Frontend Team war ich für das Web Portal, den Blog und auch Clients wie dem Chromecast und dem neuen HTML5 Player verantwortlich. Neben der täglichen Arbeit bin ich vor allem auch technischer Verantwortlicher für die Einführung neuer Technologien wie Node.js und Application Performance Monitoring sowie Pate für größere Features wie dem Pause & Resume.

Als Node.js Entwickler war ich danach Teil des Teams zur Erstellung der Orchestration API um nicht nur Web sondern auch alle anderen Clients für den Relaunch an unser Redaktionssystem anzubinden und die übrigen Backend Services zu abstrahieren.

Ebenfalls arbeitete ich im onboard Projekt am Backend im ICE als auch die dazugehörige API auf maxdome Seite. Vor allem die speziellen Anforderungen an ein Zug Environment wie das Handling der Kombination lokaler Daten (Assetdaten und CMS Daten), Backend Anbindungen (Registrierung/Login und Assetbestellung) und Remote Services (Irdeto DRM Lizenzen) sowie das Error Handling, wenn die Verbindung im WiFi oder nach Außen nicht verfügbar ist, waren interessante Herausforderungen.

http://www.maxdome.de/

Grimfall

Als technischer Verantwortlicher für das Backend von Grimfall habe ich mich vor allem mit der Architektur des Anwendungsservers, der Datenbank und der API zum Smartphone/Tablet Client beschäftigt.

In meiner Freizeit habe ich während dieser Zeit mein PHP Framework DragonJsonServer entwickelt welches in diesem Projekt Verwendung fand.

BattleKnight

Während der Entwicklung des Redesigns in das vier Mann starke Entwicklerteam dazugestossen. Nach dessen Fertigstellung als alleiniger Entwickler weiterentwickelt und letztendlich als Teamleiter eines kleinen Entwicklungsteams zusammen mit mehreren anderen Spielen betreut war BattleKnight ein langer Begleiter meiner Laufbahn.

http://battleknight.de/

GenoData

Den Anfang meiner beruflichen Laufbahn habe ich als Auszubildender bei GenoData bestritten.

Vor allem die Nähe zu den Kunden, das hohe Maß an Qualität, Sicherheit und Performance aber vor allem auch die Erfahrungen mit Lua, die mein Herz für Skriptsprachen entflammt haben, haben mich auf meinen weiteren Weg vorbereitet.

http://www.genodata.de/

sql-pg

Mit den Engineering Guidelines von Joyn hab ich mich im Detail mit dem Thema befasst, wie man in Node.js mit Datenbanken arbeitet.

Ich habe das Thema erstmal aufgeteilt in die Bereiche Datenbanksysteme (PostgreSQL), Datenbanktreiber (node-postgres), Migrations (knex) und wie in einem Service Queries schreibt und ausführt.

Gerade dieser letzte Bereich wird derzeit nicht hinreichend unterstützt, man kommt schnell an die Grenzen, was einfache Handhabung, wenn es komplexere Anforderungen gibt (vor allem bei nativem SQL mit node-postgres), oder die Lesbarkeit (Queries bauen mit knex) angeht.

Aus dem Grund habe ich angefangen mich nach Alternativen umzuschauen, bin auf die SQL Tagged Template Literals gestoßen und hab mit diesen einen Query Builder gebaut, bei dem Sicherheit, Lesbarkeit und einfache Handhabung im Vordergrund stehen.

https://www.npmjs.com/package/sql-pg

"AI first" @ maxdome

Mein Ausflug in die Welt der Sprachassistenten mit Alexa und Google Home ist Erwachsener geworden. In Eigenregie hab ich dalexa-maxdome in eine Service Oriented Architecture überführt, Google Home angebunden, Alexa's kleines Feature 'Tägliche Zusammenfassung' mit 'maxdome - Tipp des Tages' als erster Skill dieser Art im Bereich 'Film & Fernsehen' veröffentlicht und alles zusammen als Artikel für den geplanten Pro 7 Tech Blog aufbereitet.

http://dragonprojects.de/ai-first-maxdome/

dalexa-maxdome

Neben Bots hat vor allem auch Google die Stunde der Sprachassistenten eingeläutet. Alexa ist das erste Produkt dieser Richtung von Amazon und ich habe dies zum Anlass genommen mehr in diesen Bereich zu schauen und einige Szenarios zur Content Discovery von maxdome entwickelt.

http://github.com/dragonprojects/dalexa-maxdome/

Screeps

Screeps ist ein sehr interessantes Spiel, ein MMO für Entwickler. Mich hat es gefesselt Skripte zu erstellen die mit jeder Iteration mehr Funktionalitäten bieten die im späteren Spielverlauf benötigt werden, aber auch mehr Flexibilität um sich verschiedenen Scenarien anpassen zu können. Und der Wuselfaktor seinen Creeps nach einer erfolgreichen Codingsession zuzuschauen motiviert einen am Ende über jeden Frustmoment hinweg.

http://github.com/dragonprojects/screeps.com/

maxdome Search Command

Bots sind die Zukunft, zumindest laut Facebook und Microsoft. Daher habe ich mich ein wenig damit befasst, wie man Chat Kommandos schreiben könnte und habe dies mit einem Kommando für die maxdome Suche ausprobiert. Dieses habe ich in Facebook, Slack und IRC durch kleine Wrapper Anwendungen integriert.

http://github.com/dragonprojects/mxd-search-command/

dqwixx

Qwixx ist ein wunderbares Würfelspiel. Allerdings waren wir bei unseren Spieleabenden zunehmend genervt vom Verschleiß der Spielblöcke und dem Ausrechnen der Punkte. Aus dem Grund habe ich einen digitalen Spielblock entwickelt für sämtliche Spielvarianten und per Phonegap auch als mobile Apps verfügbar gemacht.

http://dqwixx.dscores.de/

maxdome RSS-Feeds

Content Discovery war und ist immernoch ein großes Thema bei maxdome. Für mich privat habe ich dieses Thema durch RSS-Feeds gelöst, die mich über alle neu hinzugekommene Inhalte informieren. In dem Projekt habe ich mich vor allem auch detailierter mit Koa und Babel beschäftigt.

http://maxdome-rssfeeds.herokuapp.com/

dnode

DragonNode.js baute auf ein eigenes Framework mit eigener Modulstruktur auf. Am Anfang als gute Idee gehalten, hat sich doch nach einige Zeit gezeigt, dass der Standardweg durch die Bereitstellung von Express Middlewares deutlich flexibler ist. Daher hab ich alle von mir verwendeten Module refactored.

http://github.com/dnode/

DragonUniverse

Eine meiner privaten Spielwiesen um neue Möglichkeiten in der Webentwicklung auszuprobieren. Vor allem die Landingpage hat mir viel beigebracht über SEO und Facebooks Open Graph Tags. Aber auch durch das gesamte Projekt entwickle ich mich ständig weiter. Insbesondere das Thema "Wie entwickelt man eine moderne Webandung" habe ich mit dem Projekt zum Aufhänger einiger Exkurse und Tech Talks gemacht.

http://dragonuniverse.de/

DragonNode.js

Der Kern meiner Pakete die ich für Projekte mit Node.js verwendet habe. Damit habe ich mir privat eine kleine Sammlung an Modulen und Bundles erschaffen um meine privaten Projekte sehr effizient zu entwickeln und habe vor allem viel über modulare Entwicklung und serviceorientierte Architektur (SOA) gelernt.

http://github.com/dragonnodejs/

DragonJsonServer

Was als kleine Basis für Grimfall für die Kommunikation mit den Clients über eine JsonRPC Schnittstelle begann hat sich schnell zu einem modularen Framework mit umfangreichen Erweiterungen für die Spieleentwicklung entwickelt und lies mich meinen Spieltrieb bei der Entwicklung von Frameworks ausleben.

http://dragonjsonserver.de/