Перевод: We are looking for smart, creative developers with
Перевод: 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.
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.
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. 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.
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.
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 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.
Other highlights
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 have our own range library, in the same spirit as Boost.Range or Eric Nieblers 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 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.
Interested?
If you are the one missing from our team, then we look forward receiving your electronic application!
Мы отыскиваем разумных, творческих разработчиков с прочной теоретической базой. Вы обязаны иметь возможность взглянуть на делему с точки зрения пользователя, обсудить абстрактные концепции с иными разработчиками, а также сделать элегантную реализацию.
В мозговой ячейке нам нравятся плоские иерархии. Вы будете работать в веской ступени самостоятельно и будете отвечать за весь диапазон деяний при реализации новейшей функции. Мы ждём, что каждый из наших разработчиков будет исполнять архитектуру, дизайн, реализацию и исправление ошибок, а не делить эти деяния меж несколькими людьми. Таким образом, мы минимизируем потери связи и ставим всех под контроль своей работы. Ваши идеи приветствуются, даже если они означают, что нам необходимо поменять много кода, чтоб сделать лучше ситуацию.
think-cell поощряет здоровый баланс меж работой и жизнью. Мы не работаем по ночам либо по выходным денькам, а также поддерживаем семьи наших служащих штатной няней. Она доступна безвозмездно, когда детки больны, либо если вам просто охото провести вечер.
Мы выплачиваем очень конкурентоспособные зарплаты и предлагаем нашим разработчикам 120 000 евро ежегодно после 1-го года работы. В случае необходимости мы будем идти по пути, чтоб посодействовать вам переехать в Берлин, и сделаем все вероятное, чтобы посодействовать вам получить разрешение на работу.
О нашем программном обеспечении
Мы фокусируемся на бизнес-слайдах (в отличие от более хитроумных прибавлений), так как они предоставляют большой потенциал для автоматизации задач сборки, которые традиционно производятся самими пользователями PowerPoint. Трудностей много: от глубокого осознания того, что делает хороший макет, и с какими управляющими принципами следуют люди, которые делают ручную сборку, алгоритмам, которые обеспечивают приемлемый выход, довольно быстрый для интерактивного дизайна слайдов, к графическому пользовательскому интерфейсу, который поддерживает наши новые, оригинальный подход к макету слайдов таким образом, который просто осознать, но ненавязчив, для надежных технических решений для автоматической регистрации ошибок и автоматических обновлений, для сопоставимости с посторонним программным обеспечением на компьютерах из полумиллиона юзеров.
Вот некоторые моменты того, что мы сделали.
Алгоритмические необыкновенности
Мы разработали новый метод автоматической маркировки облаков точек, который дозволяет располагать ловки вдалеке от фактических точек.
Мы разработали новый метод автоматической маркировки столбцов.
Мы работаем с Джоном Форрестом - творцом линейного решателя CLP - чтоб сделать его симплексный код прытче по нашим типам заморочек.
Мы разработали достаточно много общих структур данных, которые не находятся в C ++ либо Boost, к примеру, в разделах.
Взломы
Чтоб сделать что-то невероятное через документированный API Microsoft Office, мы делаем много оборотной инженерии с дизассемблером IDA от Hex-Rays.
Мы написали, возможно, наилучший механизм подбора функций. При каждом запуске нашего программного обеспечения мы поправляем выполняемые файлы Microsoft Office в памяти. Мы ищем небольшие фрагменты кода сборки, а не жесткие коды патчей, чтоб быть надежными в отношении малозначительных модификаций кода.
Мы перенаправляем содержимое окна PowerPoint и Excel в offscreen buffers и используем Direct3D 9.0 для отображения нашего пользовательского интерфейса сверху.
Иные главные моменты
Мы финансируем рабочую группу по языкам программирования Германского института стандартизации (DIN). Некие из наших служащих являются членами этого комитета и участвуют в международном стандартизации ISO / IEC C ++.
Мы используем функции C ++ 11, такие как lambdas и rvalue, на всей нашей кодовой базе, и переключились на C ++ 14, где наши компиляторы поддерживают его.
Мы используем Boost по всему нашему коду, например Boost.Spirit, для большинства наших потребностей синтаксического анализа.
У нас есть собственная библиотека диапазонов в том же духе, что и Boost.Range либо Eric Niebler's range-v3, но далее, к примеру, путем соединения внутренней и наружной итераций. Мы поговорили об этом, и великая часть кода является доступной.
У нас есть собственные библиотеки подсчета и сохранения для сохранения и возобновления целых деревьев объектов.
Мы писали парсер и писатель для формата Excel .xls.
У нас есть обширная инфраструктура отчетности об оплошностях. Утверждения и проверки ошибок остаются в коде выпуска, и наше программное обеспечение автоматом извещает об оплошностях на нашем сервере. Сервер анализирует ошибку, систематизирует ее и записывает в базу данных, доступную всем разработчикам. Если обновление поправляет ошибку, юзер может загрузить обновление конкретно с веб-странички с ответом об ошибке.
Заинтересовались?
Если вы отсутствуете в нашей команде, мы с нетерпением ждем вашего электрического прибавленья!
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.