Position: Senior Full-stack Java Developer
Company: BestHeads
Experience required: 3y
English level: intermediate

Technologies: JavaScript, TypeScript, Html, Css, Scss,, Angular 7, rxjs, Jasmine/Karma, Bower, Yarn, Gulp, Npm, NodeJs, Java, Kotlin, Spring 4 and 5, Spring-Boot 2, Spring-Cloud, Spring WebFlux, Hibernate 5, LiquidBase, Swagger, QuesryDsl, Joog, OpenSaml, Apache Fop, RabbitMQ, Docker, Maven, Gradle, Tomcat 8.5.24, PostgeSQL, Mysql 5.7.20, MongoDB, AWS (EC2, CodeDeploy, S3), Jenkins (continuous integration), BitBucket (Git), Zephyr (jira plugin for Manual QA), Slack, Jira, Confluence, Zoom


Responsibilities: Developing new features and functionality, fixing bugs, code review.

Requirements:
— At least 3-4+ years of commercial experience in Java development including Java 8;
— Experience with Spring (IoC, Boot, Data, MVC, AOP, Security);
— Experience with SQL and JPA/Hibernate;
— Experience with REST web services;
— Experience with HTML, CSS, JavaScript, TypeScript, Angular2+, jQuery;
— Docker, Jenkins;
— Experience with Spring Cloud;
— Experience with AWS;
— Experience with NoSQL;
— Experience with Kotlin is a plus.
— Microservices;
— Good knowledge of English (Intermediate and higher).

With us you can:
Develop your technical knowledge:
— Use latest technologies;
— Participate in technical events and conferences (the cost is covered by the company);
— Regular techtalks and professional development.
Improve your soft skills:
— Build strong teamwork skills and become an essential part of the dynamic teams;
— Improve your English at classes and speaking directly with clients;
— Increase your productivity and communication level via Scrum, Kanban, Agile methodologies.
What else do we offer?
— Competitive compensation and benefits;
— Flexible and negotiable schedule;
— Covered rest period (20 business days);
— Free English classes (we have 4 teachers in our team);
— Truly friendly atmosphere and unforgettable events;


Responsibilities:
— Technology selection for the Project;
— Designing, developing and implementing enhancements, and new features to the product on the basis of customer’s requirements;
— Definition of architecture of application or its evolution;
— Selection of the ways of interaction between the components of the system;
— Creation of working prototype model;
Designing of interfaces and application components;
— Following engineering practices including code review, writing unit-level, integration-level tests;
— Supporting existing applications by doing refactoring tasks on existing code, develop feature enhancements and fix bugs;
— Documenting of all architectural decisions, constant documentation updating;
— Justification and enforcement of terms of the estimate.