Relocate. Ми з України
Post Jobs
Countries

Select a Country

Australia

Austria

Belgium

Canada

Denmark

Estonia

Finland

Germany

Ireland

Japan

Netherlands

Singapore

Spain

Sweden

United Kingdom

United States

blog

Blog

Expat Stories Visas & Immigration Money & Taxes Working Abroad

Read our blog

Visas Taxes Salaries Cost of Living Relocation Companies Jobs
Blog
Expat Stories Visas & Immigration Taxes & Money Working & Money Read our blog
Post Jobs
Menu
  • Home
  • International Jobs in Germany
  • C++ Developer

C++ Developer

Berlin, Germany

think-cell

think-cell logo

Advanced relocation package

Adaptation tips
Adaptation tips
Flight ticket
Flight ticket
Money for moving expenses
Money for moving expenses
Temporary housing
Temporary housing
Housing search assistance
Housing search assistance
Visa services
Visa services
Rental deposit coverage
Rental deposit coverage

About think-cell

think-cell is the leading developer of graphics software to improve professional slide production in Microsoft PowerPoint. Our software automates the creation of charts and layouts to make working with PowerPoint easier, faster, and more enjoyable.

We have published 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 relationships with universities and research institutes in the U.S. and Germany.

Position

We are looking for smart, creative developers with a solid theoretical background. Developers we have hired in the past mostly hold an exceptional master's degree in computer science or even a doctorate. You will work largely independently and will be responsible for the whole range of activities when implementing a new feature. You should be able to look at a problem from the user's perspective and discuss abstract concepts with fellow developers. We expect each of our developers to do architecture, design, implementation, customer feedback and bug fixing, rather than splitting these activities between several people. We thus put everyone in control of their own work.

At think-cell, there are no deadlines, and no scheduled meetings. A feature is ready to be released when you are convinced that you have implemented the best possible solution. Meetings take place as needed, with only the people that are actually involved being required to be present. At any time in the process, ideas, suggestions and criticism from anybody in the hierarchy is welcome and is seriously considered. 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 relationships with universities and research institutes in the U.S. and Germany.

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 when 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. If necessary, 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. While you should be able to communicate effectively in English, knowing German is not required. German language courses can be arranged, if desired.

What we offer

  • A wide array of extremely challenging C++ development tasks
  • An international team of brilliant minds
  • A working environment that makes this team stay and grow
  • Enough time to make sure that every detail of your solution is perfect
  • A flat organization and plenty of room for your ideas
  • No scheduled meetings
  • Family-friendly working hours, no deadlines, no overtime
  • Support for relocation

Additional details

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++
  • Naturally, 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 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

Engineer Developer Software Backend Programmer Web Back-end Software Developer Software Engineer Web Developer С++ Web Applications С++14 С++11
Archive vacancy
Archive vacancy
Facts about Berlin
Cost of Living Index 61 /100
Median for apartment
rent in city centre
(1-3 bedroom) $ 1259 - $ 2383
Safety Index 55 /100
Check if your resume is a good fit
25/100
Get Full Report Arrow right
These jobs may fit you

Germany

Verimi

Software Architect in Berlin
logo

As a software architect (d/m/w), you will be responsible for the architecture of our products. You will support our product and development teams w...

Relocate. Ми з України

Relocation made easy: country guides, visa overviews, tax calculators, and more – Relocate.me has everything you need in one place.

Resources

Blog Webinars Visas Taxes Cost of living Salaries Healthcare Relocation companies

For job seekers

Browse international jobs Companies hiring International job search guide

For employers

Post jobs Global hiring guide

Legal

Privacy policy Terms of service

Newsletter

Curated tech jobs and content for relocation seekers

Subscribe

© 2024 Relocate.me | All Rights Reserved

Proudly built by Ukrainians 🇺🇦

Jobseeker Login

Create a Jobseeker account to apply for jobs.

Forgot password?

Or
Register
Login
Continue with Google Continue with LinkedIn
Back to Login
Jobseeker Register

Create a Jobseeker account to apply for jobs.

Or
Continue with Google Continue with LinkedIn

Check your email and follow the instructions to restore access to your account

Restore access