Senior Systems Engineer - OS Team

  • Engineering
  • London, United Kingdom

Senior Systems Engineer - OS Team

Job description

About Hadean

It seems that every problem today requires technology to solve it, and most of those solutions require massive-scale computing - genome editing, curing cancer, autonomous vehicles, simulating reality. And the only ways to implement those solutions, up to now, have been costly, complex or both. Super-computers, the cloud and edge computing all have their issues - they’re unreliable to operate and scale, difficult to build and manage, and too unpredictable and expensive to budget for and fund. Fundamentally these problems are down to a stack that was designed 30-40 years ago.

These problems are only going to become more prevalent as more demands are placed on our ageing technology stack, and Hadean believes that every application in the future should be able to be distributed across hundreds, thousands, tens of thousands of machines. The current stack is irreconcilable with the opportunities and demands of this new world. To solve these challenges we believe that ubiquitous computing needs a new way of thinking and distributed systems must be supported in fundamental ways at the Operating System level. As such, we’re throwing out the rule book on OS design. Hadean is daring to rebuild the operating system from the ground up, to be distributed-first, robust to scaling, efficient, compact, and faster - it will work in real-time across hyper-scale deployments without layers of bloated software.


About The Team (and maybe you)

  • We have worked on software that is used by actual users in production at scale.

  • We enjoy having our contributions reviewed by peers and follow up on feedback.

  • We understand the KISS methodology and can provide examples from personal experience where ignoring it has led to disastrous outcomes.

  • We are team players and enjoy working with others

  • We value different perspectives and often don’t agree on the best approach, but we find a route forward and “disagree and commit”.

  • We hold short weekly engineering talks and each contribute with presentations on topics which are relevant to our work or of personal interest.

  • We don’t yet have a formal gaming group, ultimate frisbee club, or caffeine drinking culture, but we are working collectively to define that

  • As an early stage startup we are involved in driving the direction of the company

  • We believe working side-by-side helps us build better things. Working remotely when necessary is cool, but we prefer working face to face - we’re social animals after all!

About You

You probably spent a lot of time taking things apart (and possibly putting them back together) as a kid, wanting to figure out how they worked. You got hooked by computers at a young age and followed the siren’s call of ‘hard problems’ deep down into the stack. Happily swallowing the red pill, you fell into Operating Systems and discovered a life-long interest. Hardware, though a wholly different beast than software, doesn’t intimidate you in the slightest. You’ve spent so much time reading other people’s code that you sometimes feel like you get to know them. All this experience reading code has taught you how to write code for others. You relish thinking about big problems and methodically turning them into smaller problems. You have a scientific approach to architecture and development (prototype, test, repeat) and although you have strong opinions, you don’t let them make decisions for you.


What You’ll Be Doing

  • Implementing new features, supporting existing features, and fixing bugs at all levels of the OS stack.

  • Supporting (and potentially building) distributed applications written for our framework.

  • Looking for opportunities to improve automation, code simplicity, generality, or efficiency everywhere.

  • Being (or becoming) our in-house expert for some specific area in which you feel you can make an impact.

  • Documenting your code, as well as contributing to other internal documentation, external documentation, and our company blog.

  • Participating in the ideation phase of planning, providing your unique perspective on the prioritization, design, and implementation of engineering work.

  • The usual agile things, you know the drill: scrum kanban scrumban, standups, retros, pull requests, gitflow, open-close jira tickets, etc.

-

What We’re Looking For

  • You have experience developing prototype (MVP) software and iteratively making it more {performant, functional, stable, etc.} with an eye for the long term.

  • You have a strong understanding of the concerns related to low-level hardware architectures, concurrent (multithreaded) code, highly available/performant servers, bounded allocation programming.

  • You have an awareness and at least cursory understanding of alternative OS design goals and techniques given non-standard constraints.

  • You’ve accumulated a number of ‘war stories’ during your career, be it tracking down that bug after a week or discovering the hack that holds some key software together.

  • You have experience writing highly performant server software (e.g., web servers), virtual machines (e.g., QEMU, BEAM),  distributed systems software (e.g., distributed databases), or embedded systems (e.g., wireless sensor networks).

  • You have extensive experience developing at  the operating system boundary (e.g., making syscalls directly, writing a userspace network stack) or within the OS itself (e.g., kernel development, filesystem work, device drivers).

  • You have extensive experience working in multiple subsystems of operating systems (e.g., memory management, file systems, network stack).

  • You have at least 7 years of coding experience in ‘systems’ languages (C, C++, Rust, Assembly).

  • You are energised by a dynamic, fast-paced and agile workplace.

  • You are an original thinker, who can present and defend a well-reasoned position even if it’s not the popular one.

  • Ability to work in the UK.

Nice To Haves

  • You are able to make reasoned critical arguments on what constitutes good OS design for specific problem types.

  • Experience with or affinity for the Rust programming language.

  • Experience designing and/or implementing network protocols, high-performance network stacks, distributed communication primitives.

  • You appreciate the complexities and subtleties (documented and otherwise) of modern computer architectures and CPU features such as hyperthreading, OoOE, MPX.

  • You have a good general understanding of OS security concerns and techniques.

  • An interest in real-time computing and/or distributed computing.

  • You have made contributions to more than zero open source projects.

  • Familiar with nerd/pop culture references (e.g., Avengers, Rick & Morty, Matrix).

Benefits++

  • EMI scheme, the number of options is individually tailored to your role and impact

  • Optional contributory pension scheme

  • Cycle to work to scheme

  • Spontaneous drinks, dinner, you-name-it company social event

  • Childcare voucher

  • Annual eye-exam

  • Free fresh fruit, coffee & tea

  • Magnanimous start time (and it’s off-peak)


Additional Information

Opening Date for Applicants: 6th October 2018

Closing Date of advert: 31st December 2018

Salary: £40,000 to £90,000

Working hours per week: 40 hours a week

How to apply for this job: Please apply through the careers page: https://careers.hadean.com/.


Equal Opportunities

Hadean is committed to Equal Employment Opportunity throughout our recruiting and hiring process and is dedicated to increasing diversity in our workplace.