🎨 TopHatch is Hiring: Senior Software Engineer
The Opportunity: Build the Future, Modernize the Past
We’re looking for an exceptional C++ Software Engineer to become a pivotal member of our Engine Team and help build the future of technical design tools. You will work closely with our Software Architect to shape the future of our cross-platform vector drawing engine, contributing to a high-quality C++ code base.
đź“‹ Key Details
- 📍 Location: Fully Remote (Must be located and authorised to work in the UK)
- đź’Ľ Type: Full-Time - Contract or Employee
- đź’° Salary: ÂŁ70-ÂŁ80 per hour or full time salary equivalent.
- 🗓️ Start Date: Flexible. We understand a move takes time, and we'll work with you to set a reasonable start date, ideally within the next three months.
🚀 Our Mission & Culture
At TopHatch, our mission is to build the best tools for people who think and communicate visually. We believe the simplest way to communicate creative ideas is visually, and we empower architects, engineers, industrial designers, and other technical professionals to do just that.
We build Concepts, our award-winning design app that combines the fluidity and speed of paper with the power and precision of vector manipulation. We are, and always have been, a remote-first team with a high degree of autonomy and trust (a Level Four autonomous organization (aspiring to Level Five).)
🎯 About the Role
This unique role combines two exciting challenges:
- Greenfield Design: You will design and implement new, foundational systems using the full power of C++23, including modules, concepts, and advanced template metaprogramming. You'll contribute to a clean, safe-by-construction architecture that is the future of our company.
- Pragmatic Modernization: You will strategically dismantle and refactor critical parts of our legacy engine, untangling older, platform-specific Objective-C/C++ code and migrate its functionality into our modern, unified engine.
As a senior member of our Engine Team, your mission is to help us accelerate our technical roadmap by taking on significant ownership of the engine. You won't just be executing tasks; you will be a key contributor to architectural decisions and a core authority on our engine's development.
- Collaborate closely with our Software Architect on the design and evolution of our engine.
- Write and review high-performance, maintainable C++ code, leveraging modern features like modules and coroutines.
- Empower application developers by evolving engine APIs, improving tooling, and resolving their technical blockers.
- Take ownership of complex technical challenges, such as decoupling our code from legacy third-party dependencies.
- Dive into a mixed codebase, applying your expertise to refactor and modernize components into clean, portable C++23.
- Contribute to major architectural initiatives, such as the ongoing unification of our file formats and rendering pipelines.
👩 🎨 What You'll Bring to the Team
Technical Skills & Experience:
Required:
- Expert-level proficiency and deep practical experience with modern C++ (C++17/20/23).
- A strong, demonstrable grasp of high-level software architecture, API design, and writing safe, maintainable systems.
- A pragmatic mindset: you appreciate the elegance of 'correct-by-construction' design but also know how to surgically untangle a legacy mess to achieve critical business goals.
- Comfortable navigating and refactoring a mixed codebase, including a willingness to dive into Objective-C/C++ as needed.
- A proven ability to take ownership of complex projects from start to finish.
- You are a clear communicator and thrive in a collaborative, high-trust, remote-working environment.
- Excellent verbal and written communication skills in English.
- Located and authorized to work in the UK or Finland.
Nice-to-have:
- Experience with native development for Android, Windows, or iOS.
Behavioral Qualities:
- Independent & Self-Motivated: You possess a strong intrinsic drive and are highly self-motivated, capable of managing your own workload and creating structure without needing strict deadlines. You thrive working independently in a remote, asynchronous environment.
- Architectural Thinker: You don't just write code; you think architecturally, seeking to understand the "why" behind technical decisions. You have the foresight to prioritize long-term engine health and stability over immediate product demands.
- Proactive & Open Communicator: You are a confident communicator who proactively initiates collaboration, articulates work challenges clearly, and is comfortable reaching out across a distributed team to find solutions.
- Self-Aware & Adaptable: You have a strong understanding of your own work style and limitations. You possess the emotional intelligence and psychological flexibility to navigate the dynamics of remote work, manage professional challenges, and maintain your well-being.
- Meticulous & Structured: Your core task involves refactoring a complex, legacy codebase, which requires a careful, organized, and detail-oriented approach to ensure quality and maintainability.
Why Join Us?
- High-Impact Work: Your work will be focused on our engine, the critical technology that powers our entire cross-platform product. As this is central to everything we do, your contributions will have a direct and significant impact on our success.
- A Unique Technical Challenge: This role offers a rare blend of greenfield development with modern C++ and strategic, high-impact refactoring of a complex system. You will be constantly engaged with deep and interesting technical problems.
- Solve Hard Problems: This isn't a simple feature-development role. You'll be solving complex architectural and modernization puzzles that are critical to the company's future.
- Growth and Ownership: This is a role with a clear path to significant ownership and influence. You'll be a foundational member of our small, focused engine team.
- Excellent Compensation and Flexibility: We offer a highly competitive salary and the freedom of a fully remote role.
🌍 Our Commitment to Building a Diverse Team
We believe that a diversity of perspectives, backgrounds, and experiences makes a team stronger and our product better. We are dedicated to creating an inclusive environment where everyone feels they belong. If your personal circumstances—be they health, social, caring responsibilities, or other factors—mean you thrive outside conventional work environments, we especially encourage you to apply.
Research shows that people from underrepresented groups may hesitate to apply for a role if they don't meet every qualification. If you're excited about this opportunity, we want to hear from you.
✍️ Ready to Apply?
Ready to take on the challenge? Along with your LinkedIn profile, we ask that you answer the following question in your application:
Tell us about a code base that you have worked on refactoring. What were the challenges you faced and how did you overcome them?
👇 See What We're Building
- Concepts Website
- App Store
- Google Play Store
- Microsoft Store