• BSc in Computer Science with a solid understanding of object-oriented programming• At least 5 years of proven experience• Proficient in Java, with a good knowledge of its ecosystems• Familiar with various design and architectural patterns• Skill for writing reusable Java libraries• Knowledge of concurrency patterns in Java• Knack for writing clean, readable Java code• Understanding fundamental design principles behind a scalable application• Implementing automated testing platforms and unit tests• Proficient understanding of code versioning tools, such as Git• Familiarity with build tools such as Ant, Maven, and Gradle• Familiarity with continuous integration• Team player, autodidact, excellent communication skills• Work experience in a storage company – advantage
Deep database knowledge (including schema design and query optimization) – advantage
• Translate application storyboards and use cases into functional applications• Design, build, and maintain efficient, reusable, and reliable Java code• Ensure the best possible performance, quality, security and responsiveness of the applications• Identify bottlenecks and bugs, and devise solutions to these problems• Quality ownership – maintain code quality, organization and automatization• Be able to drill-down into legacy code and find your way back alive