Job Description
This role will join our energetic and team-focused engineering team in developing innovative web technology solutions from initial prototype to final production and have a specific impact on the design and implementation. Must be a nimble self-starter who is excited about technology and web applications and has the ability to think out of the box and suggest powerful novel ideas.
CORE COMPETENCIES:
- B.S. in an engineering field (Computer, Software, Math, Physics, Electrical, etc.)
- 2-8 years of experience in full stack software development
- Advanced knowledge of front-end web technologies (HTML, CSS, JavaScript)
- Experience with React and data-driven Single Page web Applications (SPA)
- Advanced knowledge of server-side JavaScript implementation using Node JS, including routing frameworks such as Express
- Functional ability with PostgreSQL databases and queries
- Experience with build tools (npm, gulp, sass, less, webpack, rollup)
- Understanding of REST API concepts and conventions
- Experience with git
- Experience with Linux OS (RHEL, CentOS)
- MUST HAVE THE UNRESTRICTED RIGHT TO WORK IN THE US WITHOUT REQUIRING SPONSORSHIP
- MUST POSSESS AN ACTIVE SECURITY CLEARANCE
HIGHLY DESIRED:
- Experience working with MVC architecture, Websockets, Responsive Web Design
- Experience with LESS/SASS. Handlebars, and Templating frameworks (e.g. Ember, React, Angular)
- Knowledge of open source technologies and protocols
- Experience with C/C++, and Python
- Experience providing team leadership and mentoring to Jr developers
- Working knowledge of networking protocols and Linux DevOps processes including writing Python and Bash deployment scripts and setting up automated testing using Jenkins and Gitlab
- Experience with Agile processes
DUTIES AND RESPONSIBILITIES:
- Design and implement full stack web applications
- Implement advanced data-driven Single Page web applications and Node JS web servers and applications
- Work on multiple projects in an Agile Scrum workflow
- Develop software and the artifacts associated with software development
- Implement high level designs in robust, maintainable software
- Create modules, install software on target nodes, and deploy configuration files
- Design and develop real-time data applications (such as dashboard visualization, report generation and data review applications)
- Design and develop data polling / data pushing architectures
- Develop testing scripts
- Support functional and system level testing
- Support network design and configuration
- Design and develop client-side / server-side / database integration
- Use CM system software infrastructure (Git, Trac, Jenkins, Peer Reviews)
- Work closely with the operational Project Management team to maintain successful development sprints and stay on schedule