Senior C# Engineer
Are you looking for something more than building a website or changing a button from blue to red?
Are you craving the challenge of building complex systems?
Really smart systems where performance and speed is essential without sacrificing the working environment? i.e. you don't want to be flogged by a bank and you'd like the time to build real quality without cutting the corners Solutions to difficult problems aren't fluffy which is why this is not a development role - it's engineering.
We are looking for a C# developer responsible for building C# applications, including anything from back-end services to their client-end counterparts.
Your primary responsibilities will be to design and develop these applications, and to coordinate with the rest of the team working on different layers of the infrastructure. Therefore, a commitment to collaborative problem solving, sophisticated design, and quality product is essential.
• Translate application storyboards and use cases into functional applications
• Design, build, and maintain efficient, reusable, and reliable C# code
• Ensure the best possible performance, quality, and responsiveness of applications
• Identify bottlenecks and bugs, and devise solutions to these problems
• Help maintain code quality, organization, and automatization
• Proficient in C#, with a good knowledge of its ecosystems
• Familiarity with the .NET framework as well as .Net Core
• Strong understanding of object-oriented programming
• Strong understanding of message queuing
• Strong understanding of asynchronous and multi-threaded applications
• Skill for writing reusable C# libraries
• Familiar with various design and architectural patterns
• Familiarity with Domain Driven Design and Event Sourcing would be advantageous
• Knowledge of concurrency patterns in C#
• Familiarity with Microsoft SQL Server
• Familiarity with NoSQL
• Knack for writing clean, readable C# code
• Understanding fundamental design principles behind a scalable application
• Creating database schemas that represent and support business processes, including ORM frameworks
• Implementing automated testing platforms and unit tests
• Familiarity with development pipeline and release management tools
• Ability to understand business requirements and translate them into technical requirements