Design and develop host-based firewall software for Windows and Linux operating systems
Build and maintain efficient, reusable, reliable and secure code in C/C++
Work with a team of software engineers to deliver high-quality, secure, and reliable firewall solutions Participate in the full software development life cycle, including requirements gathering, design, implementation, testing, and maintenance
Stay up-to-date with the latest security trends, technologies, and attack methods, and apply this knowledge to improve our firewall solutions
Accountable for allocated deliverables (i.e. solutions, bug fixes, etc.)
Contribute to technical design activities and review the designs to ensure that applications will exhibit performance, scalability, maintainability, appropriate reusability and reliability.
Develop and maintain solutions that operate within a highly scalable distributed multi-tiered platform
Capture and clarify functional and non-functional requirements and further develop into technical design.
Help in making recommendations on technical architecture design and solution to ensure it aligns with technology best practices.
Providing design recommendations, developing and integrating projects.
Through participation in refinement and planning sessions, you'll work with other team members to analyse development requirements, provide design options and complexity estimates, and agree how to deliver the requirements.
Translating business and technical requirements into detailed design specifications for application code and modules.
Demonstrating a consistent focus on quality, you'll ensure that your work delivers reliable, robust software through the creation and execution of automated tests.
Provides assistance in researching new and emerging technologies. Works with vendors to understand technology. Evaluating new tools, technologies and platforms to be included.
Contribute to the company’s Software Development Life Cycle (SDLC).
Many years of experience in software development
Familiar with a variety of hardware and software platforms, demonstrated skills in system engineering paradigms.
Experienced C/C++ engineer with excellent knowledge of multithreading, user and kernel level programming & debugging, inter-process communication and build tools (CMake)
Have Kernel Driver development experience.
Practical experience with cross platform application development on Windows and major Linux distributions (Red Hat, Oracle, CentOS, Debian, Ubuntu, etc.)
Understanding of TCP/UDP standards & network protocols
Excellent problem-solving skills and ability to work independently and in a team environment
Solid technical background with understanding of programming styles, frameworks, design patterns and unit testing.
Understanding of security implications and secure coding
Practical experience with agile development methodologies and tools (Scrum, JIRA etc.)
Superb communication skills, both verbal and written
Skill for writing clean, readable code and reusable components
Experience with Test Driven Development and / or Behaviour Driven Development
Self-motivated, pressure-tolerant, and result-oriented personality with innovation mind-set
Master/Bachelor’s Degree in Computer Science, Computer Engineering or related discipline
Experience developing host-based firewall or security software
Experience with networks and network firewall security
Experience with the following technologies: AWS (EC2, ECS/EKS, S3, Lambda, IAM, Aurora, Redshift, etc.) and cloud database technologies (AWS RDS, Aurora, Postgres, Azure SQL, etc.)