This job has been Expired
- Experience 3 Years+
- Gender Neutral
Job Description
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
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.