Senior Embedded Software Engineer

  • Networked Energy Services
  • San Jose, CA, USA
  • Feb 28, 2018
Full time Engineering Software Application Development

Job Description

Senior Embedded Software Engineer

Job Location: San Jose, CA

Availability: Immediate

Job Description:

NES is looking for a Full-Time Senior Embedded Software Engineer in San Jose, California who can start immediately.

At Networked Energy Services (NES), we work with the “smart grid” (networked electrical grid). We provide solutions that enable electric utilities to operate the electrical grid more reliably and offer their end consumers more innovative services. NES provides an end-to-end, interoperable solution that includes sensors, electricity meters, field area networks, and application software. NES suite of application software provides smart metering operations and network management, as well as, grid applications for non-technical losses, voltage monitoring, and low voltage grid automated topology mapping.

Our Device Software Group is looking for a seasoned embedded software developer for our electric meters and related devices.  Our products are designed to have advanced functionalities and high reliability/availability yet be low-cost and backwards-compatible.  The device platforms are ARM-based with interfaces for analog and digital I/O, and communicate with serial, powerline, and modems.  The software is developed using C/C++ on a highly constrained software environment.  The candidate must have 8+ years of experience in embedded software development, is a self-starter who can create or modify features from requirement through testing, works well in small teams including contractors, and exhibits technical leadership.


Sr. Embedded Software Engineer Responsibilities include:

  • Specify, design, code, test and debug embedded firmware for smart meters and smart grid connected devices
  • Develop low-level hardware peripheral drivers (e.g. LCD display, memory chip, modem, real-time clock) for standard and non-standard OS
  • Write detailed specifications and unit test plans, and conduct design and code reviews
  • Investigate and determine scope of new features, provide schedule and computing resource estimates, evaluate design alternatives
  • Analyze, troubleshoot, and diagnose system and application issues
  • Interact with engineers on cross functional teams, including hardware, system test, manufacturing test, customer support
  • Maintain existing baselines of firmware for service packs
  • Understand and follow company practices for documentation, development methodologies, and tools for specification, source code control, problem reporting, unit testing, and team communication
  • Port code among platforms
  • Provide technical guidance and development project management for other engineers

Requirements and Qualifications:

  • BS or equivalent degree in Computer Science/Engineering
  • 8+ years of embedded C or C++ programming experience
  • Experience developing with Linux, RTOS, or custom OS
  • Experience developing firmware for MCU’s constrained by hardware resources (e.g. RAM, Flash, CPU cycles, I/O, low-throughput communication)
  • Experience developing low-level firmware for hardware peripherals (e.g. persistent memory, digital I/O, interrupt handlers, device drivers, real-time clock)
  • Basic electronics familiarity: voltage, current, resistance, capacitance
  • Experience or knowledge with serial communication, digital I/O, analog signal processing, and protocols
  • Working knowledge of lab tools such as in-circuit emulators, logic analyzers and oscilloscopes.
  • Solid knowledge of object-orientated design and product life cycle
  • Experience using revision control and bug tracking systems
  • Excellent verbal and written communication skills

Preferred Skills:

  • Experience and/or good understanding of metering technology (AMI/AMR, ANSI and IEC protocols) and metrology (ISO standards, calibration, homologation).
  • Understanding of analog/power concepts like RMS measurement, harmonic distortion
  • Experience with hardware serial protocols like I2C, SPI, RS232
  • Low-level experience with embedded memory technologies, such as Flash, EEPROM
  • Communication protocol development or debug experience
  • Experience and/or good understanding of power-line technologies and protocols
  • Experience with or good understanding of security concepts: encryption, authentication, hashes/digests
  • Embedded microprocessor/controller and PCB-level hardware product development and troubleshooting


At NES, we believe that a collegial, supportive workplace brings out the best in our employees. That’s why we offer a range of benefits and perks, including:

  • Healthcare coverage for you and your family, along with dental and vision coverage
  • Employee referral bonus program
  • Employee assistance program
  • Pre-tax offerings: 401(k) and flexible spending plan
  • Company paid life insurance & AD&D, STD, and LTD
  • Competitive vacation and sick plan
  • Gym Membership Benefit

In order to remain competitive, we regularly re-evaluate our benefits package. We’re committed to fostering an environment that encourages creativity, productivity, and excellence.

When applying, please note that you saw the job posted on the NOVA Job Board. If you need help with your resumé, please see a NOVA Career Advisor.