Senior Software Developer/Software Architect
My Client an award winning software house who develop cloud based, business software solutions are seeking an experience Senior Software Developer/Software Architect for their Hertfordshire based team.
The role will be to contribute to the architecture and development of new an exciting cloud based projects, migrating legacy systems to innovative cloud based solutions utilising RabbitMQ and Microsoft SQL Server with lots of other moving parts.
The role is focussed on architecting, building and testing the back end system components, but input into the gathering, understanding and documenting of requirements, as well as all aspects of delivery to the business including testing, release management and DevOps activity.
Working as part of a team:
• Contribute to ‘big picture’ design of solutions, draw on experience and ‘gut feel’ to identify risk, and help drive an appropriate response from the team, whilst keeping the bigger picture in mind.
• Build and maintain robust components against requirements produced by the team, testable through automation where possible, and coded to a high quality standard including performance and functionality.
• Advise, agree on and implement coding standards with the wider team, and actively partake in code reviews to maintain standards.
• Debug code that you have produced as well as code produced by others, and help others within the team to do the same.
• Attend sprint-related meetings including planning, design, scrum and review meetings to contribute to direction, showcase your work to the business, receive feedback and drive team progress through your enthusiasm and focus.
• Document work that needs to be done and work that has already been done in an appropriate format for the audience which may be non-technical (including video with voiceover as well as written content), and using existing processes and procedures.
• DevOps activity (sometimes out of hours) including software releases to production, monitoring, and reacting to (investigating/resolving) issues.
Extensive experience architecting and building secure, highly performant and scalable distributed systems using the Microsoft .NET framework to share data and functionality between systems. You have a demonstrable and thorough knowledge and understanding of systems integration approaches using Enterprise and Cloud integration patterns, and detailed knowledge of asynchronous messaging. A solid understanding of building performance, scalability and reliability into systems, and how to design for evolution over time. Ability to quickly understand the architecture of several different applications and how they fit together both at the architectural and the infrastructural level.
• RabbitMQ in a highly available configuration
• Microsoft .NET Framework 3.5, 4.0, 4.5 – using C#
• Dependency Injection (NInject)
• ASP.NET MVC
• ASP.NET Web API & Restful API design
• Entity Framework
• T-SQL (Microsoft SQL Server) – writing performant T-SQL code.
• Managed Extensibility Framework (MEF)
• Continuous Integration (TeamCity)
• Unit Testing Frameworks (NUnit etc.)
• PowerShell Scripting – scripting predominantly for deployment to environments such as IIS
• Source Control using SVN
• Analysis tools such as Fiddler / Wireshark / SQL Profiler etc…
• Optimisation techniques such as minification
• NoSQL systems such as RavenDB, MongoDB
o Automated Testing tools such as Selenium, Unit Testing
• Client-side web frameworks (Bootstrap, Angular.js etc…)