Software Engineer (C#, .NET)

  • Software Engineering Team
  • Singapore, Singapore

Software Engineer (C#, .NET)

Job description

  • Finding novel solutions to support and extend a framework that enhances legacy POS applications with modern functionality
  • Troubleshooting difficult problems on remote machines, identifying the root cause and then applying solutions at scale
  • Determining architectural feasibility by evaluation, analysis and requirement definition of proposed solutions
  • Participating in code reviews, pair programming, and other agile techniques

Requirements

  • Experience in object-oriented programming, esp. in duck-typed languages, including composition, diamond inheritance, and metaobject protocols
  • Minimum 3 - 5 years of experience with C# and .NET 2.0
  • Experience working with MicroServices architecture and REST JSON API based systems
  • Deep understanding of good programming and engineering practices, such as the single responsibility and inversion of control principles, test-driven development, code reviews, common design patterns and antipatterns, continuous integration, and system testing
  • Pragmatic approach to refactoring code and migrating between various technologies, e.g. upgrading to a backwards-incompatible version of a widely-used library or changing the chief programming language
  • Good analytical and problem-solving skills and strong attention to detail
  • Excellent communication skills and the ability to work well with others (both physically in the same office and remotely with colleagues in our international offices) 
  • Experience with the following will be a plus: Python, Ruby, NodeJS, Functional programming