C++ Developer (m/w)

C++ Developer (m/w) gesucht
Ort: Berlin

Beauty is the ultimate defense against complexity.

David Gelernter

Strebst Du nach struktureller Schönheit, wenn es um Programmierung geht? Hast Du ein lebhaftes Interesse an eleganten Algorithmen? Beherrschst Du 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 der Erstellung datengesteuerter Folien erleichtert. Das Erstellen von PowerPoint-Folien ist bei Fachleuten eine der häufigsten Tätigkeiten am Computer. Umso erstaunlicher ist es, dass sich Bürosoftware im letzten Jahrzehnt kaum weiterentwickelt hat, während intelligente Software alltägliche Vorgänge wie die Suche in Browsern oder die telefonische Spracherkennung in Call-Centern revolutioniert hat.

think-cell hat es sich zum Ziel gesetzt, dies zu ändern. Wir unterscheiden uns von anderen Anbietern von Präsentationssoftware, weil wir uns die Mühe machen, komplexe Algorithmen zu entwickeln und die Benutzeroberfläche zu optimieren, weshalb Benutzer so zufrieden mit unserer Software sind. Nachfolgend haben wir einige Highlights unserer Arbeit zusammengestellt.

Algorithmische Highlights

  • Wir haben einen neuen Algorithmus für die automatische Beschriftung von Punktwolken entwickelt, der es zudem ermöglicht, die Beschriftungen entfernt von den Punkten zu positionieren.
  • Wir haben einen neuen Algorithmus für die automatische Beschriftung von Säulendiagrammen entwickelt.
  • Wir arbeiten mit John Forrest, dem Verfasser des Linearen Solvers CLP, zusammen, um seinen Simplex-Code für unsere gegenwärtigen Probleme schneller zu machen.
  • Wir haben mehrere allgemeine Datenstrukturen entwickelt, die nicht in C++ oder Boost zu finden sind, 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 von Hex-Rays
  • Wir haben das wahrscheinlich beste Modul für das Function Hooking geschrieben. Bei jedem Start unserer Software patchen wir die ausführbaren Dateien von Microsoft Office im Speicher. Wir suchen nach kurzen Abschnitten von Assembler-Code anstelle von fest codierten Patch-Adressen, um robust gegenüber kleinen Code-Änderungen zu sein.
  • Wir leiten die Fensterinhalte von PowerPoint und Excel in einen Hintergrundpuffer um und nutzen Direct3D 9.0, um unsere Benutzeroberfläche damit zu zeichnen.

Weitere Highlights

  • Wir finanzieren die Arbeitsgemeinschaft für Programmiersprachen des Deutschen Instituts für Normung (DIN). Einige unserer Mitarbeiter sind Mitglied dieses Ausschusses und im internationalen Standardisierungsprozess von ISO/IEC C++ wahlberechtigt.
  • Wir sind bereits in vielen Bereichen auf C++11-Funktionalität umgestiegen, insbesondere bei Lambdas und R-Value-Referenzen.
  • Wir verwenden Boost in unserem gesamten Code, zum Beispiel Boost.Spirit für das Parsen.
  • Wir haben unsere eigenen Reference-Counting- und Persistenzbibliotheken, um ganze Objektstrukturen zu speichern und wiederherzustellen.
  • Wir haben einen Parser und Writer für das Excel-Format .xls geschrieben.
  • Wir besitzen eine umfangreiche Infrastruktur für Fehlerberichte. Assertions- und Fehlerprüfungen bleiben im freigegebenen Code und unsere Software meldet Fehler automatisch an unseren Server. Der Server analysiert den Fehler, kategorisiert ihn und speichert ihn in einer Datenbank, auf die alle Entwickler Zugriff haben. Wird der Fehler durch ein Update behoben, kann der Benutzer dieses Update direkt von einer Fehlerantwortseite herunterladen.

Über diesen Job

Wir suchen intelligente, kreative Entwickler mit soliden theoretischen Kenntnissen. Du solltest Probleme aus der Benutzerperspektive sehen, abstrakte Konzepte mit anderen Entwicklern erörtern und die Implementierung elegant umsetzen können. Fast alle unsere Entwickler haben einen überdurchschnittlich guten Master-Abschluss oder eine Promotion im Fach Informatik.

Bei think-cell legen wir Wert auf flache Hierarchien. Du wirst größtenteils selbstständig arbeiten und bist bei der Implementierung einer neuen Funktion für den gesamten Prozess zuständig. Wir erwarten von allen unseren Entwicklern, dass sie selbstständig in den Bereichen Architektur, Design, Implementierung und Fehlerbehebung arbeiten, anstatt diese Tätigkeiten auf mehrere Mitarbeiter aufzuteilen. So minimieren wir Kommunikationsverluste und sorgen dafür, dass jeder für seine Projekte selbst verantwortlich ist. Wir schätzen Deine Ideen, auch wenn umfangreiche Code-Änderungen vorgenommen werden müssen, um Deine Vorschläge zu implementieren.

Wir haben einige wissenschaftliche Artikel in den Bereichen Künstliche Intelligenz und Computergrafik veröffentlicht, wozu wir auch Dich ermutigen werden. Wir finanzieren Konferenzbesuche und pflegen enge Beziehungen zu Universitäten und Forschungseinrichtungen in den USA und in Deutschland.

think-cell fördert eine gesunde Work-Life-Balance ohne Abend- oder Wochenendarbeit. Gern unterstützen wir die Familien unserer Mitarbeiter außerdem mit einem vom Unternehmen gestellten Vollzeit-Kindermädchen. Sie hilft kostenlos aus, wenn Deine Kinder krank sind oder Du einfach gerne mal abends ausgehen möchtest.

Wir bieten sehr attraktive Gehälter und zahlen unseren Entwicklern nach einem Jahr Unternehmenszugehörigkeit ein Jahreseinkommen von 120.000 Euro. Falls notwendig, werden wir darüber hinaus unser Möglichstes tun, um Dich bei Deinem Umzug nach Berlin und beim Erhalt einer Arbeitserlaubnis zu unterstützen.

Interessiert?

Wenn Du unser Team bereichern möchtest, sende uns bitte Deine Bewerbung per E-Mail.

Jetzt per E-Mail bewerben

Du möchtest mehr erfahren?

Falls Du Fragen zur Arbeit bei think-cell, unseren Stellenangeboten oder Events hast, wende Dich bitte an unsere Kollegin Annika Klauske.

hr@think-cell.com
+49 30 666473-10