Software Developer

As a Developer II, you’d work primarily in enhancing current integrations and helping debug issues as they arrive. You should understand the principles of software development enough to be able to work independently on one area of the codebase after an introduction from a more experienced member of the team.

Engineering
Full-time
Remote
Primary Responsibilities
  • Contribute enhancements to existing features, track down and fix bugs, and work with other developers to build new features;
  • Provide on-call support (after an initial period spent learning our systems) on escalated tickets and to members of our team who are working on access features in the field;
  • Write clean, correct, well-tested code that incorporates feedback from code reviews and following pre-determined best practices;
  • Provide feedback for other developers in code reviews;
  • Communicate quickly and effectively when blocked on a task.
Required Knowledge
Languages and Frameworks

Must haves (this is a backend focused role on a codebase mostly in Python and Django):

  • Proficient in Python or a similar backend language (e.g. Ruby, NodeJS, PHP, C#, etc.);
  • Familiarity with Django or a similar backend framework (e.g. Flask, Tornado, Rails).
Nice to have:
  • Some experience with TypeScript and React or similar front-end languages and frameworks used in building modern web applications (e.g. Angular, VueJS, etc.);
  • Able to demonstrate they know enough to write production-quality code independently (after some help getting started and with needed help when blocked);
One of the following would help show the above:
  • Have worked with production code either in a prior job, internship, co-op, or bootcamp;
  • Have built complex individual projects;
  • Have worked in an position adjacent to software engineer (e.g. QA, DevOps, etc.) and can demonstrate proficiency in Python or a similar language;
  • Fast and resilient learner who enjoys the challenges of new technology and systems;
Not necessary to have prior IoT or hardware experience – most of the time we're interacting with devices through APIs. We aren't writing software to run on the devices themselves.