Job Description
JOB BRIEF
We are looking for a C++ software engineer who has a strong background in multithreading and understands the principles of creating robust, scalable network applications.
You should be able to write code that is:
Well-structured and maintainable.
Covered with automatic tests. We use google test framework and have internal continuous integration tools that verify all changes to the codebase regularly.
Cross-platform and can be compiled with MSVC/GCC/Clang. We run our Cloud services under Linux/Docker, but the code is often shared with our desktop applications, which run on Mswin/Linux/Macosx. Also, a large portion of code is also shared with android/ios applications.
Also, every team member takes part in code review in both ways: every change is reviewed and everyone takes part in some reviews.
Candidate should be able to work well both independently and in a team environment.
ABOUT THE COMPANY
Network Optix is a successful IT-company that specializes in IP Video Management Systems. We are headquartered in California with subsidiaries in several countries (Australia, Germany, Spain, Russia, Sweden, China, Taiwan). As a result of seven years of development done by talented people, we became a successful growing company.
Just some formal facts about us:
Our video management system is now used across 130 countries. And we plan to expand further.
Unlimited product potential: Network Optix solution is used not only in the traditional bank and retail areas but also by major innovative companies in car manufacturing and even space industries.
Everything today is about user experience, so we provide the best one among professional VMS.
And some more informal facts:
We are guided by our key founding principle: we deliver only high-quality products. And we really mean it.
We strive for challenges and doing the impossible: we were the first VMS that set some current industry standards such as motion detection on server-side or real-time video rewind.
We have a great product but we will be happy to discuss any ideas about making it better.
Every member of our team is an experienced professional but also a bright and interesting person to work with.
KEY RESPONSIBILITIES
Developing new features for our Cloud backend services. These services are mostly written in C++ with some small portion of code written in Go. Examples of such features:
Providing NAT traversal capability to our non-Cloud video management system.
Cloud Storage for the video archive.
We run our Cloud in AWS, so you will also need to create infrastructure for those new features. That includes choosing proper AWS services and adding/updating a piece of Terraform code. Experience with the Terraform is not required. There are people that are always willing to help.
Helping support team in analyzing various issues.
REQUIRED EXPERIENCE & SKILLS
University degree in Software Engineering, Computer Science, Information Technology, or another related technical discipline.
3+ years of professional C++ development.
Strong background in C++ 11/14/17.
Experience in developing multithreaded network applications.
Understanding OOP/OOD Principles.
NICE TO HAVES
Background in Test Driven Development and code review.
Background in Cloud Computing. Understanding the principles of creating robust, scalable applications.
Docker, Terraform, AWS.
Go.
Knowledge and Experience in Networking Protocols (primarily, TCP, UDP, SSL, HTTP).
Linux, bash, console.
SQL.
Company Description
Network Optix makes powerful, exciting, easy-to-use network video management software that enables everything from recording IP Cameras on a Raspberry Pi to capturing Rocket launches.