| |
|
Software Engineer – CPE Engineering Group
Apply for this position
Department: Engineering
Reports To: Lead/Principal Engineer
FLSA status: Exempt
Job Grade: 16
Responsibilities:
- Development of software programs for embedded processors and operating systems, running on a variety of Set Top Box hardware and other Consumer Premises Equipment (CPE).
- Research, plan, design, develop, test and document computer programs applying software development principles / techniques and knowledge of computer science, computer languages, and development. Will work on developing new programs and modifying existing programs.
- Participate in product development team(s). Represent Product Development schedule and deliverables to team.
- Assist with development of software requirements (e.g. operational and performance) / specifications and design.
- Analyze, review, and rewrite programs written by other software developers to determine necessity for modifications; to reduce complexity and increase operating efficiency, modularity and/or adaptability to future requirements / enhancements. Develop new subroutines or expand program to simplify statements, programming, or maintenance.
- Regularly review code and design documents.
- Interface with various personnel sales, marketing, integration, advanced technologies, product development, technical support) to evaluate requirements / specifications / design.
- Analyze software requirements / specifications to define design or determine feasibility of design within given constraints (e.g. time and cost).
- Convert specifications / design into code. Submit code for merge into central repository, as needed.
- Confer with supervisors, leads and representatives of other departments to resolve issues related to assignments.
- Document program development (eg. comment) and produce other product development documents (eg. Feasibility analysis, Requirements, Specifications, Design).
- Coach and mentor less experienced Software Developers.
- May assist with developing software testing procedures and documentation (to describe installation and operating procedures for users).
- May coordinate installation / configuration of software system.
- May specialize in developing programs for a specific customer or maintenance of existing programs.
Qualifications / Requirements:
- Bachelor’s degree in Computer Science, Electrical Engineering or equivalent experience plus 8+ years experience in Software Engineering
- 3+ years experience the following domains; 1) audio/video streaming or other real time computing application, 2) cross-platform development in multiple CPU/operating system environments, 3) network protocols, 4) C++ software development
- Demonstrated Object Oriented knowledge
- Prior experience or strong background in commercial software development in a team environment
- Demonstrated knowledge of embedded systems development, RTOS concepts, hardware/software integration, network communications protocols, streaming media protocols, computer networking, distributed computing, device drivers, OS internals (kernel) level engineering and computer security.
- Good problem solving, analytic skills, and troubleshooting skills
- Strong communication skills (oral, written, interpersonal)
- Solid knowledge of software development concepts
- C, C++, OOD/OOA/OOP, Windows, Linux, UNIX, Java, UML, Algorithm Design
|
|
|
|