Who You'll Work With
The platform team who work closest to the hardware, programming chips.The model language compiler targets the APIs of the EOS Core libraries. These libraries provide custom data structures that allow internet scale operations, event loop management, memory management with auditing, and core functionality for model state synchronization. As an EOS Core developer, you get to answer questions about CPU and memory tradeoffs, distributed system design, and critically how to improve the effectiveness of EOS application developers. As the size of the internet grows, the core libraries require constant overhaul to deal with ever growing scale. Additionally, you will need to consider what auditing tools need to be added to track where memory and CPU cycles are going to catch any regressions early.
What You'll Do
- Writing software that is fast and memory efficient and can work effectively on low-end and high-end internet scale devices
- Working on the core EOS infrastructure that deals with microservice management and provides common functionality like event loop management, memory audits
- Using hardcore algorithms, data structures, OS and system design principles to extend and optimize every component for performance and scale
- Keeping up to date with latest C++ and gcc/clang developments
- Designing and building creative ways to programmatically test it all
- Continuously striving to improve the code
- Learning how things really work, just for fun or out of curiosity
- Working with other like-minded engineers that share the same passion.
- BS Computer Science/Electrical Engineering/Computer Engineering + 5 years experience, or MS Computer Science/Electrical Engineering/Computer Engineering + 3 years experience, or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering
- Expert knowledge of C or C++ and Python.
- Hands-on experience working on Linux Kernel software is a plus.
- Understanding of distributed systems is a plus.
- Applied understanding of software engineering principles.
- Strong problem solving and software troubleshooting skills.
- Ability to design a solution and implement features independently.
- Ability to work in small teams.