C++开发者(男/女/多元)在柏林和远程工作,年薪最高13万欧元。

16个月前远程全职
130K EUR think-cell Software

think-cell Software

location 伦敦
unsaved
加入我们成为一名C++开发者 你是否相信编程的美感?你是否对优雅算法有浓厚的兴趣?你是否精通C++?如果是的话,我们希望能见到你。以下是我们提供的简要概述: • 大量具有极高挑战性的C++开发任务 • 一个国际团队,由杰出的人才组成 • 一个让团队留下并成长的工作环境 • 充足的时间确保你的解决方案的每一个细节都是完美的 • 扁平化组织结构和充足的发挥创意的空间 • 没有安排好的会议 • 适合家庭的工作时间,没有最后期限,没有加班 • 支持搬迁 • 起薪有竞争力,并在一年后提升到每年13万欧元 关于我们 think-cell是一家位于德国柏林的快节奏软件公司,专注于开发与众不同的图形产品。全球超过100万用户依赖我们的软件进行日常业务,因为它使创建图形演示更加轻松、快捷和愉悦。我们的客户包括许多知名咨询公司和大型国际企业。 我们不需要在代码质量和美感方面妥协,因为think-cell非常盈利。我们愿意不遗余力地开发复杂的算法,完善我们的用户界面,并为我们的许多满意客户感到自豪。公司由经验丰富的计算机科学家拥有和管理,这无疑为创造出一个让优秀的开发者来并留下的工作环境做出了贡献。 关于我们的软件 我们的重点是商业幻灯片(而不是更艺术化的应用程序),因为它们为传统上由PowerPoint用户自己执行的布局任务的自动化提供了巨大潜力。挑战很多:从对什么是良好布局的深入理解和人们进行手动布局时遵循的准则,到能够快速生成可接受输出以便进行交互式幻灯片设计的算法,再到以易于理解但不显眼的方式支持我们的新颖幻灯片布局方法的图形用户界面,以及针对半百万用户计算机上的第三方软件的稳定技术解决方案。 以下是我们所做的一些亮点。 语言 • 我们所做的一切都是C++。甚至我们的客户门户网站也是用C++编写的。在必要的情况下,我们使用一些汇编语言的粘合代码,我们的构建脚本是用Python编写的,但除此之外,think-cell全部都是关于C++的。 • 我们密切跟踪我们的编译器最新版本,Visual C++和Xcode,以便我们能够尽快使用最新的C++标准功能。 • 我们资助了德国标准化协会(DIN)的编程语言工作组。我们的一些员工是该委员会的成员,并在ISO/IEC C++的国际标准化过程中投票。 • 我们赞助标准C++基金会,帮助他们在所有编译器和平台上推广对现代标准C++的理解和使用。 库 • 我们在代码中使用Boost,例如使用Boost.Spirit进行解析。 • 我们有自己的范围库,与Boost.Range或Eric Niebler的range-v3相似,但更进一步,例如通过统一内部和外部迭代。我们进行了一次关于它的讲座,大部分代码是公开的。 • 我们开发了自己的跨平台库,以支持Mac和Windows,使用单一代码库。 • 我们有自己的引用计数和持久化库,用于保存和恢复整个对象树。 • 我们有一个庞大的错误报告基础设施。断言和错误检查保留在发布代码中,我们的软件会自动将错误报告给我们的服务器。服务器会分析错误,对其进行分类,并将其存储在所有开发人员都可以访问的数据库中。如果更新修复了错误,用户可以直接从错误响应网页下载更新。 算法 • think-cell是基于自动幻灯片布局算法的理念而成立的,我们仍在追求这一雄心勃勃的愿景。你可以看到我们最近发布的最新版本在运行中! • 我们开发了一种新的自动点云标签算法,允许标签远离实际点位。 • 我们开发了一种新的自动柱状图标签算法。 • 我们正在与线性求解器CLP的作者John Forrest合作,以使他的单纯形代码在我们的问题上更快。 • 我们开发了许多不在C++或Boost中的通用数据结构,例如分区。 • 我们的软件不仅能生成图表,还能从纸上读取它们。对于我们的图表识别工具,我们依赖于OpenCV和Leptonica图像处理库。 逆向工程 • 我们使用Hex-Rays的IDA反汇编器进行大量逆向工程,以实现通过已记录的Microsoft Office API不可能实现的功能。 • 我们编写了可能是最好的函数挂钩引擎。在我们的软件每次启动时,我们会在内存中修补Microsoft Office可执行文件。我们不是硬编码补丁地址,而是搜索小块汇编代码,以便对可执行文件的微小变化具有鲁棒性。 关于这份工作 我们正在寻找聪明、有创造力的开发者,拥有扎实的理论基础。我们的开发团队由在各个领域拥有15年以上商业经验的人员,以及计算机科学、物理学和数学的新毕业生组成。拥有大学学位或C++的工作经验,以及新颖而有创造性的问题解决方法的结合将是这个职位的绝佳组合。由于我们所有的招聘步骤都是基于任务的,所以选择是基于在我们的测试中展示的技能。 你将主要独立工作,负责在实现新功能时的整个活动范围。你应该能够从用户的角度看待问题,并与其他开发人员讨论抽象概念。我们希望我们的每个开发人员都能在架构、设计、实现、客户反馈和错误修复方面进行工作,而不是将这些活动分给几个人。因此,我们让每个人掌握自己的工作。 在think-cell,没有最后期限,也没有安排好的会议。当你确信你已经实现了最佳解决方案时,一个功能就可以发布了。会议根据需要进行,只有实际参与的人才需要出席。在任何时候,来自任何层级的人的想法、建议和批评都是受欢迎的,并且会被认真考虑。即使意味着我们必须改变很多代码来改进事物,你的想法也是受欢迎的。 我们在人工智能和计算机图形学领域发表了几篇科学论文,我们将鼓励你也这样做。我们赞助参加会议,并与美国和德国的大学和研究机构有着密切联系。 think-cell鼓励健康的工作与生活平衡。我们不在夜间或周末工作。 我们支付非常有竞争力的薪水,并在一年的工作后向我们的开发人员提供每年13万欧元。如果需要,我们会尽力帮助你搬迁到柏林,并尽力帮助你获得工作许可证。虽然你应该能够用英语有效沟通,但不需要懂德语。如果希望,可以安排德语语言课程。