Software Engineer, Systems or Compilers
Location | Dar es Salaam, Tanzania, United Republic of |
Date Posted | January 2, 2024 |
Category | Engineering IT / Information Technology |
Job Type | Full-time |
Currency | TZS |
Description
About The Role
- The Protocol Engineering team at Pagoda is responsible for the infrastructure of the Layer 1 Blockchain, NEAR Protocol. We focus on building a scalable, performant, and reliable infrastructure to actualize visions of NEAR Protocol, including the Blockchain Operating System (BOS).
- The core component of NEAR is a WebAssembly virtual machine that runs in a completely trustless and fully deterministic mode, as it executes contracts implemented in WebAssembly-friendly languages (e.g. Rust and Javascript) using a fast compiler. NEAR contributes a lot of effort into performance and safety optimizations of WebAssembly VMs/compilers which helps not only the NEAR protocol but the entire WebAssembly ecosystem.
- We are looking for an Engineer with experience in low-level programming who is intrigued by a variety of open problems inherent to running compilers in completely trustless but high-performance settings, and who likes contributing to and collaborating with open-source communities.
What You'll Be Doing
- In this role, you will be solving cutting-edge compiler and VM problems related to safe, deterministic, and high-performance compilation and execution.
- You will interface with many open-source projects where you might be asked to represent the NEAR organization. In the future, your work might also extend beyond WebAssembly VMs into other types of VMs that NEAR chooses to support.
- You’ll work on a collaborative and globally distributed team of world class experienced engineers, providing an opportunity to learn and grow your technical skill set.
Required profile for job ad : Software Engineer, Systems or CompilersWhat We're Looking For
- Knowledge and experience using Rust, C, or C++ in a production environment. We can teach you Rust if you are already a C or C++ expert
- Familiarity with low-level programming (compilers, operating systems, hypervisors, etc)
- Experience designing, maintaining, and debugging distributed systems built with open source tools
- Solid foundation with Algorithms and Data Structures and their real world use cases
- Demonstrated success working on a globally distributed team
- Bachelor's Degree in Computer Science or related fields is a must
We'd Love If You Have
- Contributions to open-source software
- Experience with Rust API design
- Experience with virtual machines
Here’s What Our Interview Process Looks Like
Our interviews take place via Zoom and typically consists of the following stages:
- Recruiter Call
- Hiring Manager Call
- 1st Round
- Algorithms & Coding
- Final Round
- Compilers Interview
- Concurrency & Parallelism Interview
- Large System Design Interview