SoftTeco’s Developer at Java Bootcamp 2019

Due to SoftTeco’s active involvement in the professional growth of employees, we continue to highlight interesting events connected with specialists’ development. Not long ago, one of SoftTeco’s developers took part in the famous annual training session, Java Bootcamp. The event took place in Saint Petersburg from the 2nd to 14th of February.

Java Bootcamp is a unique experience in the CIS region where beginners and skilled developers can boost their knowledge of Java. Organizers create perfect conditions for participants to be able to focus on learning. Intensive learning sessions help participants perform better at work.

SoftTeco’s developer, Kirill Sereda, took part in a one-week acceleration program for skilled specialists which would help him to work more efficiently and write high-quality code. All the program’s participants were divided into seven teams according to their level of expertise, and each team was given a task. Kirill’s team consisted of 9 persons and it was requested to create a words indexing app.

The project goal was to launch an application (word indexer or mini search engine) based on the microservice architecture, using non-relational databases and the principle of reactive programming.

To build an application, Kirill’s team used Netflix Microservices to organize the application’s structure (indexing service, inverted index storage service, source documents storage service, search service, eureka server, zuul gateway)

Non-relational databases were used as storage: a word or a sentence was recorded in one, and inverted index was stored in the second one. The second database was used for words search and for definition of repetitions frequency. Kirill’s group made an application based on the principle of reactive programming and set up security settings using JWT.

The application was built inside docker container with docker + mesos + jenkins environment setting.

The words’ captions were added to the database, and even a book could be uploaded. The application had a graphical interface where a user could enter a word or a sentence and received information about the given word – how many times and where it was mentioned.

As a result, all the groups wrote a dozen of microservices, connected them all to eureka and the config server, added React.js developments, wrapped code in docker containers, tried 3 different bases, got out the maximum performance from hibernate, activated csrf support – this is what participants finally did.

Stack of technologies used by Kirill’s team: Spring Boot, Gradle, Spring Cloud: Netflix Microservices, Eureka, Zuul, Ribbon, Feign Client, Reactor: WebClient, Security (JWT), Hibernate Performance, MongoDB, Docker, Jenkins, Mesos, FlyWay.

A mentorship session 

Summarising the whole experience received during the education, Kirill says that the obtained knowledge will certainly help him in work on commercial projects: “Despite working on unusual backend tasks in Java, I also have tried reactive programming and even worked on frontend – wrote code in React.js. I’m sure that I will use certain programming approaches and concrete solutions in SoftTeco’s projects. Bootcamp gave me a chance to practice inexperienced things in a very intensive working environment under the guidance of a proficient engineer. I’m pleased to note that my mentor is an experienced Java engineer, one of the Hibernate’s creators.”

Kirill and his teammate at Java Bootcamp 2019 

Overall, education is a good investment which helps specialist to develop and gain maturity. If you have an interesting experience of visiting a practical conference, please share it in the comments!