Job Title: Fullstack Developer
Location: Arlington, VA
Duration: 12+ Months
Visa: USC, GC, H1B and EAD
Contract Type: W2
- 5+ years of progressive application systems development experience utilizing a full systems development life cycle, with experience in the following strongly preferred:
- Using common software design patterns (e.g., factory, singleton, adapter, decorator, visitor, and strategy patterns).
- Automated Unit testing and mocking frameworks.
- Test-first development using test-driven development or behavior driven development.
- Solid understanding of server-side programming; preferably C# or NodeJS
- Knowledge of xUnit.net, Moq, Autofac, and NHibernate are a plus
- Experience with RabbitMQ or other messaging designs a plus
- Microsoft SQL Server and MongoDB experience required.
- Understanding of the S.O.L.I.D. principles of software development
- Familiarity with Agile development methodologies such as Scrum and Extreme Programming
- Understanding of Dependency Injection/Inversion of Control
- A passion for DevSecOps including TeamCity, Git, Puppet
- Experience building responsive and secure web application
- Experience with service-oriented architecture and micro-services
- Cloud experience a plus
Candidate Duties and Responsibilities:
The Software Developer shall be responsible for participating in the full life-cycle development process including requirements analysis, system design, development, continuous integration and deployment, configuration management, testing, implementation and support. This development process shall involve close collaboration with NRECA staff; other contracted resources from the Supplier and contracted resources from other firms.
- Participate in development activities according to NRECA's Agile best practices, including continuous integration, automated unit testing, and automated builds and deployments where appropriate by leveraging NRECA systems and methodologies as specified by NRECA and the program management team.
- Participate in one or more daily stand up meetings.
- Participate in planning and design meetings.
- Participate in Agile ceremonies as requested by the NRECA program management team.
- Participate in other meetings related to the GEMS program as requested by the NRECA program management team.
- Create and maintain documentation related to work performed on the project including, but not limited to, JIRA tasks, story and acceptance criteria definition, architecture diagrams, design artifacts and project wiki entries as requested by NRECA.
- Provide a weekly, written status report to the NRECA program management team by close of business each Friday, this status report shall provide a detailed account of work accomplished during the previous week, any outstanding risks or impediments and a detailed description of work planned for the upcoming week.