Home

Java Developer

Job Description

Java Developer in our company is expected to not only be implementing features in accordance with specifications, but also proposing architectural designs on their own, as well as finding alternatives to already proposed solutions by teammates. As a full-fledged member of our agile development team, you will be expected to not only take a role of a developer, but to also act as an architect and a tester. You will be expected to practice test-driven development and participate in reviews of source code produced by other developers.

The projects you will be working on might include both customer-facing products, as well as internal tools intended to aid with software production within our company. You might be asked to support and maintain already existing applications, implement new features or to participate in the development cycle of completely new products from the ground up. We are looking for an open minded and highly motivated individual with the ability to self educate and explore new possibilities in all areas of software development, across all layers of the software development stack.

Specific responsibilities include

  • Participate in agile processes and contribute in all phases of the development lifecycle
  • Write and maintain well designed, testable, reusable, reliable and efficient code
  • Translate application storyboards and use cases into functional applications
  • Ensure architectural designs are in compliance with specifications
  • Develop and execute automated unit tests plans for the assigned tasks
  • Ensure the best possible performance, quality, and responsiveness of the applications and their components
  • Identify bottlenecks and bugs, and devise solutions to these problems
  • Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review
  • Support users by maintaining documentation for the assigned tasks and features

Requirements

  • Higher education degree in Computer Science or related technical fields and 3+ years of Java work experience
  • Ability to write readable, maintainable, robust, production quality code
  • Strong knowledge of OOP design principles and ability to analyse object-oriented code
  • Familiarity with and ability to apply various design and architectural patterns
  • Understanding of fundamental design principles behind a scalable application
  • Profound insight of Java internals (Classloading, Memory Management, Transaction management etc)
  • Understanding of JVM, its limitations, weaknesses, and workarounds
  • Experience with Spring Framework
  • Strong understanding of RESTful web service principles
  • Strong understanding of TDD processes
  • Strong knowledge of relational database concepts and experience with RDBM systems and ORM technologies (MySQL, PostgreSQL, SQL Server or Orac)
  • General knowledge of HTML and CSS
  • General knowledge of JSON and XML
  • Familiarity with build tools (Ant, Maven, Gradle, etc.)
  • Experience with source version control software (Git, SVN, Perforce, etc.)
  • Familiarity with continuous integration
  • Familiarity with Agile development processes
  • Familiarity with project management systems (Jira, Trello, Asana, etc.)
  • Passion towards technological innovations and willingness to jump into unknown territories
  • Good spoken and written English

Beneficial (optional) skills

  • Experience with Amazon Web Services
  • Experience building APIs and working with microservices
  • Experience developing asynchronous services
  • Familiarity with network programming
  • Familiarity with non-relational (NoSQL) database systems (MongoDB, Cassandra, CouchDB, etc.)
  • Experience working with message/queue brokers (RabbitMQ, Redis, Amazon SQS, Gearman, etc.)
  • Experience with other programming or scripting languages (Python, C/C++, Bash, PHP, JavaScript, etc.)
  • Previous DevOps experience
  • Familiarity with Bitcoin, Ethereum or other cryptocurrencies
  • Good spoken and written Russian

If you are interested in applying please send your Cover Letter and CV to our email address with the position name in the subject field.