Digital Design Engineer

Myrtle
Cambridge, United Kingdom
2 months ago

Role details

Contract type
Permanent contract
Employment type
Part-time / full-time
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Remote
Cambridge, United Kingdom

Tech stack

API
Artificial Intelligence
Artificial Neural Networks
C++
Compilers
Computer Engineering
Data Centers
Software Debugging
Logic Synthesis of Circuits
Electronic Design Automation
Field-Programmable Gate Array (FPGA)
Python
Machine Learning
Open Source Technology
PCI Express
Scrum
Software Systems
System Programming
SystemVerilog
Systems Integration
Verilog
VHDL
Vivado
Deep Learning
Linux Development
Low Latency
Hardware Acceleration
Functional Programming
Software Version Control
Glasgow Haskell Compiler

Job description

As a Senior Digital Design Engineer you will be working to implement high performance AI inference solutions on FPGA. You will contribute to our IP library in SystemVerilog and build out complete FPGA design solutions for customers. You will work as part of our diverse team of developers and researchers, on IP that is core to our inference products. You will use your experience to deliver highly performant, well tested and extensible code for some of the most widely deployed AI in modern data centers. You will work closely with our software and machine learning engineers, integrating against Myrtle's compiler/runtime/driver stack, to build high-reliability, low-latency, and high-throughput inference applications.

You will work with the latest AI capable FPGAs from multiple FPGA vendors to develop RTL in SystemVerilog. You will generate maintainable and parameterizable IP components, to enable reuse across multiple FPGAs and applications. You will package IP into full solution implementations, achieve timing closure through floorplanning and test solutions on the board. You will make low level software interface code changes to support integration with our software stacks. You will work in a Linux development environment.

You will help to define the ways of working in the FPGA team, including coding standards and test. You will help the team to plan activities using Agile scrum methodology.

What we do

Myrtle.ai does the engineering to make deep learning a low power, high performance reality today. Focusing on reducing the power consumption of the world's data centers, we strive to use our expertise to transform the world today by making tomorrow's AI inference workloads run with unsurpassed efficiency. We're a team of engineers and scientists with deep technical expertise who love a technical challenge in a friendly collaborative environment. We focus on end to end problem optimisation, starting at the algorithm and adapting the whole stack to get world leading performance from today's silicon solutions.

Culture

We are a small friendly team, who work with some of the biggest problems in ML today. We strive for excellent technical performance in an environment where everyone contributes directly to the company's success. We are collaborative and multi-disciplined, welcoming innovation and critical thinking from everyone. We are based in central Cambridge UK, and enjoy sharing food and games. We are currently running a hybrid working scheme with minimum 3 days on site, allowing a degree of home working. We can accommodate other non standard working patterns for staff with particular requirements. Myrtle is an equal opportunity employer. We value diversity at our company and are committed to creating an inclusive environment for all employees, providing equal opportunities to all persons without discrimination. We recognize the excellent benefits in having a diverse workforce from different backgrounds and employ solely on ability., * Building full applications for FPGA using our IP library

  • Integrating with third party IP for external memory PCIe subsystems
  • Extending IP verification code and integrating into automated test environments
  • Working with software interface routines to support FPGA integration into the software stacks
  • Learning about a range of Machine Learning inference optimization techniques
  • Providing technical support for customer engagements, As a [Senior] Software Developer you will be designing and developing the software systems that enable us to run machine learning (ML) inference workloads at state of the art latencies and efficiency on Myrtle's FPGA-based hardware accelerators. You will be working throughout the stack to define the ways we program AI accelerators, from co-designing the instruction sets together with the hardware engineering team, to developing the compilers and application APIs to interface the accelerator with ML models and frameworks., * Programming our bespoke hardware accelerators by writing compilers and DSLs
  • Creating tools for debugging, profiling, and optimising programs for our accelerators
  • Developing efficient applications and runtime libraries for server CPUs that utilise our accelerators, We are a team of engineers and scientists with deep technical expertise who love a technical challenge in a friendly collaborative environment.

We want to revolutionize AI by empowering individuals. Being part of myrtle.ai means being a large part of a small organisation instead of a small part of a large organisation. This confers great individual responsibility and offers great opportunities. At myrtle.ai our employees support our core values and through that we can improve the future as a team.

Joining myrtle.ai means working side-by-side with people impassioned to change the world through AI and to help each other along the way. Our team is mission-driven, fun-loving, and family-oriented. We bring the best of AI technologies to the brightest of customers. We do this through collaborative working and individual development. Through these efforts, our team stands out in Cambridge as a beacon of people-oriented, technology-driven achievement., "At myrtle.ai you'll find yourself surrounded by great colleagues and working on challenges that push the boundaries of technology. We prioritise autonomy, giving you the space to make a substantial impact within our tight-knit team. I have really enjoyed the continuous learning curve, from delving into Haskell and FPGAs to exploring large language models. Our environment fosters a friendly, collaborative atmosphere where camaraderie drives both personal and professional growth." Emma Smith, Senior Software Engineer *

"Having joined myrtle.ai as a graduate, it was amazing how quickly I was brought up to speed on everything I needed to know - from machine learning to FPGAs. I love the autonomy I'm given here - I'm trusted to work on complex problems, but always have the support of my team when needed. Everyone has a real effect on the company. Each day I'm solving interesting problems in a team of great people." Alex Pay, Software Developer

More about myrtle.ai

myrtle.ai has the skill set to create deep learning inference solutions that others can't. With our holistic approach to problem solving, we bring together the engineering disciplines of software, hardware and machine learning to create highly optimized platforms for tomorrow's most demanding inference challenges.

We're a team of engineers and scientists with deep technical expertise who love a technical challenge in a friendly, collaborative environment.

Requirements

We are always looking for brilliant minds to join our team. These include full-time, part-time, graduate, and intern positions. If you have experience in Computer Science, Mathematics, Software Design, Digital Circuit Design or Machine Learning, we'd love to hear from you! We are an equal opportunities employer and we value diversity. Please send us your CV at careers@myrtle.ai if any of the positions suit you., * At least 5 years experience generating clear, well-documented, and well-tested SystemVerilog, Verilog or VHDL code

  • Masters degree in Engineering, Mathematics or other Scientific Discipline
  • Worked with FPGA EDA tools such as Quartus or Vivado
  • Worked with software languages such as C, C++, Python
  • Familiarity with Linux development environments, version control and CI systems
  • Experience of bringing up full FPGA designs and debugging on hardware
  • Experience optimising RTL designs to achieve timing closure
  • Good verbal and written communication skills
  • [Nice to have] Familiarity with neural network architectures
  • [Nice to have] Interest in Functional Programming Languages, A keen eye for design and a strong understanding of systems programming is desirable for this role, as you will be building up the programming models to get the best performance out of the accelerator and host CPU.

Our software is written in Rust for its fast performance and tight control over latency in performance critical sections, as well as its type system guarantees and mature tooling., * [Senior] 3 years of experience working on relevant areas such as performance sensitive- or systems programming, and compiler development

  • An enthusiastic attitude to tackling the challenges of programming novel processor architectures
  • Used Rust in production or open source codebases
  • Experience with low-level programming languages in general (e.g. Rust, C, C++) or functional programming languages (e.g. Haskell, OCaml, Nix)
  • Strong Problem solving skills

Benefits & conditions

Are you ready to work at the heart of an exciting AI start-up and…

  • Influence the future
  • Learn and develop your skills
  • Expand your role as you grow

Your work will make a difference.

Teamwork

Together everyone achieves more

Individuals

Every individual makes a difference

Integrity

Honouring our commitments

Respect

Have respect for one another

Innovation

Be curious, creative and innovative

Teamwork

Together everyone achieves more

Individuals

Every individual makes a difference

Integrity

Honouring our commitments

Respect

Have respect for one another

Innovation

Be curious, creative and innovative

About the company

We're currently hiring full-time employees and graduates in the roles listed below. All roles will be based at our offices in central Cambridge, UK., Myrtle.ai does the engineering to make deep learning a low power, high performance reality today. Focusing on reducing the power consumption of the world's data centers, we strive to use our expertise to transform the world today by making tomorrow's AI inference workloads run with unsurpassed efficiency. We're a team of engineers and scientists with deep technical expertise who love a technical challenge in a friendly collaborative environment. We focus on end to end problem optimisation, starting at the algorithm and adapting the whole stack to get world leading performance from today's silicon solutions. Culture We are a small friendly team, who work with some of the biggest problems in ML today. We strive for excellent technical performance in an environment where everyone contributes directly to the company's success. We are collaborative and multi-disciplined, welcoming innovation and critical thinking from everyone. We are based in central Cambridge UK, and enjoy sharing food and games. We are currently running a hybrid working scheme with minimum 3 days on site, allowing a degree of home working. We can accommodate other non standard working patterns for staff with particular requirements. Myrtle is an equal opportunity employer. We value diversity at our company and are committed to creating an inclusive environment for all employees, providing equal opportunities to all persons without discrimination. We recognize the excellent benefits in having a diverse workforce from different backgrounds and employ solely on ability.

Apply for this position