C++ Entwickler/in gesucht
“Beauty is the ultimate defense against complexity.”
Strebst Du nach struktureller Schönheit und Eleganz, wenn es um Programmierung geht? Bezweifelst Du die Nützlichkeit eines Schlipses bei der Softwareentwicklung? Bist Du fit in C++? Falls ja, würden wir Dich gerne kennenlernen.
Über unsere Software
Seit 2002 entwickelt think-cell Grafiksoftware, die professionellen Excel- und PowerPoint-Nutzern die aufwendige Arbeit an datengetriebenen Folien erleichtert. Die Erstellung von PowerPoint-Folien ist unter professionellen Nutzern eine der häufigsten Tätigkeiten am Computer. Umso erstaunlicher ist es, dass sich Bürosoftware in den letzten Jahren kaum weiterentwickelt hat, während gleichzeitig intelligente Software Routinevorgänge wie die Suche in Browsern oder die telefonische Spracherkennung in Call-Centern revolutioniert hat.
Algorithmik-Highlights
- Wir haben einen neuen Algorithmus für die automatische Beschriftung von Punktwolken entwickelt, der auch die entfernte Beschriftung von Punkten erlaubt.
- Wir haben einen neuen Algorithmus für die automatische Beschriftung von Säulendiagrammen entwickelt.
- Wir arbeiten mit John Forrest – dem Entwickler des Linearen Solvers CLP – zusammen, um seinen Simplex-Code für unsere Problemklassen schneller zu machen.
- Wir haben eine ganze Reihe generischer Datenstrukturen implementiert, die sich nicht in den Standardbibliotheken von C++ und Boost finden, zum Beispiel Partitionen.
Hacking-Highlights
- Einige unserer Interaktionen sind mit der dokumentierten Programmierschnittstelle von Microsoft Office nicht möglich. Darum betreiben wir intensiv Reverse Engineering mit dem Disassembler IDA from Hex-Rays.
- Wir haben die wahrscheinlich beste Bibliothek für das Function Hooking geschrieben. Bei jedem Start unserer Software patchen wir die Microsoft-Office-Ausführungsdateien direkt im Speicher. Statt fest codierte Patch-Adressen zu verwenden, suchen wir nach kurzen Abschnitten von Assembler-Code, um den Patch-Prozess robust gegen kleinere Code-Änderungen zu machen.
- Wir leiten den Fensterinhalt von PowerPoint und Excel in einen Offscreen-Buffer um und benutzen dann Direct3D 9.0, um unsere Benutzeroberfläche darüber zu zeichnen.
Weitere Highlights
- Wir tragen zur Finanzierung des Arbeitsausschusses Programmiersprachen des Deutschen Instituts für Normung (DIN) bei. Einige unserer Mitarbeiter sind Mitglieder dieses Ausschuss und im internationalen Standardisierungsprozess von ISO/IEC C++ abstimmungsberechtigt.
- Wir sind bereits an vielen Stellen auf C++11 Funktionalität umgestiegen; vor allem nutzen wir Lambdas und RValue-Referenzen.
- Wir benutzen Boost in unserem gesamten Code, zum Beispiel in den meisten Fällen Boost.Spirit als Parser.
- Wir haben unsere eigenen Reference-Counting- und Persistenzbibliotheken, um ganze Objektbäume speichern und laden zu können.
- Wir haben einen Parser und Erzeuger für das Excel-XLS-Format geschrieben.
- Wir besitzen eine umfangreiche Infrastruktur für Fehlerberichte. Zustands- und Fehlertests verbleiben im ausgelieferten Code, und die Software meldet Fehler automatisch an unseren Server. Der Server analysiert den Fehler, kategorisiert ihn und speichert ihn in einer Datenbank, die alle Entwickler abfragen können. Wenn ein Update einen Fehler beseitigt, kann der Benutzer dieses Update direkt von einer Fehlerantwortseite herunterladen.
Deine Aufgabe
Wir suchen intelligente, kreative Entwickler mit einem soliden theoretischen Hintergrund. Du solltest Probleme aus der Perspektive des Nutzers sehen, abstrakte Konzepte mit anderen Entwicklern besprechen und die Implementierung umsetzen können. Fast alle unsere Entwickler haben einen überdurchschnittlichen Universitätsabschluss oder sogar einen Doktortitel im Fach Informatik.
think-cell setzt auf flache Hierarchien. Du arbeitest größtenteils selbständig und bist bei der Implementierung einer neuen Funktion für den gesamten Prozess zuständig. Zu den Aufgaben eines Entwicklers gehören bei uns Architektur, Design, Implementierung, Kundenfeedback und Fehlerbehebung. Der Prozess wird nicht auf mehrere Personen aufgeteilt. So vermeiden wir Kommunikationsverluste und sorgen dafür, dass jeder für seine Projekte selbst verantwortlich ist. Deine Ideen sind uns wichtig – selbst wenn umfangreiche Code-Änderungen erforderlich sind, um Deine Vorschläge zu implementieren.
Wir haben in der Vergangenheit verschiedene wissenschaftliche Artikel und Patente in den Bereichen Künstliche Intelligenz und Computergrafik veröffentlicht, wozu wir auch Dich ermutigen möchten. Wir finanzieren Konferenzbesuche und unterhalten enge Beziehungen zu Universitäten und Forschungseinrichtungen in den USA und in Deutschland.
Über think-cell
Mehr Information über uns und unsere Arbeitsumgebung findest Du auf unserer Karriereübersichtsseite.
Interesse?
Wenn Du unser Team bereichern möchtest, dann sende bitte Deine elektronische Bewerbung an unsere Personalabteilung.

