C# Developer

My client is looking for a Senior C# .Net developer


Role Purpose

The software engineer will work within the Development Team to enhance and support the development of existing and new products on our principle transaction processing system

Key Responsibilities

• Design, document and communicate system solutions ensuring a good balance of time, quality, cost and performance.
• Help team members understand and respect agreed solutions and to follow team processes and conventions.
• Plan solutions implementation rollout, evolutionary paths and new technology adoption in stages to deliver the maximum value in the shortest amount of time.
• Make sure management understands solutions, tools and technology choices (to the appropriate level of detail).
• Provide input as necessary to tool and environment adoption.
• Responsible for developing and proofing new programs or features to assure production of a quality product.
• Write, edit, and debug new computer programs for assigned projects, including necessary records and desired output.
• Document code consistently throughout the development process by listing a description of the program, special instructions, and any changes made in database tables on procedural, modular and database level.
• Review and develop strategies to improve or replace legacy parts of the system.
• Conduct performance analysis and propose design improvements.
• Provide assistance to testers and support personnel as needed to determine system problems.
• Contribute to peer code reviews, daily scrum meetings, change analysis sessions and technical presentations.
• Maintain the company's reputation for high-quality service support and delivery.
• Contribute to all aspects of general business improvement.
• The development team provide out-of-hours on-call support to the operations team on a rota basis, typically once every 6-8 weeks. The role holder would be invited to join this rota once suitably skilled.
• Deputise for and provide seamless back up support to the Team Lead when needed particularly during periods of travel/absence.
• Help informally coach and mentor less experienced members of the team to aid their development, and generally share any experience or knowledge that may be beneficial to the team overall.

Required Knowledge & Experience

• Proven practical knowledge and understanding of Object Orientation, SOA, design patterns like IoC and the Agile development practices.
• Strong commercial experience of Microsoft development tools, including Visual Studio 2013 or higher and C# with .NET Framework 4.5.2 or higher.
• Good understanding of unit testing, TDD and mocking frameworks, like NUnit and Moq.
• Experience of messaging or transactional environment i.e. NServiceBus, Websphere MQ, MSMQ or RabbitMQ.
• Experience of web technologies including HTML, CSS, JavaScript, jQuery and data binding frameworks like knockout.js, Aurelia, Angular, etc.
• Experience of XML, JSON and related like schemas and XSLT transformations.
• Experience of T-SQL for Microsoft SQL Server (2012 or higher).
• Experience with multi-threaded / high concurrency systems.
• Knowledge of NoSQL databases is highly desirable but not essential.
• Knowledge of distributed cache systems is highly desirable but not essential.
• Knowledge of containerization technologies i.e. Docker is highly desirable but not essential.
• Knowledge of the mutual funds industry would be beneficial but is not essential.
• Knowledge of the transport of financial messages like Swift 15022 or FIX would be an advantage but is not essential