Távmunka -- Senior Java fejlesztő

Fórumok

Sziasztok,

körülbelül másfél évvel ezelőtt már kerestünk (és találtunk!) kollegát a HUP-on keresztül. Most megint van lehetőségünk fejlesztőket felvenni.

A cégről:

A cégünk neve Patients Know Best (http://patientsknowbest.com/careers). Kis-közepes méretű startupról van szó, körülbelül negyvenöt fővel, ennek
harmada dolgozik technológiai területen (lényegében mindenki fejlesztő). A termékünk egy Electronic Patient Portal (EPP) és egy Integrated Digital Care Record kombinációja. Magyarul: elektronikus egészségügyi adatbázis, amely az egészségügyi szektor különböző szereplői által generált és felhasznált adatokat hivatott integrálni, tárolni és elérhetővé tenni. Két fő fókuszunk:
- adatbiztonság (privacy): minden szenzitív adatot titkosítva tárolunk, a visszafejtéshez szükséges kulcs a felhasználónál van (tehát egy fejlesző vagy esetleges támadó nem tud belenézni az adatokba akkor sem, ha hozzáférést szerzett az adatbázishoz)
- az adatok fölötti kontroll a páciens kezében van. Ha az adat rólad szól, akkor te döntöd el, hogy kinek adsz hozzáférést, kitől vonsz meg hozzáférést. (Tipikus példa: X kórházban van egy leleted, és szeretnéd megmutatni Y kórházban az orvosnak. Jelenleg ez Nyugaton általában úgy megy, hogy Y kórház aláírat veled egy nyilatkozatot/meghatalmazást, és ezután X kórház 90 napon belül elküldi az adatot Y-nak. Nem kell ecsetelnem, hogy ez mennyire használhatatlan a legtöbb esetben.)

A feladatról:

A 'bootstrapping' folyamat viszonylag sokáig, 5-6 évig húzódott a cégnél (értsd: ennyi időn keresztül kellett gyorsan sokféle funkcionalitást legyártani, kevés erőforrással). Ennek megfelelően még mindig sok a kellemetlen, csúnya, legacy kód. Én körülbelül két és fél éve kerültem ide, akkor RHEL 5 - Postgres 8 - JBoss4 - Tomcat 5 - Spring 3 - JEE2 alapokon működött a szoftver, zéró tesztlefedettséggel. Jelenleg Ubuntu 14.04 - Postgres 9.5 - Wildfly 10 - Docker - JEE3 a felállás, kb. 25% unit teszt lefedettséggel, és egészen komoly integrációs/end-to-end tesztekkel, tehát lassan, de fejlődünk. A feladat az, hogy repülés közben cseréljünk hajtóművet^W^W^W^W a jelenlegi, alapvetően request-response működésre kitalált rendszerből úgy csináljunk eseményvezérelt, jól skálázható "data router"-t, hogy közben a meglévő funkciók továbbra is működnek, a bugok fixálódnak, és az integrációk a partnerekkel szintén haladnak előre. Ennél konkrétabban nehéz megfogalmazni, konkrét kérdésekre szívesen válaszolok. :)

Eszközeink:
- git, Bitbucket verziókezelésre
- Vagrant, Docker, Ansible a környezet menedzselésére (tervezünk valamilyen cluster managert idővel hogy sok e2e-teszt gyorsabban lefusson)
- Java 8, némi Python (egy apró service Clojure-ben van írva, és nem zárkózunk el más, főleg JVM-alapú nyelvektől sem)
- Teamcity CI
- Jira, Confluence és Google Sites projektmenezsmentre és dokumentációra
- Struts2 a front-endre (brr...)
- Ubuntu 14.04 a szervereken
- Grafana / Prometheus / PagerDuty monitorozásra
- Selenium / Arquillian tesztekhez
- úgy néz ki, hogy Kafka/ZK lesz az event queue

Egészen a tavalyi év végéig viszonylag strukturálatlan formában ment a fejlesztés, nemrég kezdtünk el rendes scrum keretek között dolgozni. Dedikált, profi scrum masterünk nincs még.

Munkakörnyezet:

Távmunka. Havonta egyszer találkozunk valahol, általában Londonban két napra, ami ajánlott, de nem kötelező. Slacken keresztül kommunikálunk (meg persze Jira-n). Hetente néhány konferenciabeszélgetés van (2-5, változó). Az időbeosztás flexibilis, persze a callokon ott illik lenni az esetek többségében. A kollegák túlnyomórészt európai időzónákban dolgoznak. Én általában fél tíztől ötig dolgozom, aztán még este egy kicsit, vagy néha kora reggel -- így jut idő a gyerekekre is és a munkára is.

Amit keresünk:

- legyél motivált. Mivel 100%-os távmunkáról van szó, ezért úgy kell dolgozni, hogy senki nem néz rád közvetlenül.
- kommunikálj proaktívan. Tudj segítséget kérni, ha elakadsz; ha valami problémát látsz, szólj magadtól; ha valamit szerinted lehet jobban csinálni, tegyél konstruktív javaslatot.
- tudj priorizálni. Sokszor meg kell találni az arany középutat az "áhh, belehekkelem" és az "eltűnök két hónapra refaktorolni" között.
- legyél jó programozó :)

Pénz:
Valószínűleg jobban fizetünk, mint egy átlagos magyar cég, és kevésbé jól, mint egy hedge fund a londoni City-ben. :) Alapvetően nem szokott probléma lenni ezzel

Minden egyéb kérdésre megpróbálok válaszolni, akár itt, akár privátban. Egyébként a mate@patientsknowbest.com-on érhettek el.

(A hirdetés a HUP-Profession szabadkártya felhasználásával került kihelyezésre)

Hozzászólások

> tehát egy fejlesző vagy esetleges támadó nem tud belenézni az adatokba

Öröm lehet éles incidenst kezelni, mennyivel növeli ez meg a feltárásukat?

> alapvetően request-response működésre kitalált rendszerből úgy csináljunk eseményvezérelt, jól skálázható "data router"-t

Belekezdtetek már? Az igényre tök jól lehetne Akka-t alkalmazni.

>> Öröm lehet éles incidenst kezelni, mennyivel növeli ez meg a feltárásukat?

Hat, neheziti. Aztan vannak olyan kellemes mellekhatasai is a dolognak, hogy pl. nem tudsz modositani adatot, ha a felhasznalo nincs bejelentkezve. Ez szerintem csak erdekesebbe teszi az eletet :)

>> Belekezdtetek már? Az igényre tök jól lehetne Akka-t alkalmazni.

Az Akka tok jo lenne, ha most kezdenenk fejleszteni a rendszert. Ahonnan most indulunk, ott igazabol egy Datomic + Kafka parossal mar szepen el lehetne indulni; a Kafka tetejere meg ra lehet rakni az Akka Stream-eket. Majd meglatjuk :)

----------------------
while (!sleep) sheep++;

Szia, fizetes kb. milyen savban mozog? 45k-55k GPB vagy 55k-65k GPB (/ev)? Koszi

Engem ez a JEE2-ről JEE3-ra való átállás érdekelne a JEE7 korában :)