C++ Developer
C++ developer position (90 000 – (Apply online only) euro per year)
Remote OR Berlin (Sponsorship Considered) – You will be required to pass a technical C++ test as part of the interview process.
Position description
* Location: Berlin, Germany or Worldwide remote
* Position: full-time
* Number of vacancies: 5-10 employees
* Salary: (phone number removed) € gross per year, after the 1st year – (Apply online only) € guaranteed
* Team size: 20 developers reporting directly to CTO
* Sourcing locations for candidates: everywhere in the world
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 and 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
We were 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.
*
* We will support with the relocation and work permit if needed for those who want to work in Berlin. Relocation is possible within 12 month after candidate gets the JO
*
* In case of remote work: person has to work from countries which are not under world sanctions
We are looking for smart, creative developers with a solid theoretical background. Our team of developers consists of those with 15+ years of commercial experience in various fields, to fresh graduates in Computer Science, Physics and Mathematics. A university degree or work experience with C++, together with a fresh and creative problem-solving approach would be an excellent combination for this role. As all our recruitment steps are task-based, the selection is based on the skills demonstrated during our tests.
About the company
The company was established in 2002 and now has over 50 employees from 17 countries. We are the leading data visualization software for business presentations. Our challenge is to offer the most intuitive user interface for generating complex data-driven charts and slides, while at the same time ensuring consistency, accuracy and seamless integration with Microsoft Office. We save time for our customers by automating many tasks for them, like chart labeling or slide layout. More than 950,000 users worldwide (such as American Express, Coca-Cola, Deloitte Consulting, Ernst & Young, Google, Hewlett-Packard, Nokia, Porsche Consulting, etc.) rely on our software for their daily business.
We work on challenging visualization problems, reverse engineering of Microsoft’s code, and reinventing the user interface. And we do this all based on our own pioneering C++ library, which we have the liberty to perfect along with the rest of our code. We arethe only German company funding a C++ ISO committee delegation, so there is a good chance that components we invent will find their way into the standard