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.
About our software
Since 2002, think-cell produces graphics software
that performs most of the painstaking work of creating data-driven slides for professional Excel and PowerPoint users. PowerPoint slide creation is one of the most popular things professionals use a computer for. Thus, it is rather surprising that while intelligent software revolutionized many things we frequently do, such as web search in our browser, or telephone speech recognition in a call center, office productivity software has not changed much over the past decade or so. think-cell is out to change this. We stand out from the crowd of other presentation software because we are willing to do the leg work of developing sophisticated algorithms and refining our user interface, which makes working with our software so satisfying for our users. Here are some highlights of what we have done:
Algorithmic highlights
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 quite a few generic data structures that are not in C++ or Boost, for example partitions.
Hacking highlights
To do things which are not possible via the documented Microsoft Office API, we do lots of reverse engineering with the disassembler IDA from Hex-Rays. We wrote probably the best function hooking engine out there. On each start of our software, we patch the Microsoft Office executables in memory. We search for small chunks of assembly
code rather than hard-coding patch addresses to be robust against minor code modifications. We redirect PowerPoint's and Excel's window contents into offscreen buffers and use Direct3D 9.0 to render our user interface on top.
Other highlights
We fund the working group for programming languages of the German Institute for Standardization (DIN). Some of our
employees are members in this committee and vote in the international standardization process of ISO/IEC C++. We have already switched to C++11 functionality in many places, in particular lambdas and rvalue references. We use Boost throughout our code, e.g., Boost.Spirit for most of our parsing needs. We have our own reference-counting and persistence libraries to save and restore whole object trees. We wrote a parser and writer for the Excel .xls format. 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.
تفاصيل الوظيفة
2014-12-08 | تاريخ الإعلان عنها: |
ألمانيا | منطقة الوظيفة: |
الهندسة | الدور الوظيفي: |
تكنولوجيا المعلومات | قطاع الشركة: |
المرشح المفضل
متوسط الخبرة | المستوى المهني: |
تقدم الآن -
وظائف في ألمانيا
-
بحث عن جميع الوظائف