Software Engineer
Responsibilities:
Participate on a decentralized, agile-based software development team
Write reusable, testable, and efficient code, unit-test and document implemented features
Design and implementation of low-latency, high-availability, and performant applications
Implementation of server-side models and algorithms
Implementation of web service APIs (REST)
Implementation of client-side logic, including UX design, HTML layouts and templates, AngularJS logic, and styling
Implementation of security and data protection
Integration of data storage solutions
Required Experience:
The position requires a minimum of 3-5 years’ experience as a Software Engineer in an agile environment working with web-based applications. The skills listed below are those of a full-stack software engineer, with the understanding that each software engineer has his/her own “spikes” or preferred areas.
Front-end:
- Design and implementation of complex web applications
- Strong JS coding skills (+ experience with functional programming and high order functions libraries such as lodash)
- Strong skills with AngularJS/Angular ( ++ if experience with upgrading from AngularJS to Angular, ReactJS or any other framework is a nice +)
- Strong UI and UX/web design skills (CSS3, SCSS).
- Experience with reactive programming in JS (RxJS, NgRx).
- Experience with responsive design applications (e.g. Material Design)
General:
- Understanding of accessibility and security compliance
- Knowledge of user authentication and authorization between multiple systems, servers, and environments
- Understanding of fundamental design principles behind a scalable application
- Strong unit test and debugging skills
- Proficient understanding of modern development environment tools such as Git (GitHub, Bitbucket) or Mercurial, JIRA or other issue tracking systems, Jenkins or other continuous integration software.
- Familiarity with regulations pertaining to the FDA or other regulatory agencies a plus
- Experience with cloud-based applications and virtualization is a plus (Docker, EC2, S3)
Education and/or Certification Requirements:
- A Bachelor’s degree in computer science, software engineering or equivalent field is required, with preference towards Master’s degree or higher.
- 3-5 years’ experience in a development role in an agile development environment