About the Network Software Engineer
You will be responsible for adding new product features that may require you to work on Linux kernel and driver apart from user space applications under Linux environment.
You will also deign software tests for those applications as well as writing and maintaining design documentation including user manuals.
In addition to this, your responsibilities will include:
- Adding new maintainable features in an existing Linux based application or add new application.
- Re-engineer existing applications for new hardware designs, while maintaining legacy products.
- Writing and maintaining product documentation – requirements, design and user manuals.
- Providing support to the manufacturing team as required.
To be successful, you’ll need to have:
- A degree in a relevant subject with a few years’ experience working in a software development environment.
- You must have excellent C programming skills plus exposure to or knowledge of object-oriented design.
- Some scripting experience (for example, shell or python) is essential.
- A basic understating of POSIX API and Linux development.
- Knowledge of networked applications using IPC, TCP & UDP via sockets API is important as is hands on hardware experience (finding hardware faults through software).
- A desire to learn new skills is essential within this role.
In addition to this it would be great if you had a basic understanding of the software release process and a Test-Driven Development approach is beneficial as is the knowledge of Software Defined Networking and its associated protocols / interfaces.