Primary Responsibilities :
Designs, develops and maintains high-quality code for sophisticated product components.
Performs analysis to define design requirements for modification to existing tools, utilities, system structures, and environments and provide technical feedback into project scope and estimating activities.
Dive into the existing code base, gain knowledge and fix bugs in those functional areas.
Follows and maintains technical design methodologies, processes and standards.
Document software designs through use of functional specifications and other design documents.
Research, investigate and define new areas of technology to improve existing products or new product directions.
Knowledge, Skills and Abilities :
Programming Languages experience with C, Python, C++. Experience / Knowledge of Golang is a plus.
Network and System programming on Linux or similar.
Knowledge of Operating System and Networking on Linux or similar.
Experience / Knowledge of virtual machines and containers (like Docker) is a plus.
Experience / Knowledge of container orchestration systems (like Kubernetes) is a plus.
Experience / knowledge of cloud platforms like AWS, Azure etc. is a plus.
Self-starter with the ability to learn quickly in a fast-paced environment.
Strong debugging and profiling skills especially in distributed / multithreaded environment.
Have knowledge about SSL / TLS / PKI.
Knowledge and expertise in software engineering methodologies and effective unit testing.
Knowledge of network protocols such as TCP, UDP, IP, and HTTP.
Excellent analytic / trouble-shooting skills.
Excellent oral and written communication skills.
Able to collaborate and thrive in a fast-paced high-performance environment.
3+ years work experience in C, network programming, and protocols, with a bachelor degree.
The Job Description is intended to be a general representation of the responsibilities and requirements of the job. However, the description may not be all-inclusive, and responsibilities and requirements are subject to change.