Java Developer


  • Software Developer
  • Full time
  • Tallinn, Estonia

Specific responsibilities:
- 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

- 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 Oracle)
- 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

HashCoins Platform Software Developer