Boost IT

Brasov, Brasov

Full Time

On Site

Senior Java Developer

Jan. 16, 2018

As a senior Java Developer you have to handle the entire software development life cycle, manage projects assigned to you, manage and lead a team; these are tasks you will deal with on a daily basis. You will work with business analyst, project managers, web developers, system administrators, DevOps engineers, security engineers, programmers and data scientists.

DUTIES

Responsibilities
  • Read a project’s specification and understand the project’s scope (if any);
  • Collaborate with the business analyst or the project manager and write a project’s specification;
  • Understand the existing implementation of the application (if any);
  • Understand the goal and mission of the project and collaborate with the project manager and the CTO for best solutions;
  • Recognize technical limits of a potential implementation and failure scenarios;
  • Recognize potential security flaws in the existing software, before the final delivery, as well as in any third-party software used to help the development process;
  • Develop, maintain and improve applications in Java;
  • Propose, implement and further develop solutions;
  • Design software with performance and scalability in mind;
  • Optimize and write unit tests for your code;
  • YAGNI principle for 3rd-parties;
  • DRY, KISS and Agile;
  • Mentor and lead other developers to achieve higher performance and better results;
  • Autonomous and resourceful;
  • Responsible team player with a positive mental attitude;
  • Collaborate with other departments.
Requirements
  • Minimum five years of experience in the IT industry with Java or minimum eight years on the field, either as a freelancer or as personal hobbies;
  • Attention to detail, problem-solving skills and ability to adapt to change;
  • Java EE industry experience is preferred (as a background);
  • Master Object-Oriented programming;
  • Master static strong programming;
  • Master web services such as REST APIs;
  • Solid knowledge of Spring Framework;
  • Solid knowledge of dependency injection;
  • Solid knowledge of version control systems such as Git, Mercurial or SVN;
  • Solid knowledge of RDBMS, the SQL dialect and UDFs;
  • Solid knowledge of TCP/IP networking and the HTTP protocol;
  • Solid knowledge of NoSQL Document-Oriented DBs;
  • Solid knowledge of web services protocols such as SOAP;
  • Solid knowledge of microservices architectures, design patterns and principles such as GRASP;
  • Solid knowledge of at least one Linux-based or BSD or Windows Server operating system;
  • Solid knowledge of message services such as JMS or RabbitMQ;
  • Good knowledge of JUnit testing framework;
  • Good knowledge of TTD and BDD practices;
  • Practice with Java web servers such as Jetty, Tomcat, JBoss, GlassFish;
  • Practice with CI/CD procedures;
  • Good communication skills;
  • Continuous hunger for knowledge.
Nice to have and other notes
  • Knowledge of *nix operating systems is HIGHLY appreciated;
  • Knowledge of other programming languages, in particular JVM-based programming languages such as Groovy, Scala or Clojure is HIGHLY appreciated;
  • Experience with Vagrant, Docker, Maven, Ant;
  • Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring MVC)
  • Experience with databases, including, but not limited to, Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, SQLite, MongoDB, Cassandra, Redis, Riak, Neo4j, ArangoDB;
  • Experience with Akka.