Job Description The candidate will join an experienced, exciting Agile/Scrum software development team as a Software Developer. We are looking for an enthusiastic team-player with a can-do personality who is passionate about software and delivering a quality product to our customers.
The role will involve writing Java /C++ code for real-time, multi-process, cross platform applications for the broadcast, professional video industry and cable providers in a scrum team of software engineers, test engineers, technical writers and hardware engineers.
The candidate will be expected to show potential to grow into a strongdeveloper, delivering solutions in accordance with our best practices andquality standards. Knowledge of Java and Linux operating system will give you head start althoughsupport will be given to get up to speed on our technologies. Their time will be split between writing new features and fixing issues in the current codebase asrequired by business demands. Responsibilities
Working closely within an Agile/Scrum team to develop test and document software products for the broadcast video and signal monitoring business.
Responsible for the design, architecture and implementation of robust and testable solutions that meet our definition of ‘done’.
Work closely with other team members and clearly communicate ideas.
All team members are expected to test fully their solutions and to utilize test automation to the maximum extent practicable.
Research, choose and utilize appropriate design patterns to create elegant, re-usable and testable designs. Software and automated tests are expected to be written to a standard that ensures it is extensible and maintainable by themselves and others.
Be involved in all aspects of bringing products to market including the capture of customer requirements, prototyping, design, implementation, testing, production support and remotely assisting in-field technical support teams.
Contribute to a vibrant, lively work environment
Self-motivated and passionate about high-quality software development.
You should have a computer science/engineering background with at least one (1) to three (3) years of valuable experience.
Aptitude in Java, a background in C++ advantageous and other high level languages also considered.
One or more demonstrable competencies from:
Part of one or more Scrum “sprints” in an Agile development team;
Real-time applications under Linux;
User interface implementation;
Networking applied to software development like usage of UDP and TCP sockets.
Writing cross-platform libraries (Linux/Windows);
Debugging with a variety of debugging tools;
Broadcast and signal monitoring systems;
Other useful qualifications:
Jira – Agile/Scrum management tool;
Git/Bitbucket – Code management and review tool;
Virtualization technologies like VMWare, OpenStack, Docker;
Databases: SQL using PostgreSQL or similar;
C++, STL and Boost/C++11;
OpenGL software development;
Video codecs and wrappers, specifically MPEG, H.264 and Transport Streams;
Linux shell scripting like BASH or PERL language.
Networking management and troubleshooting performance issues.
One or more Cisco certifications.
Real time, embedded systems;
Knowledge of UML and Design Patterns;
Knowledge of Code Analysis and Unit Testing tools;
Continuous Integration with automated testing and deployment;
Excellent communication and documentation skills;
Enthusiasm, with a passion to learn new technologies;