Praca JAVA Software Enigneer’a w Magnetic Point

Java to niewątpliwie najpopularniejszy język programowania, wykorzystywany do tworzenia zaawansowanych rozwiązań software’owych. Jednymz obszarów działalności Magnetic Point jest partnerska współpraca z brytyjsko-polską firmą Cognifide, w ramach której współtworzymy zaawansowane projekty webowe dla największych światowych marek. Realizujemy aplikacje internetowe dla klientów o zasięgu globalnym, dlatego bardzo często pracujemy w zespołach rozproszonych, gdzie developerzy zlokalizowani są w kilku miastach w Polsce i na świecie.

Organizacja pracy

Wielkość każdego zespołu zależy od skali projektu. Zdarzają się realizacje, w których team liczy jedynie kilka osób, ale również takie, gdzie zespół składa się z kilkudziesięciu specjalistów, podzielonych na wiele podzespołów, równolegle pracujących nad wydzielonymi funkcjonalnościami.

Do współdzielenia pracy, w zależności od projektu, używane są różnorodne narzędzia. Dominują produkty firmy Atlassian - Jira, Bamboo, Bitbucket, jednak nie ograniczamy się tylko i wyłącznie do nich. Wielbiciele klasyki i starego poczciwego Jenkinsa, również znajdą tu obszar dla siebie.

CMS od Adobe

Wszystkie projekty, tworzone w ramach współpracy z Cognifide, oparte są o Adobe Experience Manager. Jest to zaawansowany system CMS, który znalazł uznanie w oczach wielu globalnych firm. Dzięki temu w portfolio Cognifide/Magnetic Point można znaleźć realizacje dla takich klientów jak Ford, Lincoln, Virgin Media, Coutts, Investec, Barclays, Novo Nordisk, Chivas, GSK.

Java Developerzy korzystają z technologii, które dostarcza im system AEM (Apache Sling, OSGi - implementacja Apache Felix, JCR - implementacja Jackrabbit Oak). Codzienna praca nie wymaga jednak ograniczania się tylko do tych technologii, czy/i wyłącznie do jednego języka programowania uruchamianego na JVMie - w pracy przy projektach szerokie zastosowanie ma również skryptowy język Groovy.

Groovy console, narzędzie używane w codziennej pracy i którego API wykorzystywane jest do automatycznego uruchamiania skryptów migracyjnych.

Większość naszych projektów aktualnie korzysta z wszelkich funkcjonalności języka Java w wersji 8, a w codziennej pracy wychodzimy z założenia, że code review jest tak samo ważny jak proces powstawania kodu.

Różnorodność pracy developera

W pracy Java Developera możemy wyróżnić kilka głównych obszarów, które powtarzają się pomiędzy projektami. Java developerzy lubiący pracę na czystym kodzie Javowym, z pewnością odnajdą się, skupiając uwagę na kodzie wykonywanym na AEMie - tworząc nowe komponenty i dedykowane rozwiązania oraz rozszerzając istniejące funkcjonalności.

Większość projektów wymaga również integracji z zewnętrznymi systemami klienta, gdzie Adobe Experience Manager traktowany jest jako źródło treści zawierającej szablony, które następnie uzupełniane są danymi z zewnętrznych usług. W wielu nowotworzonych projektach wykorzystywane jest narzędzie Knot.X, Framework napisany z wykorzystaniem paradygmatu reaktywnego, służący do wydajnego implementowania integracji z zewnętrznymi usługami. Zainteresowanych narzędziem odsyłamy do strony projektu na githubie.

https://github.com/Cognifide/knotx

Schemat działania frameworka Knot.X, wykorzystywanego do implementowania integracji z zewnętrznymi usługami.

Narzędzia autorskie Cognifide

Firma Cognifide posiada w swoim w portfolio szereg autorskich rozwiązań, które zarówno ułatwiają codzienną pracę jak i przyczyniają się do rozwoju AEMa. Jednym z głównych produktów Cognifide jest Zen Garden (https://www.cognifide.com/products-and-services/our-technology/zen-garden), narzędzie mające na celu przyspieszenie pracy z Adobe Experience Managerem, zwiększające wydajność zarówno developerów, jak i twórców treści i designerów. Zaproponowane przed laty przez programistów Cognifide pomysły inspirują programistów Adobe i wpływają na to jak dziś wygląda Adobe Experience Manager. Z kolei Java developerzy korzystają z funkcjonalności oferowanych przez Zen Gardena, zmniejszając czas realizacji projektu do minimum.

Wykorzystanie Zen Gardena sprawia, że od pierwszych tygodni trwania projektów, autorzy są w stanie rozpocząć pracę nad treściami, a w tym czasie zespół developerski może pracować nad systemem, z którego autorzy już korzystają. W Cognifide na szeroką skalę wykorzystywany jest język Groovy - do pisania skryptów migracyjnych. Nowa wersja aplikacji często wymaga dostosowania struktury treści, na której operuje, a skrypty migracyjne, napisane w języku Groovy, odpowiadają za przygotowanie tej struktury.

Jakość przede wszystkim

Jednym z narzędzi szeroko wykorzystywanych w projektach, jest narzędzie AET (https://github.com/Cognifide/aet). AET to aplikacja webowa, która pozwala na porównywanie aktualnie wyrenderowanej wersji strony internetowej z wcześniej zdefiniowanym wzorem (pattern). Ma to olbrzymie znaczenie podczas fazy developmentu i pozwala na wyeliminowanie nawet najmniejszych zmian zarówno w źródle strony, jak i w wyrenderowanym przez przeglądarkę widoku.

Przykładowy raport narzędzia AET pokazujący różnice w wyrenderowaniu strony względem zebranego wzoru, do którego porównywana jest aktualna wersja strony.

Nie tylko JAVA

Zadania projektowe uzależnione są od danego stanowiska i specjalizacji, jeśli jednak developer chciałby realizować zadania z innych obszarów – ma taką możliwość. W projektach na porządku dziennym pracujemy nad konfiguracją serwera Apache, analizą repozytorium wymagającą znajomość GITa czy automatyzacją zadań związanych z continuous integration na Bamboo. Jednak jeśli dodatkowo lubisz pracować przy interfejsie użytkownika, koledzy pracujący na stanowisku Front-end developerów zawsze chętnie przyjmą dodatkową pomoc. Jeśli natomiast interesujesz się automatyzacją testów - osoby pracujący na stanowisku QA Engineer na pewno nie będą mieli nic przeciwko.

Do tego szerokie używanie w projektach search engine’ów jak SOLR czy Elasticsearch pozwala na oderwanie się od zadań operujących na czystym kodzie Javowym.

Jeżeli jesteś zainteresowany podjęciem współpracy z firmą Magnetic Point, koniecznie odwiedź naszą stronę internetową i zapoznaj się z działem kariera https://www.magneticpoint.com/kariera