RCM Technologies is a leading provider of IT Business Solutions and Professional Engineering Services to over 1,000 clients in the commercial and government sectors. RCM partners with clients to define, implement, and manage a broad range of technologies across multiple platforms, systems, and networks. Our broad geographic presence ensures that a proven and reliable tactical and strategic capability is available and deployable virtually everywhere in North America.
RCM Technologies has an immediate need for a Senior .Net Developer.
The Senior .Net Developer shall support our efforts in the design, development, and implementation of technology Platform.
- A minimum of five (5) years of progressive application systems C#.NET design, and development experience.
- Expert knowledge of .NET Web API (.NET Web API 2 preferred). Practical experience implementing an API layer using .NET Web API to get and send data to the client and to external applications.
- A minimum of five (5) years of experience developing back-end storage solutions using Microsoft SQL Server. Experience with SQL Server 2012 and 2014 preferred.
- Expert knowledge and practical experience developing complex objects and relationships using Entity Framework 6.x.
- Expert knowledge and experience designing and implementing software using common software design patterns (e.g., the Factory, Singleton, Adapter, Decorator, Visitor, and Strategy patterns)
- Experience with unit testing and mocking frameworks. Practical experience with NUnit and Moq preferred.
- Expert understanding of the S.O.L.I.D. principles of software development. A passion for promoting these principles and helping junior developers follow them.
- Familiarity and working experience with Agile development methodologies such as Scrum and Extreme Programming.
- Experience with Test-first development using TDD or BDD
- Understanding of Dependency Injection/Inversion of Control
- Experience with continuous integration and deployment concepts and technologies. Practical experience with TeamCity preferred.
Responsibilities: The contractor's responsibilities shall include but not limited to the following, as directed:
The Senior .Net 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 staff. The Senior .NET Developer shall be called on at times to work with technical and non-technical teams outside of the program on integration and other tasks related to interactions between the program and other systems and processes.
The Senior .NET Developer must take ownership of projects/tasks/issues and work them through completion,
The Senior .NET Developer shall develop and maintain comprehensive architecture and integration documentation, participate in cede reviews to ensure processes support existing architecture, follow defined guidelines and coding standards and meet user requirements. All work performed including coding, testing, documentation and status reporting shall be done in a manner consistent with standards and processes.
The Senior .NET Developer shall collaborate with end users and provide exceptional customer service by becoming a trusted business advisor. The Senior .NET Developer shall be called on at times to participate knowledge sharing and transfer activities with designated staff and contracted resources.
The Senior .NET Developer shall also perform the following responsibilities as outlined below:
- Participate in development activities according to Agile best practices, including continuous integration, automated unit testing, and automated builds and deployments where appropriate by leveraging systems and methodologies as specified 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 program management team.
- Participate in other meetings related to the program as requested by the 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.
- Provide a weekly, written status report to the 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.