Do you believe in beauty when it comes to programming?
Do you have a vivid interest in elegant algorithms?
Are you fluent in C++? If so, we would like to meet you.
Here is what we offer in a nutshell:
- A wide array of extremely challenging C++ development tasks
- An international team of brilliant minds
- A working environment that makes this team stay and grow
- Enough time to make sure that every detail of your solution is perfect
* Remote position is open exclusively to candidates residing and working within the time zones of UTC-1 to UTC+4.
Tasks
Highlights of the role:
- We use the latest C++ features as soon as the compilers support them.
- We take the time to deliver perfect code. We love refactoring and modernizing old code.
- We prefer functional-style generic algorithms and ranges over imperative programming.
- We’re not afraid of advanced template metaprogramming or macros when they avoid code duplication or lead to cleaner, more readable code.
- We constantly introduce and improve our own libraries that go far beyond what the standard
library has to offer.
- If we have done something cool, we talk about it at C++ conferences.
- If we are missing a C++ language feature, we write a proposal and present it to the
C++ standard committee.
Requirements
About our software:
Our focus is on business slides (as opposed to more artful applications) because they offer great potential for the automation of layout tasks that are traditionally performed by PowerPoint users themselves. Challenges are plenty: from a solid understanding of what makes a good layout and which guidelines are followed by humans who do manual layout, to algorithms that produce an acceptable output fast enough for interactive slide design, to a graphical user interface that supports our new, original approach to slide layout in a way that is easy to understand yet unobtrusive, to solid technical solutions for automatic bug reporting and automatic updates, to compatibility with third-party software on the computers of half a million users.
Here are some highlights of what we have done.
Language
- Everything we do is C++. Even our customer portal is written in C++. There is some Assembler glue code where it is necessary, and our build scripts are written in Python, but other than that think-cell is all about C++.
- We closely track the latest versions of our compilers, Visual C++ and Xcode, so we can always use the latest C++ standard features as soon as they become available.
- We fund the working group for programming languages of the German Institute for Standardization (DIN). Some of our employees are members of this committee and vote in the international standardization process of ISO/IEC C++.
- We sponsor the Standard C++ Foundation helping them to promote the understanding and use of modern Standard C++ on all compilers and platforms.
Library
- We use Boost throughout our code, e.g., Boost.Spirit for parsing.
- We have our own range library, in the same spirit as Boost.Range or Eric Niebler’s range-v3, but going further, for example, by unifying internal and external iteration. We gave a talk about it, and most of the code is public.
- We develop our own cross-platform library to support Mac and Windows with a single code base.
- We have our own reference-counting and persistence libraries to save and restore whole object trees.
- We have an extensive bug reporting infrastructure. Assertions and error checks stay in the release code, and our software automatically reports bugs to our server. The server analyzes the bug, categorizes it and files it in a database that all developers can access. If an update fixes the bug, the user can download the update directly from a bug response web page.
Algorithms
- think-cell was founded on the idea for an algorithm for automatic slide layout, and we are still on an exciting journey towards that ambitious vision. You can see our most recent release in action!
- We developed a new algorithm for automatic point cloud labeling that allows labels to be positioned away from the actual points.
- We developed a new algorithm for automatic column chart labeling.
- We are working with John Forrest – author of the linear solver CLP – to make his simplex code faster on our kind of problems.
- We developed many generic data structures that are not in C++ or Boost, for example partitions.
- Our software not only produces charts, it is also able read them back from paper. For our chart recognition tool, we rely on OpenCV and the Leptonica Image Processing Library.
Reverse Engineering
- We do lots of reverse engineering with the disassembler IDA from Hex-Rays, in order to achieve things that are not possible via the documented Microsoft Office API.
- We wrote probably the best function hooking engine out there. On each start of our software, we patch the Microsoft Office executables in memory. Rather than hard-coding patch addresses, we search for small chunks of assembly code to be robust against minor changes in the executables.
Benefits
- A highly competitive salary from the start and a raise to EUR 130,000 annually after only one year.
- Support with relocation to Berlin and an apartment for the first month.
- Option to work fully remotely.
- Lifestyle-friendly working hours, no deadlines, no overtime!
- No scheduled meetings.
- An international team of brilliant minds.
- A flat organization with respectful colleagues and plenty of room for your ideas.
- A working environment that is driven by the strive for excellence.
Does that sound good to you?
If you are the one missing from our team then please send us your application. After you submit your application, we will email you shortly. Please follow the instructions from our email.
About the company
think-cell is the world’s leading productivity software for creating data-driven presentations in Microsoft PowerPoint, enabling users to generate sophisticated charts with ease while saving substantial time (based on a study, users save as much as 70% of their time compared to using native PowerPoint functionality). think-cell also offers layout functions for automatically arranging text, graphic elements, and images while scaling and aligning their content accordingly.
Our software has more than a million users across 25,000+ organizations globally. think-cell is used by 10 out of the 10 top global consulting firms, 89% of the Fortune 100, the entire DAX 40, and taught at 9 of the top 10 US business schools.
Tags
Apply to job