Job Description
Position: C / C++ Developer
Line manager (reports to): Project Manager
Work location: Remote
Scope of job Global
1. Objectives of the position: The C / C++ Developer performs research, analysis, and evaluation of
existing or new software applications and operating system needs, and deals with the design,
development, testing, and maintenance of software solutions that meet these needs.
2. Tasks:
research, analysis and evaluation of software applications and operating system needs; and
capturing of that research in Gitlab repository
logging of all work in NXLog work tracker
research, design and development of NXLog EE and CE code.
daily committing of code into Gitlab repository
evaluation of interface between hardware and software in consultation with other developers and
lead developer;
code review of other developer’s software according to NXLog EE and CE coding standards and
style, using Gitlab
daily estimation and update of development activities via Gitlab
daily communication of activities planned and achieved to the project manager and their
teammates via e-mail.
estimation and collaboration in planning session via digital video conference facilities.
testing both manual and unit tests of software developed by yourself and your teammates.
modifying existing software to fix bugs, adjust to new hardware, or improve performance
management of software programming and documentation development; where required
discussion with technical writers to explain work that has been completed.
discussion with product manager and project manager regarding the development and
maintenance of software systems.
3. Roles and responsibilities:
participation in development and testing – through the writing of code, unit tests of your own
work, as well as code review of teammates work.
develop code in accordance to NXLog EE/CE coding style and guidelines
active participation in the team-work – contributing to discussions and estimations
daily communication with team project manager and teammates
close cooperation and communication with all development team members and other product
teams.
awareness and tracking of work achieved
planning of work and leave to ensure that project timelines are not jeopardized
discussion with support staff to trouble shoot client problems.
ensure code and issues are committed and up to date
provide input to technical writers where documentation is required.
delivering assigned tasks according to constraints
communicating where constraints will be missed i.e. timings or technology stack
continuous learning on new networking technologies and software products, technologies
continuous strives to develop innovations that serve the company strategy and overall team
performance
4. Requirements:
Experience:
C and C++ development experience under Windows/Linux/Unix yes
familiar with open source developer tools such as gcc, autoconf, automake, cmake, gnu make,
valgrind, git, svn, etc.
previously worked with various libary APIs (libc, openssl, apache apr, expat, boost, pcre, etc.)
good knowledge of data structures and algorithms yes
experience with log management tools (SIEMs, Splunk, Snare, syslogd, SEC, Logstash, Scribe,
etc)
scripting languages: shell, perl or python, bash
multithreaded programming knowledge yes
crypto, SSL/TLS, PKI yes
knowledge of network protocols on user and programming level ICTP DCPIP yes
knowledge of version tracking system GIT ect.
secure coding practices
C++11, C++17 and STL
development experience with distributed systems
Qualification: Degree on Computer Science or similar
Competencies: quick learner, eager to understand new technologies
Competencies for remote work: self-governance, autonomy (motivation and proactiveness), strong
time management, intercultural communication, collaboration, adoption of remote communication
tools, discipline, reliability, self-motivation, self-advocacy and flexibility
Professional experience (years): minimum 3-5
Language: fluent English skills (oral and written)
PC knowledge: Developer experience with exposure to multiple operating systems, Windows and
Linux