Software Architect
Join a software architecture team shaping networking devices and data center platforms. Work with system architects and software, firmware, hardware, and product teams to develop component-level and system-level designs.
Обязанности
- Define software architecture for networking devices, SmartNICs, and DPUs.
- Analyze system requirements involving networking protocols, virtualization, operating systems, security, management, and services.
- Research design options and develop proof-of-concept models, simulations, and prototypes.
- Collaborate with software, firmware, and hardware teams on hardware-software co-design, performance, scalability, and resource utilization.
- Prepare architecture proposals, design documents, and technical presentations.
Требования
- B.Sc. or M.Sc. in Computer Science, Electrical Engineering, Computer Engineering, or a related field.
- At least 1 year of relevant experience.
- Strong programming skills in C/C++, preferably with large, complex embedded systems.
- Solid understanding of operating systems, multithreading, computer architecture, and software fundamentals.
- Ability to investigate complex or ambiguous problems and learn new technologies quickly.
- Clear written and verbal communication skills.
Будет плюсом
- Knowledge of networking protocols such as Ethernet, InfiniBand, RDMA, RoCE, TCP/IP, or congestion control.
- Experience with Linux, the Linux kernel, device drivers, embedded systems, or system software.
- Experience building simulations, performance models, prototypes, or proof-of-concept software.
- Exposure to virtualization, security, programmable acceleration, SmartNICs, DPUs, or DOCA.
- Open-source contributions, relevant internship experience, or hands-on technical projects.