Wytwarzanie wydajnego, skalowanego oraz stabilnego oprogramowania;
Uczestnictwo w projektowaniu i wytwarzaniu nowych funkcjonalności pokrytych testami jednostkowymi oraz integracyjnymi;
Wsparcie w diagnozie problemów i optymalizacji działania produkcyjnego systemu, który operuje na bardzo dużych wolumenach danych;
Udział w optymalizacji procesu wytwarzania oprogramowania: Continous Integration, zapewnienie jakości, dobór technologii;
Praca zgodna z metodyką SCRUM (udział w spotkaniach: Daily SCRUM, Sprint Review Meeting, Sprint Retrospective, Sprint Planning Meeting);
Wykonywanie code review na pull-requestach;
Wsparcie dla procesu - git-flow;
Szacowanie pracy w ramach przyszłych projektów;
Coaching w ramach małych zespołów;
Kierowanie małymi zespołami wytwórczymi (do 5 osób);
Aktywny udział w wewnątrz-zespołowej wymianie wiedzy: przygotowywanie krótkich szkoleń wewnętrznych dla pozostałych członków zespołu; opisywanie tips&trics na Confluence.
requirements-expected :
1) Co najmniej 5-letnie doświadczenie w programowaniu w języku Java, zdobyte w ciągu ostatnich 10 lat, w tym co najmniej:
2) doświadczenie w programowaniu w języku Java w wersji co najmniej 8;
3) doświadczenie w:
a. stosowaniu dowolnej z bibliotek klasy ORM (Object-Relational Mapping);
b. tworzeniu oprogramowania w języku Java korzystającego z relacyjnej bazą danych SQL;
c. doświadczenie z obszaru budowy usług protokołu komunikacyjnego SOAP (Simple Object Access Protocol) oraz stosowaniu standardu REST (Representational State Transfer), które zamawiający stosuje w rozwiązaniach informatycznych;
d. wykorzystywaniu co najmniej jednego z serwerów aplikacji dla oprogramowania tworzonego w języku Java, wykorzystywanych przez Zamawiającego: JBoss, WebLogic, GlassFish;wykorzystywaniu co najmniej jednej z następujących technologii front-endowych wykorzystywanych przez Zamawiającego: JSF, Angular, Vaadin;
e. programowaniu co najmniej w HTML, JavaScript, CSS;
f. wykorzystywaniu konteneryzacji, np. technologii Docker, Kubernetes lub innej równoważnej służącej do zarzadzania i skalowania aplikacji kontenerowych.
4) Znajomość wykorzystywanej przez Zamawiającego technologii Spring Framework;
5) Znajomość technologii JPA lub bibliotek klasy ORM (Object-Relational Mapping) wykorzystywanych przez Zamawiającego - Hibernate, EclipseLink;
6) Umiejętność korzystania z narzędzi wspierających proces wytwórczy i zapewniających jakość tworzonego oprogramowania w tym co najmniej jednego:
a. narzędzia CI/CD,
b. narzędzia służącego do statycznej analizy kodu,
c. narzędzia weryfikującego pokrycie kodu testami,
d. narzędzia do testów obciążeniowych np. LoadUI, JMeter lub innego, równoważnego narzędzia służącego do testowania obciążenia, działających w systemach Windows, Linux wykorzystywanych przez Zamawiającego. Narzędzia równoważne muszą zapewniać co najmniej testowanie szybkości i skalowalności rozwiązań informatycznych a także ich wydajności.