Principal Full Stack Engineer
1800 S McDowell Blvd Petaluma, CA 94953
The Principal Software Engineer will be responsible for developing the cloud and edge applications for NSC’ s data learning and services platform. This person will also be part of machine learning and data analytics applications across silos of data to build best in class analytics software. This person will architect and perform at a senior level to help build out our technology platform using modern frontend, backend and mobile application technology frameworks. Must be willing to collaborate and help others on the team as necessary and be a solid team player. Person will work with smart bunch of folks who are doing state of the art development work in areas of home automation, security and control. Person will be interacting with product management and customers on the bleeding edge of technology to understand detailed requirements and create brand-new products for the market.
- Advance the state of the art in building services products with React.js, Node.js, Java, PHP, Go and mobile (Android/iOS) frameworks.
- Full stack development for desktop and mobile for a data learning and services application that' s streamlining user interfaces and workflow processes in an important industry.
- Work with other top-notch engineers, product manager, program managers and QA
- Gathering functional requirements, architecting framework, developing technical specifications, and project & test planning
- Designing/developing web, software, mobile apps, prototypes, or proofs of concepts (POC’ s)
- Act in a technical leadership capacity: Mentoring junior engineers, new team members, perform code reviews and applying technical expertise to challenging programming and design problems
- Resolve defects/bugs during QA testing, pre-production, production, and post-release patches
- Experience with Agile Development, SCRUM, or Extreme Programming methodologies
- Design and develop the front end for our customer-facing applications using MVC framework
- Design and develop supporting components and services for the backend tiers focusing on fault-tolerance and scalability in a multi-tenant enterprise environment
- Maintain and improve the functionality and performance of the existing web applications; refactor legacy codebase
- Help shape and execute the technical roadmap to develop next generation features; integrate corporate- and product-level architecture principles and goals into the team’ s project work through designs, implementation strategies, and project sequencing.
- Drive a culture of quality, technical curiosity, continuous improvement, and evidence-based decision making in the organization.
- Other Duties as assigned
Knowledge Skills and Abilities:
- 7+ years experience developing web, software, or mobile applications
- BS/MS in computer science
- Require full-stack development experience with technologies like React.js, Node.js, Java, PHP
- Require experience with one of the major relational databases (MySQL, Oracle, Postgres) and noSQL databases (Cassandra, Dynamo DB or Mongo DB)
- Require Git, SVN or similar distributed SCM tools experience
- Required to have strong object oriented programming experience using C++, C# or Java
- Require experience and Strong understanding of entire Software Development Life Cycle (SDLC), Software design/architecture process, CI/CD processes, unit testing & Test Driven Development (TDD)
- Required experience with web services (consuming or creating) with MQTT, REST, SOAP, Dockers and Containers.
- Require experience with Cloud technologies e.g. AWS and GCP
- Require strong knowledge of SOA, object-oriented programming, design patterns, multi-threaded application development
- Essential to have experience in reporting and analytics, queuing and real-time streaming systems
- Essential to have experience developing, maintaining, and innovating large scale, consumer facing web or mobile applications
- Always Be Learning: Experience with open source technologies (if no practical work experience w/ Big Data, or cutting edge front-end technology— you’ re prototyping and/or researching the up and coming technology and solutions
- Preferably have a Github account with self-authored projects is a plus
- Preferably have experience in mobile (Android/iOS) frameworks
- Prefer experience & knowledge of Hadoop, ElasticSearch, Hive, Pig, Kafka and Machine Learning
Working Conditions: The work environment characteristics described here are representative of those an employee encounters while performing the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
- The noise level in the work environment is usually moderate
- Sufficient clarity of speech and hearing or other communication capabilities, with or without reasonable accommodation, which permits the employee to communicate effectively on the telephone and in person;
- Sufficient manual dexterity with or without reasonable accommodation, which permits the employee to frequently operate a personal computer (estimated 80%-100% of the typical workday) and other office equipment
- Sufficient personal mobility and physical reflexes, with or without reasonable accommodation, which permits the employee to work in an office setting and at a computer workstation for an extended period of time, with the ability to move between office and working lab considered to be approximately 100% of the workday.