Sr Software Engineer

Location: Lawrenceville, GA
Date Posted: 09-14-2018
Our client in Lawrenceville designs and develops complete energy system solutions for portable 2-way radios and LTE-converged devices, including P25 radios, Tetra radios, LTE Devices, and Body-worn Cameras. Energy systems include battery chargers, batteries, wireless-charge batteries, and multiple cell chemistries. 

The Energy Software team architects, designs, and develops real-time charging software embedded in desktop chargers, vehicular chargers, radios, devices, and wireless-charge batteries. The Energy Software team defines software platforms, defines concepts and technologies for future products, and allocates requirements between hardware and software. Software products also include Windows-based applications that enable customers to maintain and manage IMPRES™ or IMPRES 2™ battery inventories. 

Battery chargers include single-pocket to multi-pocket chargers operating in desktop or vehicular environments, battery chargers embedded within radios or devices, and battery chargers within Wireless-Charge batteries. The charger technologies are capable of charging single-series-cell or multi-series-cell NiCd, NiMH, Li-Ion, or Ultra-High-Density cell technologies. These chargers interface with other technologies, including USB, USB Type-C, Ethernet, WiFi, and Android platforms. 

Batteries incorporate memory and fuel gauging devices for intelligent charging and for accurate fuel gauging to the radio or device user, especially when the user swaps batteries during extended radio or device use. 

Scope of Responsibilities/Experiences 

Job Summary: 
• Develops embedded software for multi-chemistry adaptive battery chargers and for IMPRES batteries. 
• Develops architectures for energy systems, including the battery, chargers, and devices using or charging the battery. 
• Develops requirements for the embedded software. Completes system engineering and analyses to derive the software requirements and associated hardware requirements. Assist team members in the completion of requirements, test plans and procedures, analyses and the completion of corroborating tests. 
• Defines hardware/software interfaces and assists with writing the hardware/software allocation documents. This includes selection of microcontrollers or microprocessors, pin allocations, and requirements for surrounding circuitry. 
• Designs and develops embedded software for energy systems, using a variety of electrical engineering, software development, and processor emulation and debug tools. 
• Integrates software and hardware. Tests, validates, and maintains the embedded software. Assist team members in the completion of these tasks. 
• Writes product user manuals for the end user. 

Job Content: 
• Embedded software design, coding, test development and evaluation, and quality assurance. 
• Full software product life cycle (cradle to grave). 
• Works within a product development team. 
• Electrical Engineering to define new product concepts (not limited to software) and to allocate requirements between hardware and software. 
• Complies with SEI/CMMI software development processes and procedures. 
• Performs any assigned software role (Requirements, Design, Code, Test, Quality Assurance, etc.). 
• Completes all phases of software design projects. 
• Carries out all in-process and final inspection activities. 
• Develops and tests documentation for the software projects. 
• Uses resources effectively to solve problems that are outside of the incumbent’s technical expertise.
• Seeks out and develops new tools to analyze and solve problems. 
• Develops new hardware/software technology to solve unique problems. 
• Analyzes and recommends the best approach to solving problems (innovation vs. reuse), including both hardware and software aspects for a system solution. 
• Considers latest technologies and new approaches to designs and implementation of new designs. 
• Applies existing technology in new ways to improve performance and productivity. 
• Enhances and improves existing technologies to apply to new solutions. 
• Recommends problem solutions using experience in multiple technical areas. 
• Completes analyses and proof-of-principle tests to determine both hardware and software aspects and the appropriate allocation of requirements to hardware and software. 
• Actively participates in all software development meetings. 
• Participates in peer reviews for requirements, design, code, and testing. 
• Promptly implements corrections and closes action items. 
• Develops test plan, test procedures, and performs software tests. 
• Reviews test results and performs root-cause analyses to resolve problems. 
• Provides recommendations and implements solutions to complex issues. 
• Ensures compliance with quality process and standards. 
• Performs software development, requirements development, test development, and quality assurance functions. 
• Recommends performance enhancements and productivity improvements to immediate team, and implements assigned enhancement/improvement elements. 

• Work is reviewed for accuracy and overall adequacy. 
• Follows established processes and directions, but recommends improvements for productivity and efficiency. 
• Determines and develops approach to solutions. 
• Exercises judgment within defined procedures and practices to determine appropriate action. 
• Contributes to definition and execution of long-term product roadmap and product improvement strategies. 

Interface Internal/External: 
• Builds productive working relationships internally and externally. 
• Develops a positive relationship with other engineering disciplines and Motorola Solutions functions.
• Develops a reputation as a go-to person within and outside of immediate team. 
• Primarily intra-organizational with occasional inter-organizational and external customer contacts on routine matters. 
• Contributes to the fulfillment of projects and organizational objectives. 

Complexity of Role: 
• Provides resolutions to a diverse range of complex problems where analysis of data requires evaluation of a variety of factors. 

Knowledge or Expertise: 
• Developing professional expertise, applies company policies and procedures to resolve a variety of issues. 

Specific Knowledge/Skills: 

• Bachelors Degree Electrical Engineering (or Computer Engineering out of Electrical Engineering department) 
• Engineering experience developing realtime software for embedded microcontrollers or microprocessors. 

••• Experience in: 
- Realtime Embedded Software Design and Development for Microcontrollers and Microprocessors 
- Developing and delivering high-reliability embedded software wherein field maintenance is impractical 
- Product Development within Interdisciplinary Teams (Electrical, Mechanical, and Software) 
- Requirements Definition, Allocation, and Specification 
- Algorithm Development 
- Performing Root-Cause and Corrective-Action investigations (leading software and electrical engineers and technicians). 
- Digital and Analog Electrical Engineering design, analysis, development 
- Electronic test equipment (multimeters, oscilloscopes, logic analyzers, power supplies, etc.) 
- Embedded C in a Microcontroller and Microprocessor- Object-oriented Analysis & Design 
- Software Development Methodology 
- Google Docs, Microsoft Office 
- SEI/CMMI software development processes; 
- Realtime debuggers 
- Software configuration management tools (e.g., Git, ClearCase) 
- Software defect tracking tools (e.g., Bugzilla, ClearQuest) 

••• Experience desired in: 
- Android OS 
- Embedded Linux OS 
- Maxim 1-Wire communications, Renesas microcontrollers 
- Li-Ion, NiMH, and NiCd battery charging methods, techniques, and limitations 
- Embedded software development for USB (1.1, 2.0, 3.0, 3.1, and Type-C) applications 
- TCP/IP, USB, Ethernet / WiFi
this job portal is powered by CATS