Information Technology and Services

Software Engineer

Entry level

SparkMeter ( is a venture-backed company that was founded in late 2013. SparkMeter provides smart metering solutions tailor-made for rural and central utilities in developing markets, where 2.1 billion people live without reliable electricity access. The simple plug-and-play solution enables utilities operating in remote locations to access a range of features – prepaid billing, customer communications, and remote monitoring and control – that improve their operations and help them achieve financial sustainability. Our metering system is being widely adopted by utilities serving customers in Asia, Sub-Saharan Africa, and Latin America and the Caribbean.

Come join SparkMeter’s Systems Engineering team and help increase electricity access in developing countries. As a Software Engineer, you will design, build, and maintain the software and infrastructure that our utility customers around the world depend on to provide reliable power, and the tools that our colleagues need to sell, provision, and support installations of our smart metering systems.

SparkMeter provides a highly integrated solution. As a Software Engineer you will play a key role in component design and integration. While the Systems Engineering team has a strong background in software engineering, we are at our best when we are applying these same analytic and design principles to the whole product and working in concert with the rest of the company.

You’ll focus on:

  • Software engineering. All of our projects are designed with planning, development, deployment, and maintenance in mind, and you’ll design, build, maintain, improve and document our software systems in accordance with these principles.
  • Infrastructure development. Our infrastructure is the framework that allows us to quickly develop and deploy new software. As we continue to grow and scale as a company we must also continue to design, develop, deploy, and maintain our infrastructure. You’ll work with our team to develop infrastructure in a way that pays off technical debt, but that also allows us to quickly respond to the changing needs of our customers and market.
  • Systems engineering. Systems Engineering supports all aspects of the company – not just our product. You’ll take a holistic approach to our systems by working closely with our colleagues in other teams like hardware, customer support, and sales. Your role will be as a technical lead to ensure that systems are working to fulfill their purpose.

Where You’ll Work
SparkMeter’s Systems Engineering team is based in Washington D.C., and we would love to have you join us here.

How You’ll Work
You will join daily software team stand-ups to build relationships and report on personal development progress. Our weekly bug triage meetings are held to make sure we’re fixing as many bugs as we can before writing new code. You will work on regular code reviews with other engineers to teach and learn new coding strategies and catch mistakes. Frequent collaboration with the other teams at SparkMeter will be needed to accomplish projects.

SparkMeter was founded to promote opportunity in underrepresented communities.
SparkMeter’s mission is to increase access to electricity in underserved communities. We believe that access to electricity and the services derived from it unlock human potential and create opportunities for underserved communities to achieve great things. This commitment is also reflected in our hiring ethos: we believe the strongest teams have diverse backgrounds. We encourage applications from members of groups currently underrepresented in our sector and in technology in general.

Requirements & Skills

You will be a good fit for this role if you have:

  • Several years of software engineering experience. Much of our codebase is written in Python and familiarity with the language is key, even if you are not an expert. You should be familiar with key aspects of computer science such as data structures, algorithms, and distributed systems.
  • Linux and POSIX systems experience. Our systems are built on Linux, and familiarity with the OS in general and suite of tools is critical to your success in this role. You should be very comfortable working from a terminal.
  • Experience with key development tools and practices: Git, unit testing, continuous integration, automatic deployment, release cycles must be familiar tools and practices to you.
  • Experience with AWS or another cloud provider. You’ll work every day with the AWS Console or CLI, and existing AWS experience will be an asset for you. However, significant work experience with another provider — Google, Azure, and so on — can be a good substitute.
  • Strong communication and teaching skills. You will need to be able to convey your ideas and explain your solutions to others. You should feel comfortable explaining complex technical solutions to an audience that is not familiar with them.
  • Strong problem solving skills. We are looking for a problem solver. Writing code should be a very powerful tool at your disposal, but not all solutions are written in code. Sometimes the right solution might be in the process, documentation, or communication. You should always be striving towards simplification. Simpler systems are easier to understand, debug, and maintain.
  • Natural curiosity. We are looking for someone who is naturally curious with a hacker mindset. Debugging isn’t a chore, it’s a personal challenge. You can look at a log file and say that something is off and figure out why.
  • Comfort with imperfection. It’s important to be able to admit mistakes, find fixes, and learn from those experiences to not repeat them.
  • Emotional intelligence. You are open, honest, and dedicated to the growth, health, and well being of yourself and the people around you. You should be in charge of maintaining your own work/life balance and say something when you need help. If you see others struggling you should offer support.

Sparkmeter is at its best when it’s people are at their best.
We’d also like to see (but don’t require):

  • Web development experience. Experience with a Python web framework, such as Flask, is strongly recommended. You should be comfortable designing and implementing REST APIs.
  • HTML & CSS. You should be at a level where you can easily create web pages.
  • Javascript & jQuery. You should be able to read and understand Javascript.
  • Constrained systems. Our deployed systems operate behind high latency, low-bandwidth cellular networks on constrained and embedded hardware. You should find working in such an environment to be an exciting challenge to overcome.

Tagged as: north america, software engineer