
Senior SW Engineer
Reports to: Product Development Manager
Under the direction of the Product Development Manager, Senior Software Engineer specifies, designs, codes, integrates, tests and debugs complex software programs for a variety of platforms to support product development initiatives in the field of Power Line Communications. Additionally provides technical and process improvement feedback into the business. Also provides technical and work planning guidance to more junior developers and works independently with minimal supervision.
Primary Responsibilities:
- Writes technical documents including but not limited to requirement, technical reports, design specifications in a clear and concise manor using in house or Commercial, off-the-shelf (COTS) tools
- Architects optimized software for efficiency and maintainability within internal and external quality and coding standards and based on other engineer’s designs
- Designs software using a known and well respected methodology
- Integrates internal and third party software modules together and integration test the combined package
- Debugs software on target using Commercial, off-the-shelf (COTS) debuggers and/or emulators
- Resolves problems that are diversified and complex, requiring the development of new or improved techniques and procedures when not covered by established practice.
- Validates software on host, on target and in vehicle using in house or external COTS tools
- Provides technical guidance and supervision to junior developers via mentoring
- Complies with, mentors juniors on and suggests improvements with the company’s software development processes and procedures. Including being an active user in version control, defect tracking and change control in accordance with the development process
- Writes and updates support applications/scripts and macros to aid in the development process
- Performs reviews and audits on other team members work products as required
- Works and interfaces with engineers of different disciplines
- Creates and updates automated build and test environments using Commercial, off-the-shelf (COTS) or in house tools
- Works offsite, attends meetings and communicates with clients and subcontractors as required
- Reports project progress, issues and risks to supervisor. Additionally provides effort estimates, feasibility reports and soundness levels on projects/work packages to supervisor
- Plans their own work and the work of junior developers where required
- Keeping abreast of market development and contributing new ideas into the business
- Carries out other related tasks and projects as required
Requirements:
- A Degree in Telecommunications Engineering/Computer science discipline. Expert skill level in embedded C software development with 9+ years related experience
- 5+ experience of working within a rigorous and robust process
- Structured design methodology with 5+ years experience
- Substantial software testing experience including knowledge of different methodologies and the use of Commercial, off-the-shelf (COTS) tools.
- Experience of supervising at least 2 junior engineers for 4+ years.
- Experience of creating and maintaining 2+ different automated build environments
- Experience of multiprocessor system development is preferred
- Experience and knowledge in Power Line Communications standards (PRIME) is preferred
- 8051 and ARM based microcontroller experience would also be an asset.
- Experience of the full product life cycle at a senior level.
The candidate shall additionally have the following skills:
- Good to expert skill level in 1 further high level language and good skill level in Assembler
- Competency in scripting languages such as Perl, Python and Shell
- Expert skill level in configuration management, defect tracking and change control
- Knowledge and experience using an RTOS
- Expert MS office user
- Knowledge of UML methodology would be advantageous
- Experience of working within a V-cycle development model is advantageous.
The successful candidate shall also be able to demonstrate the following competencies:
- Problem solving, leadership skills, teamwork skills, organization skills, analytical skills, time management, good interpersonal skills, coaching skills,
- diligence, flexibility, adaptability, positive attitude to work, strong results orientation, negotiation skills and project multitasking.
