Network Systems Engineer - OS Team

  • Engineering
  • London, United Kingdom

Network 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

Communication is fundamental. Whether that communication is used to facilitate cooperation amongst people building a bridge, threads in a single-computer application, or a set of cooperating processes in a large distributed application, no meaningful task is accomplished without it. This, of course, isn’t news to you. You have been tackling problems in this area for as long as you can remember. Maybe you design novel network protocols for fun, or analyze existing protocols to try to determine what situations would expose pathological behavior. You recognize that there is no “one-size-fits-all” communication model or protocol because each workload and environment will offer different constraints and advantages. You relish the challenge of designing a network protocol that is specific enough to support the usage you need, but no more. You understand the intricacies and difficulties hidden behind the ubiquitous “cloud” icon that appears in many architectural diagrams representing “the internet,” and you’re not afraid to test and iteratively develop protocols that run at Internet-scale.


What You’ll Be Doing

  • Designing and implementing new protocols and features, supporting existing protocols, and fixing bugs at all levels of the network stack.

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

  • Contributing to the wider design and development of HadeanOS, our cloud-first distributed Operating System.

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

  • Being our in-house networking expert, helping us build a set of fast, flexible and simple communications protocols for all kinds of compute scenarios.

  • 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 a strong understanding of a variety of network protocols including their design goals, constraints.

  • You have demonstrable experience in network stack development, for example implementing network device drivers for embedded routers or building application-specific protocols on top of UDP.

  • You have experience developing prototype (MVP) software and iteratively making it more {performant, functional, stable, etc.}.

  • You are familiar with the techniques used in decentralized/distributed systems to achieve Reliability, Availability and Consistency.

  • You have strong development experience in ‘systems’ languages (C, C++, Rust, Assembly):

    • Have at least 3 years of performance-focused experience at an operating system level
      or

    • Have at least 2 years experience focused on network-related code.

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

  • 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

  • Experience with or affinity for the Rust programming language.

  • You have designed and/or implemented a network protocol that is in use (in some capacity) in production.

  • You have the experience to be highly skeptical of designing your own network protocol rather than using an existing one.

  • You have some experience (even on side projects) writing highly performant server software (e.g., web servers), distributed systems software (e.g., distributed databases), or embedded systems (e.g., wireless sensor networks).

  • You have 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 an interest in real-time computing and/or distributed computing.

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

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.