C Distributed Database Engineer
Austin, TX
Eagle Eye Networks is seeking a C software engineer familiar with distributed database programming, event-driven C programming, web applications, and building large scale distributed applications.
Your responsibilities will be to add new functionality and feature sets in our C database systems as well as other cloud distributed C applications. You will be responsible to maintain these systems as well.
So what’s unique? As a developer, imagine part of your responsibilities being able to build new systems, optimize new systems, services from the ground up, from scratch. Do you like low-level optimizations? Do you enjoy heavily event-driven threaded environments? Then this is a job for you!
About Eagle Eye Networks:
Eagle Eye Networks is a cloud-based video management company. The Eagle Eye Security Camera VMS has been purpose-built for the cloud and provides unsurpassed security, redundancy and reliability while allowing partners and customers the use of a wide variety of IP and analog cameras. Eagle Eye’s cloud is ideal for end-users and resellers requiring single sign-on access to live, recorded or event-based video across multiple locations. The Eagle Eye VMS has strong APIs for the secure integration of third-party systems.
Eagle Eye Networks Engineering:
At Eagle Eye Networks, the engineering domain ranges from IoT devices, massively scalable data services, web and mobile frontends, to AI and ML development. Eagle Eye Networks is a complete platform, providing hardware and software solutions for the video surveillance industry worldwide. We are storing and analyzing more commercial video surveillance than anyone in the world.
Being a cloud services company with a global footprint (11 data center locations) presents a unique set of engineering challenges. Using our own purpose-built cloud and microservices architecture, we provide instant and secure access to massive amounts of video surveillance data while streaming and analyzing it continuously from cameras in over 11 countries.
If this sounds exciting to you, come join our team!
Requirements:
- Understanding of database systems
- Deep level understanding of indexing data
- Understanding of temporally ordered data structure challenges
- Understanding of memory management, virtual memory, mmap, etc.
- Understanding limitations of spinning disks and how to manage efficient data acquisition form such disks
- Understanding of network stack
- Understanding of TCP/IP
- Understanding of UDP
- Understanding of network challenges such as the head of line issue
- Understanding of protocols such as HTTP and websockets
- Ability to maintain custom proprietary binary data protocol
- Understanding of the c10k problem
- Understanding of distributed message buses
- An understanding of systems frameworks such as 0mq
- Understanding of distributed systems
- Ability to diagnose issues in a distributed environment using off the shelf tools and internally created tools
- Understanding of PAXOS, RAFT and other distributed system concepts
- Understanding of efficient programming models
- Understanding of event-driven programming (epoll, libevent, libev)
- Understanding of efficient memory passing by avoiding memory copies (memory references)
- Understanding of threads and sharing memory between threads
- Understanding the debug life cycle of C applications. Knowledge of gdb is a must
- Performance tuning in the Kernel level
- Maintain and build new features for a distributed file system
- Understanding the intricacies of writing large files onto disk
- Understanding of syncing files on a block and file offset level
- Create and maintain the metric-driven environment.
- Use log aggregation to paint a story and understand system behavior
- Log performance on API endpoints and optimize for speed and efficiency
- Self-driving and architectural leader
- Lead the architectural designs of the distributed system
- Self-driving and autonomous
Desired Skills & Experience:
- C experience – 5+ years
- Event and/or message-driven programming – 5+ years
- Threading – 5+ years
- Python experience – 3-5 years
- Rest APIs, Git, JIRA – 2+ years
- Being agile and autonomous is a must
- Strong knowledge of TCP/IP and HTTP
- Docker, Kubernetes, virtualization experience is a plus
Email [email protected] to apply.