Software Engineer on Trusted & Distributed Systems
We are looking for a software engineer with strong C++, Rust, or Go knowledge and development experience with a special interest in trusted computing and distributed systems. The appointee will be involved in the development of cutting-edge distributed systems based on a number of innovative techniques and technologies, with a focus on security, privacy, and compliance to regulations.
You will collaborate and work alongside several academics and software engineers on a number of innovative projects. Therefore, a desire to learn new technologies, and broaden your knowledge is a must. We are also associated with the University College Oxford Blockchain Research Centre.
The successful candidate should be willing to travel overseas if requested.
During the current pandemic, the company is flexible regarding the location of where the work is undertaken. It is hoped that the successful candidate will join the team in our offices in North Oxford, at least in part, if not all, of the working week. Social distancing is to be observed at all times, and we follow the guidelines as set out by the Government. When the new normal is established, the successful candidate will be expected to be based in the office.
Responsibilities
Your responsibilities will include:
- Design, prototype, develop, and maintain our products and systems;
- Contribute with clean, well-tested, and well-documented code, with a special attention to security;
- Identify and address bugs and bottlenecks within our systems;
- Refactor/redesign them to improve on code and system quality;
- Review code and pull requests providing valuable feedback to other team members;
- Mentor and help less-experienced and newcomer engineers;
- Suggest improvements for our development process.
Our systems and tools are designed and developed by a team which includes several academics. The appointee will be encouraged to make suggestions about their design; intellectual curiosity is at the heart of our company culture.
Requirements
Required skills
- At least 3 years experience in designing, developing, delivering, and maintaining production-grade systems in C++, Rust, or Go, and the curiosity and a desire to learn new languages/technologies;
- Experience designing and developing distributed systems;
- Solid understanding of computer science fundamentals;
- Ability to take ownership and see initiatives through;
- Excellent written and communication skills in English;
- Intellectual curiosity.
Desired skills
- Understanding of consensus protocols (e.g. Paxos, Raft, PBFT, PoW, PoS);
- Experience with blockchain frameworks (e.g. Hyperledger Fabric, Cosmos, Tendermint, Substrate);
- Experience with TEE development (e.g. using Intel SGX or AMD SEV);
- Practical knowledge of cryptography (e.g. TLS, PKI, RSA).
Benefits
- The appointee will be part of an innovative start-up developing cutting-edge technology in the area of trusted technologies;
- You will have room to grow and influence the future of the company, particularly, in its software development processes;
- Competitive salary based on experience;
- 33 days paid annual leave (inclusive of public and Bank holidays);
- Office in North Oxford; within walking distance of the city centre.
How to apply
Please send your CV and cover letter to careers@tbtl.com with subject ‘Application: Software Engineer on Trusted & Distributed Systems’. Applications submitted without a cover letter will not be considered.