Softwareentwickler C++ (m/w/d)

think-cell


Über think-cell:
We are a fast-paced software company in Berlin, Germany, with a focus on developing graphics products that stand out from the crowd. More than 800,000 users world-wide rely on our software for their daily business as it makes creating graphical presentations so much easier, faster and more enjoyable. Among our customers are many renowned consulting companies and large international corporations.

Klingt spannend? Dann freuen wir uns auf eine aussagekräftige Bewerbung über unseren Partner Campusjäger by Workwise.

Unsere Software

Unser Schwerpunkt liegt auf kaufmännischen Präsentationen (im Gegensatz zu eher künstlerischen Anwendungsbereichen), da diese ein größeres Potenzial zur Automatisierung von Aufgaben bieten, die bislang in der Regel von PowerPoint-Anwendern selbst durchgeführt werden. Die Herausforderungen sind dabei zahlreich: von einem eingehenden Verständnis dazu, was ein gutes Layout ausmacht und welche Richtlinien bei der Erstellung eines Layouts beachten werden müssen, über Algorithmen, die akzeptable Ergebnisse liefern, die schnell genug für ein interaktives Foliendesign sind, und einer neuen grafischen Benutzeroberfläche, die unseren neuen, originellen Ansatz bezüglich des Folienlayouts leicht verständlich und reibungslos gestaltet, bis hin zu soliden technischen Lösungen für die automatisierte Fehlerberichterstattung und automatische Updates sowie der Kompatibilität mit Software von Drittanbietern auf den Computern von über einer halben Million Benutzern. Nachfolgend haben wir einige Highlights unserer Arbeit zusammengestellt. Sprache

  • Wir programmieren alles in C++. Selbst unser Kundenportal ist in C++ geschrieben. Der Glue Code wird gegebenenfalls in Assembler erstellt und unsere Build-Scripts sind in Python geschrieben, aber davon abgesehen geht es bei uns nur um C++.
  • Selbstverständlich verwenden wir C++ Funktionen wie Lambdas und R-Wert-Referenzen in unserer gesamten Codebasis. Und wir sind auf C++17 umgestiegen, wo unsere Compiler dies unterstützen.
  • 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 sponsern die Standard C++ Foundation und fördern so die Anwendung und das Verständnis von modernem Standard-C++ auf allen Compilern und Plattformen.

Bibliothek * Wir verwenden Boost in unserem gesamten Code, zum Beispiel Boost.Spirit für das Parsing. * Wir haben eine eigene Range-Bibliothek, die mit Boost.Range oder range-v3 von Eric Niebler vergleichbar ist, aber weiter geht als diese, indem z. B. externe und interne Iterationen vereinheitlicht werden. Zu diesem Thema haben wir einen Vortrag gehalten und der Großteil des Codes ist verfügbar. * Wir entwickeln unsere eigene plattformunabhängige Bibliothek zur Unterstützung von Windows und Mac auf einer gemeinsamen Codebasis. * Wir haben unsere eigenen Reference-Counting- und Persistenzbibliotheken, um ganze Objektstrukturen zu speichern und wiederherzustellen. * 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.

Algorithmen * Unser Unternehmen wurde mit dem Ziel gegründet, einen Algorithmus für ein automatisches Folienlayout zu entwickeln, und bis zum heutigen Tag befinden wir uns auf einer aufregenden Reise, um diese ambitionierte Vision zu erreichen. Hier siehst Du unsere neueste Version in Aktion! * Wir haben einen neuen Algorithmus für die automatische Beschriftung von Punktwolken entwickelt, der es 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. * Unsere Software erstellt nicht nur Diagramme, sie ist auch in der Lage, diese vom Blatt zu lesen. Für unser Tool zur Diagrammerkennung verwenden wir OpenCV und die Leptonica Image Processing Library.

Reverse Engineering * Wir nutzen häufig das Reverse Engineering mit dem Disassember IDA von Hex-Rays um Dinge zu erreichen, die über die dokumentierte API von Microsoft Office nicht möglich sind. * 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. Anstelle von fest codierten Patch-Adressen suchen wir nach kurzen Abschnitten von Assembler-Code, um robust gegenüber kleinen Code-Änderungen in den Binärdateien zu sein.

Über diesen Job

Wir suchen intelligente, kreative Entwickler mit soliden theoretischen Kenntnissen. Fast alle unsere Entwickler haben einen überdurchschnittlich guten Master-Abschluss oder eine Promotion im Fach Informatik. Du wirst größtenteils selbständig arbeiten und bist bei der Implementierung einer neuen Funktion für den gesamten Prozess zuständig. Du solltest Probleme aus der Benutzerperspektive sehen und abstrakte Konzepte mit anderen Entwicklern erörtern können. Wir erwarten von allen unseren Entwicklern, dass sie selbstständig in den Bereichen Architektur, Design, Implementierung, Kundenfeedback und Fehlerbehebung arbeiten, anstatt diese Tätigkeiten auf mehrere Mitarbeiter aufzuteilen. Daher überlassen wir jedem die volle Kontrolle über seine Arbeit.

Unser Angebot

  • Ein breites Spektrum an besonders spannenden Aufgaben in der C++-Entwicklung
  • Ein internationales Team brillanter Köpfe
  • Eine Arbeitsumgebung, in der das Team sich wohlfühlt und beständig wächst
  • Genug Zeit, um sicherzugehen, dass Deine Lösung bis ins kleinste Detail stimmt
  • Flache Hierarchien und genug Raum für Deine Ideen
  • Keine angesetzten Meetings
  • Familienfreundliche Arbeitszeiten, keine Deadlines, keine Überstunden
  • Unterstützung beim Umzug
  • Von Beginn an eine wettbewerbsfähige Vergütung und eine Gehaltserhöhung auf 120.000 EUR Jahresgehalt nach nur einem Jahr

Unser Jobangebot Softwareentwickler C++ (m/w/d) klingt vielversprechend? Dann freuen wir uns auf eine Bewerbung über Campusjäger by Workwise.

Bei unserem Partner Campusjäger by Workwise kann man sich in nur wenigen Minuten ohne Anschreiben für diesen Job bewerben und den Status der Bewerbung live verfolgen.

Stellenangebot in: Berlin