Summary:
The Senior 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.
Primary Responsibilities:
- 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.
- Gather functional requirements, architect framework, develop technical specifications, and project & test planning.
- Design and develop web, software, mobile apps, prototypes, or proofs of concepts (POC’s).
- Act in a technical leadership capacity: Mentor junior engineers, new team members, perform code reviews and apply 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 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.
- Full-stack development experience with technologies like React.js, Node.js, Java, PHP.
- Experience with one of the major relational databases (MySQL, Oracle, Postgres) and noSQL databases (Cassandra, Dynamo DB or Mongo DB).
- Experience with Git, SVN or similar distributed SCM tools.
- Strong object-oriented programming experience using C++, C# or Java.
- Strong understanding of the entire Software Development Life Cycle (SDLC), Software design/architecture process, CI/CD processes, unit testing & Test Driven Development (TDD).
- Experience with web services (consuming or creating) with REST, SOAP, Dockers and Containers.
- Expert skills in Javascript, HTML5, CSS, Json or Python.
- Experience with Cloud technologies e.g. AWS and GCP.
- Strong knowledge of SOA, object-oriented programming, design patterns, multi-threaded application development.
- Experience in reporting and analytics, queuing and real-time streaming systems.
- 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.
Disclaimer: The above statements reflect the general details considered necessary to decide the principal functions of the job identified, and shall not be construed as a detailed description of all work requirements that may be inherent in the job. Job incumbents are expected to perform other duties necessary for the effective operation of the position, department, or the business.