Job Description
You’ll be joining a small team which develops and maintains a collection of embedded products, server support software, and desktop control software. Though you will work closely with other team members, this position will grow to provide substantial independent responsibilities and a rewarding career.
Your development responsibilities will be varied, and include:
- Using Java and some C++/C to develop the software that controls our Linux-based variable message signs.
- Using Java to develop features in the server control software which oversees thousands of message boards, arrow boards, and other equipment.
- Developing programs on embedded Linux systems to support remote sensors such as radar, queue detectors, etc.
- Developing programs which run in our server cluster and remotely read data from sensors, cameras, and other data sources directly connected to the internet.
- Occasionally developing microcontroller firmware for resource constrained 8-bit and 32-bit embedded devices (display modules, charge controller, etc.)
Skills & Requirements
The languages we use are Java, C++, C, Python, and Perl. The ideal candidate will have experience with Java or at least an object-oriented programming language with native types (e.g. C++), higher level languages (e.g. Perl, Python), and the ability to quickly learn new languages, libraries, and tools. The ability to communicate effectively with non-programmers is a requirement.
As many of our products run embedded linux and our development environment is Linux based, experience with Linux will be very helpful. We use git for version control, Jira for issue tracking, and Slack for communication within the development team, including (typically brief) daily meetings.
All candidates must be eligible to reside and work in the US. Work from home is an option. Most of the software team works from home, so we have a strong remote culture built up. Unfortunately, for tax reasons, we cannot consider residents of New Jersey, Texas, California, Oregon, Vermont, Massachusetts, Connecticut, or Rhode Island. For remote work, a development workstation will be supplied and is the responsibility of the employee to maintain, and a high speed internet connection is required.