Senior backend / embedded systems engineer (REMOTE in NC) at NDSL IncPosted on: 03/20/2021
Location: Raleigh (ON-SITE)
**This position is full time remote for people living in NC.** NDSL Cellwatch, makers of the Cellwatch battery management system are recruiting a senior software developer to help grow our product features. We support a fleet of embedded Linux devices running an Angular / Go / C++ stack. We're looking for someone to step in and support some existing code features but who will help us build out new product functionality. A lot of new development is happening in Go, however we have existing C and C++ code bases to support. **About the role:** You’ll be joining a small software team that consists of front and backend engineers - from the low level data acquisition through to the web front end. We presently work with a variety technologies. We support an existing ExtJS / NodeJS combination in addition to an Angular / Go configuration. As in many small companies, we support legacy products but manage the backlog and interruptions to mitigate interrupts. As a senior developer, we’re looking for demonstrated execution in the following areas: * Ability to design and express complex software architectures * Relational database design including integrity, security, replication and failover * Knowledge of design patterns (why they’re important, when to use them) * You’ve built and shipped working products * The desire to lead and mentor others less experienced on the team Experience in the following areas are highly desired: * Go * C / C++ * Good working knowledge of Linux sub-systems, bash scripts, etc. * Angular / React / or other structured frameworks (jQuery doesn't count) The following will score bonus points: * Cloud deployment (via Heroku, AWS, GAE, etc.) * Containerization and management experience We understand it takes many working styles and skillsets to build a world class team. We also want to build a strong working culture where it is safe to give and receive feedback and ideas. **Education:** A technical degree is preferred, but applicants with proven ability to execute and a strong technical foundation will be considered.