Senior Software Developer, Backend

Skills
Computer ScienceFront-End DevelopmentJavaSoftware DevelopmentAgile Software DevelopmentEnglishFunctionality
Role

What the job involves

The main requirements, responsibilities and hiring steps.

Requirements

  • Strong foundations in computer science, in particular data structures, concurrent programming, distributed services, databases, etc.
  • Experience developing web services in Java or Go using REST
  • Understanding test-driven development practices including writing and maintaining unit tests
  • Experience with developing software using Agile software development
  • Building and deploying applications to Amazon Web Services
  • Strong communication skills in English
  • Ability to take initiative and propose solutions
  • Preferred Experience developing/architecting highly available services
  • Preferred Degree in Computer Science, Computer Engineering or related field

Nice to have

  • Self-directed
  • Fast learner
  • Flexible
  • Strong foundations in computer science
  • Experience with Java or Go
  • Understanding of test-driven development
  • Experience with AWS
  • Strong communication skills in English
  • Ability to take initiative
  • Experience with highly available services
  • Degree in Computer Science or related field

Day to day

  • Integration of user-facing elements developed by front-end developers with server-side logic
  • Build reusable code and libraries for future use
  • Optimize the application for maximum speed and scalability
  • Implement security and data protection
  • Design and implement new functionality in our web products
  • Apply test-driven development practices including writing and maintaining unit tests
  • Work closely with our test team to ensure automated testing has appropriate coverage
  • Evaluate and choose new technologies and libraries to incorporate into our products
  • Contribute to team’s best practices to ensure fast delivery of new code
  • Ensure that the new developments are properly monitored with appropriate metrics that allow observability
  • Troubleshoot and fix technical bugs
  • Run performance benchmarking tests