О компании «think-cell»

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 us

Thank you, think-cell, for sponsoring the Standard C++ Foundation and challenging our Microsoft compiler team with complex C++ code.

Herb Sutter, President of the Standard C++ Foundation

think-cell is a fast-paced software company in Berlin, Germany, with a focus on developing graphics products that stand out from the crowd. More than 900,000 users world-wide rely on our software for their daily business as it makes creating graphical presentations so much easier, faster and more enjoyable. Among our customers are many renowned consulting companies and large international corporations.

We do not have to make compromises with regard to code quality and beauty, because think-cell is profitable and has no outside investors. We are willing to go the extra mile of developing sophisticated algorithms and refining our user interface, and we are proud of our many happy customers. The fact that the company is owned and managed by seasoned computer scientists certainly contributes to a working environment that makes exceptional developers come and stay.

About our software

Our focus is on business slides (as opposed to more artful applications) because they offer great potential for 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.

Вакансии компании «think-cell»

Нет вакансий
У компании нет открытых вакансий
Оценки и отзывы сотрудников о компании «think-cell»
В этом году ещё никто не оценил эту компанию. Чтобы получить публичную оценку, нужно собрать минимум 10 голосов от сотрудников.
Награды компании
У этой компании пока нет наград
Откуда приходят в компанию
Philip Morris International
1 сотрудник
В какие компании уходят
Информация отсутствует
Фотографии офиса компании «think-cell»
Big a198af834afff946cf15c6458343571cBig ef83113a8225030a9a9e43663be2d4b5Big 4bc3bfe7d0db45f3e336242f0235db9eBig 49e465531ebd439a8c03ed7411f27c40Big 66fdb647f7adedef3d2b19f5fc627fadBig a9c57b9b6e163fd144fad65d738bf52aBig 5ff2cde71dc2e97052bc7945d4b053c3Big ab87303dcddc3ab165defaab7d80156eBig 4759618add82d90e9135a2952ce91fbfBig 301e67c512d4f348626067c3d2d33640Big af17af2b4ca63e5a13deb851969a0f1eBig 50ff06f98bf3058e44a90b72d60790f6Big 9722f8f488412b6cca079707d03c52cfBig 2828e5a90ea97c54a8f4b0d21a92aa3aBig cc182e97e35ed9fb1bda668a30ae0f74Big 6c1cc42272fc4298dd4c382847ffab8dBig 11962dd0f81798204c92ed730b72f534Big 9efe4cede527b584c1c64d788dd9b45dBig 471ba60044f3f6ddeb2f87cd4413a51b