Translate business requirements into software architecture and design
Lead design and implementation of sub-systems/modules of ASCERT, work with an Architect (or, in some cases, being able to take on a role of an Architect) to develop system/subsystem/component/feature architecture and design, and be responsible for own software start to end
Participate in Agile ceremonies, schedule and hold periodic code reviews, track own scope of work and progress using relevant tools
Work to be done in Unix/Linux environment using GoLang and scripting languages, designing and developing in-memory in-line high capacity high performance data processing software
Provide documentation to any and all new code development or code changes that are made to existing code base, and document existing reports
Identify, resolve and support the retest of all defects discovered during testing
Assist in deployment of system to production, including validation that deployment was successful
Support production issues in a timely manner dependent upon severity
Qualifications
BS or MS in Computer Science/EE/Applied Math or equivalent.
Experience in development of high-performance Linux/Unix applications, including multithreading/multiprocessing, experience as an advanced Linux user.
Experience in development of in-memory data structures with real time access by multiple applications, handling synchronization, race conditions, data corruption.
7+ years of experience in C/C++, GoLang, Python and shell knowledge.
Understanding of data networking fundamentals (IP, TCP, UDP, GTP, etc.) and experience with basic network configuration.
Desired skills:
Ability to translate product or feature requirements into design and implementation, experience with software lifecycle (SDLC) and/or Agile.
Experience with near-real-time / line-rate packet processing software.
Experience with video, audio, and real time streaming technologies (RTP/RTCP, QUIC/GQUIC, SIP, etc.).
Knowledge of structured data bases, SQL (querying and working with major SQL DBs (e.g., Oracle, Postgres, MySQL, etc.).
Cloud knowledge, Azure and AWS, knowledge of ingestion technologies such as Kafka, Docker experience.
Experience with distributed systems.
Experience working with encryption, knowledge of openSSL.