Designation: C++ Developer
Location: Berlin, Germany
Here is what we offer in a nutshell:
* 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++.
* Naturally, we use C++ features like lambdas and rvalue references throughout our codebase, and have switched to C++17 where our compilers support it.
* 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.
* 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.
* 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, but it is also able to read them back from the paper. For our chart recognition tool, we rely on OpenCV and the Leptonica Image Processing Library.
* 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. At each start of our software, we patch the Microsoft Office executable in memory. Rather than hard-coding patch addresses, we search for small chunks of assembly code to be robust against minor changes in the executable.
Required Candidate profile
Our Client Computer Software Company headquartered based out of Berlin, Germany, founded in April 2002. They are into powerful charting & layout software that automates PowerPoint work and such improves slide creation efficiency and quality
Simple body text this will replace with orginal content