To apply, please email your CV to email@example.com
We are seeking a Rust developer to join a small team with a big vision.
As part of the development team, your role is to help shape and build the engine of our system: a low-code platform for complex business areas.
- Enabling our non-developer users to model their areas of business expertise and build applications in our platform for others in their organisation
- Implementing a calculation engine and modelling constructs in which our non-developer users can build a clear represention of a multitude of domains
- Understanding complex domain use-cases and the full-stack architecture of a multi-user distributed system
Kaleidoscope are building a product aimed at the (often under-served) small business market. Making a complex area intuitive to people with this wide range of backgrounds takes creativity, and we believe our best ideas will come from being refined by different perspectives.
This applies just as much to our engineering culture and working practices, and we’re looking to build a diverse team of engineers to contribute and develop ideas.
As we are a small fully-remote company, you will need to be self-motivated for substantial independent work, but we mix this with plenty of flexibility, collaboration (including pair/team coding), cross-discipline work, knowledge-sharing, and room to grow.
What We’re Looking For
- Experience working on a production system or widely-used tool in Rust (preferred) or C++/C-like language
- Experience with rust-wasm bindings is a bonus
- An interest in the design of programming languages, modelling systems, or similar tools
- Desire to share knowledge within our team and absorb others’ perspectives and understanding
- Customer focus: prioritising solving the customer problem, an active interest in user research and customer support
- Values quality and clarity of code, and good code-level design
- Happy to be fully remote with occasional in-person meetups, encompassing:
- Working independently, requiring self-organisation and taking ownership of work and its presentation/communication to the team at appropriate levels of detail.
- Substantial asynchronous communication, requiring good written communication skills.
- Synchronous collaboration, including: weekly 1:1s, calls with another team member most days, a few hours a week of cross-functional team meetings, and pair-programming or group technical work as needed.
- Able to overlap with at least the hours of 11am-5pm UK time, and travel to the UK a few times a year for in-person meetings
To be considered for senior roles we are looking for:
- 1+ years of Rust experience, and a balanced approach to software development
- Good understanding of Rust memory-management strategies
To be considered for a principal role we are looking for:
- Several years focussed Rust experience
- Experience building high-performance, high-data volume Rust application, in particular client-based low-latency systems
- Experience with multi-user distributed systems and CRDTs or similar
- Experience of programmatically handling user-defined data structures
What you’ll be doing
- Working with the Product team to understand and develop the technical specifications of our modelling engine
- Working in a full-stack engineering team to design and implement a modelling engine that runs on both client and server
- Developing APIs and data structures to support a low-latency distributed system
- Owning the end-to-end quality of our product, including our development processes, tooling, CI pipelines, and test suites
- Salary: £45-100k depending on seniority, Principal roles negotiable
- Stock Option Package
- 30 days holiday + local national holidays
- Home working, with equipment provided.
- To apply, please email your CV to firstname.lastname@example.org
- Please let us know in your email if you require any accomodations for the interview process.
- A 15 minute Zoom screening interview with 4-5 questions (this can be audio-only if preferred).
- A 1-hour Skills & Experience video interview with Tara (VP Engineering) and another member of the team to see if your approach matches what we’re looking for.
- A take-home technical test (3 hours max.) with a 1-hour followup session to discuss your approach.
- Offer & reference checks.