Senior Software Engineer

Job Description

Summary:

Our Client is looking for a software engineer who will be responsible and accountable for the design and quality of solutions developed. This includes both hands-on development of IT technology solution architectures, leading and mentoring software engineers, as well as management of teams involved in solution development.

 

Required Experience:

  • Bachelor’s level degree in Computer Science, Engineering, or appropriate work experience required
  • Minimum 5 years of experience in design and implementation of application infrastructures and architectures
  • Minimum 8 years of technical experience developing .NET solutions
  • Experience with software and infrastructure change management, release management, and source code configuration control

 

Skills, Knowledge & Abilities:

  • Ability to communicate effectively with the business analyst, business leaders, and SMEs to ensure solutions meet business needs
  • Deep knowledge and understanding of what it means to design using S.O.L.I.D. principles
  • Understanding of software engineering methodologies
  • Expert software development skills in .NET and C# (3.5 or newer)
  • Familiarity with Microsoft-centric SDLC development tools (TFS, Octopus, etc.)
  • Ability to lead a team of software developers (if needed)
  • High level of understanding in at least a few of the following:
    • Designing RESTful Web Services-based API
    • Microsoft SQL Server and ORMs (Entity Framework 6)
    • NoSQL experience (MongoDB & REDIS)
    • Microsoft WPF using MVVM pattern
    • Microsoft Web API & Microsoft ASP.NET MVC
    • Enterprise Service Bus concept
    • IOC Containers (Castle Windsor or StructureMap or Ninject or Autofac or Unity, etc.)
    • Queuing technology, Rhino Queues or SQL Service Broker
    • Unit testing. Familiarity with a mocking frameworks (MOQ or Visual Studio Mocking Framework, etc.)
    • Familiarity with SOLR or ElasticSearch

Reference Number: 5249