Engineer IV Product Software

Windstream - Rochester, NY (30+ days ago)3.3

Allworx is an award-winning maker of VoIP communication systems for small- and medium-sized businesses and is a wholly-owned subsidiary of Windstream. Allworx provides a complete portfolio of VoIP systems, IP phones, network switches and advanced software options to help businesses create solutions tailored to meet their unique needs.

Senior developer in the engineering team environment; specifying, designing, developing and implementing sophisticated software sub-systems, largely on for desktop and web, on Windows .NET platforms (IIS MVC and WinForms), with some Javascript and Java, as well as integration with embedded software applications running on custom hardware platforms. Responsible for all phases of the software development process including software design, implementation, participation in design and code reviews, and support of their implementations through to software test and field support. Takes a technical leadership role in the group, assists with engineering innovative solutions to complex problems, assists and mentors other members of the group and peers. Requires expertise with multi-threaded programming techniques using knowledge of specialized software development concepts and procedures.

Essential Duties and Responsibilities (other duties may be assigned):
Designs and implements of new product software modules and sub-systems typically written in C#. Javascript, Java, C++ or C.
Collaborates with other Senior Software Engineers on the team to define the detailed interfaces between modules and sub-systems and providing guidance and direction to the Product Software Engineers on the team.
Definition of tasks to be completed by Software Product Engineers on the Team.
Develops sub-system functional requirements based on higher level product requirements and subjective input from sales & marketing.
Conducts design and code reviews of one’s own work product and participation in design and code reviews of other team members’ work product.
Suggests improvements to software, processes and procedures such that these improvements may be incorporated into the team’s process and future versions of the product software.
Leads and directs activities related to problem diagnosis and resolution of product issues based on interactions with product test teams and customer support teams. This responsibility involves working closing with Product Software Engineers, Test Engineers and Customer Support engineers who require timely solutions to field problems.
Assists in the gathering and composition of detailed design requirements based on a High-Level Requirements Documents.
Investigates and evaluates evolving technologies, protocols and algorithms that may be applicable to product and learn to apply them to future implementations.
Develops and tests software in all areas of the product.
Self directed learning of needed data structures, algorithms and programming languages that may be required as the product line evolves.


Minimum Requirements:
College degree in Engineering or a related field and 5-7 years professional level experience with 0-2 years supervisory experience for roles with supervision; or 9+ years professional level related Engineering/Technical experience with 0-2 years supervisory experience for roles with supervision; or an equivalent combination of education and professional level related Engineering/Technical experience required.

Master of Science Degree in Computer Engineering, Electrical Engineering or Computer Science.
Eight (8) or more years of professional experience.
Some level of specialization or expertise in one or more of the following areas: Multi-threaded embedded programming, Communications and protocol stacks (TCP/IP, Web/Internet protocols, etc), embedded control systems, telecommunications, SIP and VoIP, device drivers, Linux, board support packages, device drivers, firmware.

Desired Work Traits & Skills:
This position requires mainly self directed management of ones own time and estimation of schedules for assigned tasks and definition of tasks of others.
Must be comfortable working in an entrepreneurial team focused environment and a quick learner of new skills and technologies.
Position requires travel less than 10% of the time.