Welcome. Our Growth is Creating Great Opportunities.
Our team is expanding, and we want to hire the most talented people we can. Continued success depends on it. Once you've had a chance to explore our current open positions, apply to the ones you feel suit you best and keep track of both your progress in the selection process, and new postings that might interest you.
Thanks for your interest in working on our team.
Job Summary The 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 - Example target projects:
- Design or assist in the design and development of multiple L2 and L3 networking protocols running on embedded network devices.
- Design or assist in the design of TA5000 Access Module software including new features and maintenance and enhancement of existing products.
- Design or assist in the design and development of the Mosaic Cloud Platform management solution.
- 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.
- Help to model and define APIs using MIBs, CLI, YANG or similar standards.
- 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.
QualificationsBasic Qualifications - Bachelor's Degree in Computer Science, Computer Engineering, Computer Information Science, Electrical Engineering, or equivalent education required.
- 2-5 years of professional experience is required
- Example Qualifications:
- 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.
- Experience with at least one modern functional programming language (Scala, Erlang, Elixir, Haskell).
- Experience with a JVM language (Java or Scala) including, but not limited to, JVM tuning and memory management.
- Experience with C/C
- Experience developing containerized applications (Docker or equivalent).
- Experience developing and deploying large scale applications.
- 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 (Optional) - Knowledge of TCP/IP, IP protocols, Datacom technologies, VxWorks, QNX, embedded Linux, L2 and L3 protocols, Ethernet switching, networking protocols, FTTx, T1/T3, SNMP, CLI, BPON, GPON, and SONET experience preferred.