DescriptionThe Software Engineer will be a member of a team responsible for designing, analyzing requirements, developing, implementing, testing, debugging, and maintaining software solutions for ADTRAN products including but not limited to the following: driver development, application development, system software architecture, software test development, and customer assistance. Requires ability to perform Engineering tasks for a major project or for projects of moderate complexity with limited direction.
Duties and Responsibilities:
- Design or assist in the design and development of multiple L2 and L3 networking protocols running on Residential Gateways.
- Perform or assist in high-level and low-level software design and implementation of new modules and enhancements to existing software.
- Perform or assist in feasibility studies of needed software development.
- Document the design including features definition and provisioning models.
- Conduct and participate in design reviews and code reviews.
- Plan and perform unit and system level testing of implemented software modules and enhancements.
- Help fix software bugs found during all testing phases.
- Work with team to deploy and test incremental software releases.
- Organize and coordinate development activities within schedule and product constraints.
- Other projects and assignments may result and be assigned to accommodate the changing needs of the department and the Company.
Basic Qualifications:
- Bachelor’s Degree in Computer Science, Computer Engineering, Computer Information Science, Electrical Engineering, or equivalent education required.
- 5-8 years of professional experience is required
- Minimum of 5 years of C/C++ programming in embedded environments
- Minimum of 4 years of experience with Embedded Linux, preferably with networking products.
- Strong knowledge of TCP/IP and related protocols, including DNS and DHCP
- At least one scripting language (BASH shell scripting, python, perl, etc)
- Familiarity with Ethernet and networking protocols and experience with embedded software design, implementation and debugging ranging from the driver/interrupt level up to the application level including interprocess communication and multi-threading techniques is required.
- A solid foundation in computer science, with strong competencies in data structures, algorithms, software engineering, and functional programming techniques is required.
- Familiarity with lab test equipment that would be needed to unit or system level test the software component designed is required.
- No travel is expected in this position
Preferred Qualifications:
- JavaScript/HTML
- Iptables and other firewall technologies
- IPTV
- VLAN’s
- IPv6
- Wifi
- VoIP