Bachelor's degree in Computer Science or related technical field, or equivalent practical experience.
Experience with algorithms, data structures, complexity analysis, and software design.
Experience in one or more of the following: C, C++, Java, Python, Go.
Preferred qualifications:
Expertise in designing, analyzing, and troubleshooting large-scale distributed systems.
Networking knowledge and understanding of network theory (e.g., different protocols (i.e., TCP/IP, UDP, ICMP, etc.), MAC addresses, IP packets, DNS, OSI layers, and load balancing).
Understanding of Unix/Linux systems from kernel to shell, taking in system libraries, file systems, and client-server protocols.
Familiarity with running web services at scale, and understanding of Unix systems internals and networking.
Systematic problem solving approach, coupled with a sense of ownership and drive.