Leading the software team, an ideal candidate would be an experienced software engineer who wants to stay technical, but also exercise leadership skills and pursue upward leadership growth. In a fast-moving startup environment, the position is an opportunity to work closely with industry leaders and the founding team as we pioneer a breakthrough computing platform for graph and irregular applications.
Key Responsibilities
● Technical leadership of software efforts including platform software architecture, close partnership with hardware team, and application software efforts. Drive efficient use of AI to accelerate development. Opportunity to drive platform software architecture in a system that is designed to be high-performance AND software-friendly
○ Simple high-level programming with plentiful memory bandwidth
○ High-levels of thread and memory parallelism (100K to millions)
○ Large, unified virtual memory system (petabyte)
● Team management and building of a software team includes both senior and junior software engineers. Team-building, Mentoring, and flexibly balancing priorities in a fast moving startup environment.
● Direct personal technical leadership in software and architecture in at least one of the core technical areas (resource management/virtual memory, compilers/tools, graph libraries).
Minimum Qualifications
● Education: Master’s or Ph.D. in CS, CE, or related field.
● Extensive Software Engineering experience: 7+ years of hands-on experience writing production-grade, production code in C/C++ or equivalent. Literacy and proficiency with AI tools.
● Performance Programming or HPC Experience: 3+ years in programming for performance/efficiency and/or HPC/Cloud scalable software, particularly supercomputer and accelerator environments.
● Broad knowledge of compilers, operating systems, and software architecture. Able to engage in co-design discussions ranging from hardware architecture and applications developers.
● Strong communication and team skills, ability to quickly learn new things, enabling effective leadership and teaming in a fast-moving startup environment
Desirable Qualifications
● Systems Programming Experience: 5+ years experience writing production-grade code and low-level code in C and C++ in runtime, compiler, or Linux kernel settings.
● Task/Job Scheduling & Orchestration Experience: 5+ years experience configuring, modifying, operating resource managers (eg. Slurm, PBS, etc.) to efficiently allocate resources and orchestrate parallel jobs.
● Experience with graph analytics algorithms and their application to industry problems in intelligence, financial fraud/flows, cyber security, etc. (e.g., BFS, flow analyses, pagerank) on both single node, and parallel hardware.
● Experience with design and implementation of Virtual and Memory Management systems (eg. virtual memory, paging, and fast/parallel memory allocators).