C++ software developer
Location: Berlin, Germany (Relocation is on us!)
Do you believe in beauty when it comes to programming? Do you enjoy elegant algorithms and high quality code? If so, we would like to meet you.
And as great software engineers are hard to find, we offer our developers a raise to EUR 120,000 annually after only one year of employment.
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.
- 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.
- To do things that 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.
- 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 use C++11 features like lambdas and rvalue references throughout our codebase, and have switched to C++14 where our compilers support it.
- We use Boost throughout our code, e.g., Boost.Spirit for most of our parsing needs.
- We wrote our own ranges library (similar to boost::range, but with less overhead). Check out the talk by Arno and get the code.
- 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.
About this job
We are looking for smart, creative developers with a solid theoretical background. You should be able to look at a problem from the user's perspective, discuss abstract concepts with fellow developers, as well as produce an elegant implementation. Developers we have hired in the past mostly hold an exceptional master's degree in computer science or even a doctorate.
At think-cell, we like flat hierarchies. You will work largely independently and will be responsible for the whole range of activities when implementing a new feature. We expect each of our developers to do architecture, design, implementation and bug fixing, rather than splitting these activities between several people. We thus minimize communication losses and put everyone in control of their own work. Your ideas are welcome, even if they mean that we have to change a lot of code to make things better.
We have published several scientific articles in the areas of Artificial Intelligence and Computer Graphics and we will encourage you to do the same. We sponsor visits to conferences and have close connections to universities and research institutes in the U.S. and Germany.
More than 500.000 users worldwide rely on our software for their daily business as it makes creating PowerPoint presentations so much easier, faster, and more enjoyable. Among our customers are many renowned consulting companies and large international corporations.
think-cell was founded and is still managed by two computer scientists. We know what our employees need to enjoy their work and create great software. Most likely due to our academic roots, we are flourishing without program managers, meetings, and (of course) ties.
We follow our own strategy and do not have to make compromises with regard to code quality and beauty, because think-cell is highly profitable and has no outside investors. Our leasing licensing model leads to continuous feedback and improvement. Rushed, marketing-driven deadlines are unknown because we only release the software when it is ready.
think-cell encourages a healthy work-life balance. We do not work at night or on weekends, and support our staff's families with a full-time company nanny. She is available for free when children are sick, or if you just feel like spending an evening out.
We pay very competitive salaries, and offer our developers EUR 120,000 annually following one year of employment. We will go out of our way to help you relocate to Berlin, and will do what we can to help you acquire a work permit if necessary.
Find out more about our company and our working environment on our career website.
Do you think that you would be a good fit for our team? If so, please send your English or German CV - no cover letter necessary - to firstname.lastname@example.org by clicking the following button: