Responsible for analyzing, designing, debugging and/or modifying software; or evaluating, developing, modifying and coding software programs to support programming needs. Maintain and enhance existing code with focus on implementation. Collaborate with and assist team of engineers in writing functional, design and user interface specifications. Follow software lifecycle process when developing software. Help identify solutions to problems encountered in software cycle. Develop software for embedded targets. Develop device driver and firmware. Develop communication protocols for micro-controllers. Conduct research and develop working prototype from scratch. Collaborate with other team members to develop embedded code. Contribute to project name Norton Core. Use C/C++ to develop embedded code which is part of the Norton Core product. Utilize graduate-level research and analysis skills. Employer will accept Master’s degree in Computer Science, Engineering or related technical field and 2 years of work experience in job offered or in a computer-related occupation. Position requires 2 years experience in the following: 1. Embedded software development in C/C++ 2. Microcontrollers 3. Experience with device driver development; 4. Experience working with source control tool, debugging tools Position requires graduate coursework, project, internship or thesis in the following: 5. Software development on a Linux or Unix based operating system. 6. Understanding and application of networking protocols (TCP/IP, UDP, DHCP, ARP, Http, Https, DHCP, DNS); 7. routers, switches, routing protocols; 8. experience on a network stack; 9. network analysis tools, specifically Wireshark 10. Understanding of IPv4/IPv6; 11. Understanding of multi-threading systems, synchronization techniques within multi process environments.