Advanced Software Engineer

Adtran10 months ago
Dallas, TX, United States
On-site
Full-time
Junior Level (1-3 years)

Job Description

Position Overview

The Advanced Software Engineer will be responsible for designing, analyzing requirements, developing, implementing, testing, debugging, and maintaining software solutions for ADTRAN products. The role involves driver development, application development, system software architecture, software test development, and customer assistance. This position requires a highly skilled professional with a broad knowledge base in a design specialization, acting as a technical authority on assigned projects.

Key Responsibilities

  • Design and develop software applications and features in a cross-functional Agile development team
  • Adhere to Software Development best practices including Agile/Scrum
  • Partner with others in a cross-functional team to meet sprint goals and broaden skills
  • Design and implement multiple L2 and L3 networking protocols on embedded devices
  • Develop SDX Access and Aggregation software including new features and enhancements
  • Prevent defects by performing comprehensive automated unit and integration tests
  • Design and implement features for the Mosaic Cloud Platform management solution
  • Produce high-level and low-level software designs for new modules and enhancements
  • Collaborate with engineers and architects across different sites and cultures
  • Model and define APIs using MIBs, CLI, YANG, or similar standards
  • Utilize Object Oriented Design methodologies, design patterns, and data structures
  • Conduct design reviews and code reviews
  • Develop software in Linux Embedded systems
  • Apply multi-tasking and event-driven programming aspects
  • Lead development activities to meet schedules and product constraints
  • Design and maintain subsystems through the software development life cycle
  • Understand product architecture, design, processes, and development tools
  • Perform other projects and assignments as needed to meet departmental goals

Required Qualifications

  • BS or MS in Computer Engineering/Computer Science or equivalent education is required
  • 8-12 years of professional experience is required
  • Experience with Ethernet and networking protocols, and embedded software design from the driver/interrupt level to the application level, including interprocess communication and multi-threading techniques
  • Experience with real-time software design and programming with C/C++ in a Linux build and development environment
  • Experience developing in embedded Linux applications
  • Proficiency with C/C++
  • Familiarity with at least one modern scripting language (Python, Ruby, Groovy, Perl, Bash)
  • Experience developing containerized applications (Docker or equivalent)
  • Experience developing and deploying large scale applications
  • Solid understanding of Layer 2 and Layer 3 data networking principles (TCP/IP, IP protocols, Ethernet switching, OAM) is required
  • Familiarity with lab test equipment for unit or system level testing of software components is required
  • Travel is limited and rare for this position

Preferred Qualifications

  • Experience developing software for whitebox and custom hardware targets
  • Experience with network operating systems usage, maintenance, and customization for NOS such as OcNOS and ONL
  • Experience with L3 commercial software stacks like SSI and Metaswitch
  • Experience with programming and control of silicon-based Ethernet switching and routing
  • Implementation and design experience with Datacom technologies, FTTx, T1/T3, SNMP, CLI, BPON, GPON, and SONET is preferred
  • Familiarity with at least one modern software version control workflow system (GitLab, GitHub, Bitbucket) is preferred
  • Experience with Agile development principles, including the Scaled Agile Framework, is preferred
  • Experience with at least one modern functional programming language (Scala, Erlang, Elixir, Haskell) is a bonus

Required Skills

Scripting Languages (Python, Bash)
Containerized Application Deployment (Docker)
Software Development Methodologies
Real-time Software Design
Networking Protocols (Ethernet, TCP/IP, Layer 2/3)
Embedded Linux Development
C/C++ Programming
Agile/Scrum Processes
Driver and Application Development