Senior Software Developer - remote

Posted 3 years ago

The Senior Software Developer is responsible for leading an existing team of developers, working towards delivering reliable software solutions, writing impeccable code and delivering projects on time and budget. The senior software developer also acts as a Project Manager, taking ownership of assigned development projects from inception to delivery. He/she is expected to lead a team, with the ability to multi task, teach and instruct co-workers, attend meetings with external clients as required to ensure client’s needs are met and successfully deliver all assigned projects

Knowledge of:

  • Single Page web application
  • Proficient in an object oriented programming language
  • Strong data structures and algorithms knowledge with server side expertise
  • RESTful API design and building secure public APIs
  • Building high-available, resilient, scalable, low latency services in distributed architecture
  • Experience with event-driven architecture
  • Strong DevOps focus and experience with Scrum/Agile development methodologies

Skill in:

  • C# (must)/ Java
  • Typescript/Javascript
  • SQL and NoSQL
  • Azure Service Bus messaging
  • Github/Teamcity
  • Docker

Ability to:

  • Identify tasks which require automation and automate them.
  • Consult with the Lead Programmer and the Technical Manager regarding professional skill development.
  • Prepare reports and analyses setting forth progress, adverse trends and appropriate recommendations or conclusions.
  • Participate in development of long range planning for new projects.
  • Mentor or instruct co-workers.
  • Provide advice, training and technical support for various projects.
  • Work closely with management team in evaluating current systems and making decisions on future development.
  • Learn new technologies very quickly and resolve any problems involved in integrating new technologies with our systems.
  • Learn new programming languages quickly.
  • Determine whether a particular problem is caused by hardware, operating systems software, application programs, or network failures.
  • Diagnose and resolve complex problems, including network communications, database services, and heavy system resources’Good knowledge of security and encryption.