Senior Rust Developer – Qt / C++ / FFI
Miejsce pracy: Warszawa
Technologies we use
Expected
- Rust
- C++
- Git
- Linux
- Windows Server
- MacOS
- Docker
- GitHub
- GitLab
Optional
Operating system
About the project
Long-term project focused on developing production-grade solutions combining Rust, C++ and Qt 6.
Main focus on developing high-quality Rust code, with emphasis on object models, memory safety, type systems, procedural macros, and safe APIs across the Rust/C++ boundary.
Team works with a public backlog, tasks assigned issue by issue and re-planned on a sprint basis.
Opportunity to work on challenging systems-level problems in a review-driven engineering environment.
Initial priorities include object model and memory-safety work, type-system development, procedural macros, Rust/C++ FFI, public API design and stabilisation.
Your responsibilities
- Develop production-quality Rust code and, where required, C++ code.
- Design and maintain idiomatic, safe Rust APIs.
- Build safe Rust wrappers around existing C++ functionality.
- Work with Rust ↔ C++ FFI, ideally using cxx.
- Develop and maintain procedural macros using syn, quote and proc-macro2.
- Provide high-quality compile-time diagnostics for procedural macros.
- Work with ownership, lifetimes and object lifetime management across the Rust/C++ boundary.
- Design and stabilise public library APIs, taking into account semver, deprecations and breaking changes.
- Maintain cross-platform Rust builds across Linux, Windows/MSVC and macOS.
- Write tests alongside every change.
- Maintain documentation and rustdoc for public APIs.
- Participate in code reviews using Gerrit.
- Follow a small-commit, review-heavy development workflow.
- Contribute to security reviews and threat modelling for a systems-level library.
- Analyse memory-safety and trust-boundary risks across the Rust/C++ FFI surface.
- Collaborate with the team responsible for the Qt/C++ layer.
Our requirements
- Senior-level professional experience with Rust, including strong knowledge of ownership and borrowing, Rc, RefCell, Weak, unsafe and Rust aliasing rules, Pin, lifetime-parameterised APIs.
- Hands-on experience with Rust/C++ FFI, preferably using cxx.
- Experience designing safe Rust abstractions and wrappers over C++ code, including object lifetime management.
- Practical experience with procedural macros, including syn, quote and proc-macro2.
- Experience designing and maintaining public Rust library APIs.
- Strong understanding of semver, breaking-change management and deprecation strategies.
- Experience with cross-platform Rust build engineering, including https://jobeax.com/link/W6WXcJrr7KQAzcRB, linking against native libraries, Linux, Windows/MSVC, macOS.
- Strong engineering and quality discipline: tests with every change, cargo fmt clean, no new Clippy warnings, documented safety rationale for any new unsafe code, rustdoc for all public APIs.
- Experience with threat modelling and security reviews for systems-level software.
- Ability to reason about memory safety and trust boundaries across Rust/C++ FFI.
- Working knowledge of Qt 6, including QObject, properties, signals/slots, QVariant, QMetaType, QML object ownership.
- C++17 knowledge sufficient to read and modify the bridge layer.
- Comfortable working with Gerrit, small commits and review-heavy development processes.
- Professional written and spoken English.
Optional
- Previous contributions to Qt, CXX-Qt, qmetaobject-rs or similar binding projects.
- QML / Qt Quick application development experience.
- Experience publishing and maintaining crates on crates.io.
- Knowledge of rcc and Qt resource handling.
- Experience with QML debug/preview protocols.
- Experience with async Rust / Tokio integrated with a native event loop.
- Existing Qt Account and signed Qt Contributor Licence Agreement.
Benefits
- sharing the costs of sports activities
- private medical care
SQUARE ONE RESOURCES sp. z o.o.
At Square One Poland we link IT experts with the business. With over 25 years of experience, we specialize in recruitment processes on a global scale. Despite years of experience, we still have a startup DNA and this is our advantage. Our offices are located in London and Warsaw, however, we can reach clients from all over the world, from start-ups to big worldwide corporations.