Company Description

SparkMeter is a venture-backed company that was founded in late 2013, a spin-off of the non-profit EarthSpark International. We developed our low-cost, pre-pay enabled, smart metering system as a solution for electric utilities in developing countries to serve low-income customers. Our metering system is being widely adopted by utilities serving customers in rural parts of Asia, Sub-Saharan Africa, and Latin America and the Caribbean.

Job description

In this internship you will work directly with the systems engineering team lead and the lead firmware engineer at SparkMeter. You will assist in several mission critical projects and make a significant contribution to the companies needs.

This internship is outcome oriented and will be designed around key deliverables. In addition to the specific deliverables, it is crucial to thoroughly and concisely document your work. You will need to have a keen focus on clean, readable, and maintainable code as it is critical to the long term success of this project. Aside from the specifications, this project is fairly focused on software development and software integrations with hardware. Your changes should follow best practices in software development and will go through code review prior to being accepted.


  • 2.5 years or more towards a Bachelor's degree in CS, or other quantitative engineering / science degree
  • 2+ years C programming
  • 1+ years in a higher level language (ideally Python)
  • Strong analytical and critical reasoning skills
  • Ability to write clear and concise documentation


  • Comfortable reading assembly languages
  • Experience working with low level drivers and interfaces: SPI, ADC, interrupts, etc.
  • Experience working with at least one RTOS
  • Understanding of operating system principles (preemptive multitasking vs cooperative, interrupts, memory protection, etc.)
  • Understanding of networking and distributed system principles
  • Experience working with wireless communication protocols (IEEE 802.15.4, LoRA, etc.)
  • Familiarity with Linux and POSIX standard libraries / interfaces / principles
  • Excited about optimizing solutions for severely resource constrained environments (16 bit processors, 10s KB of RAM and FLASH)
  • At least one completed project that demonstrates your ability to acquire requirements, define specifications, and deliver reliable solutions
  • Experience in distributed version control (preferably git)


This is a paid internship.




As soon as possible