Elmenni, pénzt keresni: négy év, három ország, nyolc munkahely

Szerkesztői komment

Az alábbi történetet az egyik ismerősöm osztotta meg. A sztorit az ő szemszögéből mesélve olvashatjátok.

A BME mérnök infó elvégzése után az ELTE a matek szakon harmadéves voltam. Az egyetem mellett pedig főállásban C++-t hegesztettem egy rendszámfelismerő rendszereket fejlesztő cégnél. A meló érdekes volt, de nem fizetett kiemelkedően jól. Az egyik barátom Angliában, Bath-ban dolgozott ekkor és mondta, hogy kint jól lehet keresni. Én meg úgy voltam vele, hogy akkor kimegyek és összeszedek egy kis pénzt. Nem hosszútávra terveztem, hanem csak olyan fél évre. A terv az volt, hogy az egyetemen halasztok egy fél évet, kimegyek, és keresek annyi pénzt, hogy ne kelljen dolgoznom, amíg az egyetemet befejezem.

Hát, nem így alakult. Négy évig voltam külföldön, 3 országot megjártam, az egyetemet pedig soha nem fejeztem be.

Az első komoly programozási projektem

Középsuliban tanultam programozni. A Programozzunk C nyelven könyvet megvettem, és elkezdtem apró gyakorlatokat csinálni benne - ezek abszolút triviális programok voltak. A könyv jó részét egyébként nem igazán értettem ekkoriban.

Aztán egyetemre a BME mérnök infóra jelentkeztem, mert a matek érdekelt már a középsuliban. Az egyetemen a kedvenc tárgyaim az algoritmuselmélet, a formális nyelvek, a tömegkiszolgálás és a kódelmélet voltak. Később, negyedév körül az önálló laboratórium tárgyon a kvantumszámítógépek alsó korált becslésével foglalkoztunk. Itt már olyan matekot használtak, amit én már nem értettem - úgyhogy párhuzamosan jelentkeztem az ELTE matek szakra. Ugyanis szerettem volna elmélyíteni a tudásomat mind a matek, mind pedig a többi olyan területen, ami érdekelt. Mint például az algoritmusok.

Az egyetemen, a BME MIT tanszéke előtt láttam egy plakátot, ahol az ELTECRYPT reklámozta magát, mint egy csoport, ahol érdekes, alkalmazott rendszereket fejlesztenek, és keresnek embereket. Engem érdekelt, és felhívtam őket a telefonszámon, ami a plakáton volt.

A Gólyavárnál, a Múzeumkertben kiültünk és beszélgettünk - ez egy informális beszélgetés volt. Itt elmondták, hogy miről van szó, meg kaptam pár interjú jellegű kérdést, amit megoldottam. És ez alapján felvettek ebbe a csoportba. Itt egyetem mellett hetente kb 10 órát dolgoztam, nyáron pedig, amikor nem volt egyetem, akkor valamivel többet. Egy egyetemi munkához képest nem fizetett rosszul, és érdekes problémákon dolgoztunk. Viszont, ami miatt igazán szerettem itt dolgozni, az a társaság volt. Értelmes emberekkel dolgoztam, közben meg programozási tapasztalatot is szereztem.

Az első projektben Androidra fejlesztettünk egy projektet. Ez a projekt annyira nem jött be nekem: akkor még nem volt sok programozási gyakorlatom, és lassan haladtam vele. Plusz a Javát, mint programozási nyelvet nem igazán szerettem - és ez azóta se változott sokat. Utána viszont volt egy Matávos munkánk, és ez volt az első, igazán komoly programozási projektem.

Az (akkori) Matávtól kaptunk egy hívás gráfot, és klasztereket kellett ebben a gráfban keresni. Vagyis megtalálni azokat az ügyfeleket, akik sokat hívják egymást - hogy a Matáv az infrastruktúráját ez alapján optimalizálhassa. Ez a feladat már elég bonyolult volt, mert a hívás gráf hatalmas volt: körülbelül 9M node, és 30M él volt benne. És itt kellett klikkeket, vagy klikkekhez hasonló struktúrájú csoportokat keresnünk. A program, amit írtam erre, körülbelül 20 óráig futott a laptopomon.

Gráfelmélet

A legtöbb szoftverfejlesztő a gráfelméletet nem használja naponta - sőt, sokan alig, már ha egyáltalán találkoznak is vele. Viszont amint nagy számításigényű, vagy nagy adatmennyiségű problémákkal találkozik az ember, ezekre a problémákra gráfokkal nagyon gyakran hatékonyan lehet megoldásokat találni.

A legegyszerűbb - és legismertebb - gráf a bináris fa. Bináris fákkal például hatékonyan lehet elemeket sorba rendezni, illetve a bináris fa az alapja a népszerű heap adatstruktúrának. Emellett a DFS és BFS népszerű keresési algoritmusok is mind gráfokon alapulnak.

A gráfelmélet a napi szinten használt szoftvereinkben is jelen van. A legtöbb fájlkezelő rendszer és adatbázis B-fákat használ az indexek tárolására. A GPS alkalmazások pedig legrövidebb út algoritmusokat futtatnak egy térkép gráfon, hogy kiszámolják, merre utazzunk. A Google keresőben a javasolt, népszerű kereséseket szintén gráfok súlyozásával és klaszterezésével generálják automatikusan. A manapság egyre népszerű mesterséges intelligencia szoftverek pedig - amik egyre több helyen láthatatlanul, de jelen vannak - gyakran használnak többek között döntési fákat a működésükben.

Az itthoni munkahelyeim

Ericsson

Amikor már egy kis programozási tapasztalatot összeszedtem az ELTECRYPT-nél, akkor jelentkeztem egy csomó helyre. A Sztaki adatbányász laborjától, a DMLab-tól, és az Ericssontól kaptam ajánlatot. Az Ericcsonnál több fizetést ajánlottak, és végül ezt választottam. Utólag ezt megbántam: a DBMLab ugyanis sokkal érdekesebb helynek tűnt, érdekesebb emberekkel, és engem az adatbányászat nagyon is érdekelt. Ha valamit változtatnék, akkor legközelebb hallgatnék a megérzésemre és a pénz helyett az érdekes problémákat és érdekes embereket választottam volna az első rendes főállásomnak.

Az Ericcsonnál volt az első találkozásom egy nagyvállalattal - és rájöttem, hogy ez nem az én világom. Ráadásul egy nagyon unalmas projektre kerültem: egy Eclipse plugint kellett írnom, ami valami nem túl érdekes dolgot csinált. Egy hónap után inkább eljöttem, mert nagyon nem éreztem jól magam.

Rendszámfelismerés az ARH-nál

A Ericsson után pár hónappal az ARH-hoz vettek fel. Itt C++-ban programoztam az OpenCV képfeldolgozó könyvtárral, és a saját, belsős rendszerükön fejlesztettem. Itt mindenféle rendszámfelismeréses algoritmust kódoltam. A cég erősen használta a neurális hálókat a felismeréshez, és jó eredményeket is értek el. Egyébként ez a cég szállítja Magyarországon a legtöbb parkolóhoz a rendszámfelismerő komplett rendszert, kamerával és szoftverrel. Meg voltak amerikai, ázsiai és több külföldi ügyfelük - szóval egy viszonylag jól menő magyar cég volt.

A hangulat jó volt, és tökre érdekes problémákon dolgoztam, érdekes emberekkel. Viszont láttam, hogy az ELTE matekkal párhuzamosan nem tudom ezt a melót csinálni, és pár hónap alatt nem is tudok annyi pénzt összeszedni, hogy az egyetem befejezéséig ne kelljen dolgoznom. Ekkor határoztam el, hogy kimegyek külföldre, pár hónapra. Az egyik barátom kint volt Angliában, Bath-ban, és mondta, hogy jól lehet ott keresni. Nekem meg a célom az volt, hogy néhány hónap alatt összeszedjek annyi pénzt, amiből az egyetemet befejezhetem. Egyébként akkor még nem tudtam, de a későbbi, kinti melóim sokkal kevésbé voltak érdekesek, mint amit az ARH-nál csináltam.

Ahogy az elején említettem, a külföldi munka kalandosabban alakult, mint ahogy vártam és végül 8 különböző helyen dolgoztam, mielőtt hazajöttem. Kezdjük akkor sorban.

1. Webfejlesztés Pythonban, Djangoval

Kiköltöztem Londonba és elkezdtem munkát keresni. Az első állásom egy contract volt, Old Street-nél. Nem volt egy kifejezetten jó meló, ráadásul nagyon rövid is volt. Összesen 2 hónapra szerződtettek. A munkahely egy digitális cég volt, ahol weboldalakat kellett összerakni, Python-ban, Django-val. Én előtte sose használtam se Pythont, se Djangot. Mármint, persze, az interjú előtt valamennyit ránéztem, de nem voltam közel se profi benne - sose dolgoztam pénzért ezekkel a technológiákkal.

De úgy voltam vele, hogy gyerünk, vágjunk bele. Az első 2-3 hét viszont iszonyú nagy szívás volt. De pont ahogy István írta a Facebookos történetében - ha ráfekszel valamire 110%-osan, akkor meg lehet tanulni. Nálam is ez volt. Bementem 8-ra, és este 8-kor mentem haza. Közben meg folyamatosan güriztem, hogy valamit produkáljak.

Később egyébként többször belevágtam ilyen "munka közben megtanuljuk, hogyan is működik a rendszer" dologba. Ezek mindig elég megterhelőek voltak eleinte - viszont mindig csomó tapasztalatot jelentettek, és egyszer sem bántam meg, hogy nem a könnyű utat választottam.

Egy új nyelv és keretrendszer megtanulása

Én a C++-ban viszonylag jó voltam, amikor kikerültem Angliába és elkezdtem Python-ozni. Python-ul meg "beszéltem" valamennyire, csak nagyobb appot nem fejlesztettem vele korábban. A Django keretrendszer megértése és használata volt nehezebb - itt át kellett rágni magam egy csomó dokumentáción meg példakódon, amíg összeállt az egész.

Ami igazán kemény volt, az az, hogy nem volt semmilyen tanulási időm: az első naptól kezdve alkotnom kellett. Kiosztottak JIRA ticketeket feladatokkal az adott hétre, és elvárták, hogy én azokat a hét végére lezárjam. Na, ezért maradtam az első hetekben késő éjjelig a cégnél - folyamatosan tanultam, hogy hogyan kódoljak Pythonban, miközben a ticketeken dolgoztam.

De még így is - az elején nagyon nehezen ment a feladatok lezárása, és sokat szenvedtem. Szerencsére viszont a cégnél türelmesek voltak. Én meg pár hét alatt belerázódtam és 2 hónap alatt befejeztem a melót, amit terveztek.

2. Android OS code review Svédországban

Az első, 2 hónapos angliai contract vége felé elkezdtem keresni a következő melómat. Pár online Skype-os interjú után kaptam egy újabb contract ajánlatot Svédországban, Malmőben, az Ericssonnál. Úgy voltam vele, hogy ott még nem voltam, a fizetés meg nem volt rossz, úgyhogy mentem.

Viszont se a meló, se Svédország nem igazán jött be. A meló eléggé kulimunka volt: egész nap code review-olnom kellett az Ericssonos telefonok Android kódját. Ezt a Gerrit nevű rendszeren keresztül csináltam - nagyon hasonló a GitHub code review-éhez. Annyi volt a feladatom, hogy a kódot átnézzem, hogy jónak tűnik-e, és összepasszintani, hogy tényleg azt változtatták a pull request-ben, mint ami a kommentekben volt. Őszintén - nem volt túl kreatív meló.

És Svédország se klappolt igazán. Egyrészt pont télen voltam ott - Novemberben mentem ki. Ekkor nagyon sötét volt egész nap, ráadásul a svédek nagyon zárkózottak is voltak. Malmö külvárosában laktam és Lundba jártam dolgozni, ami egy egyetemi város. Viszont amíg itt voltam, addig téli szünet is volt, szóval a városban még emberek se nagyon voltak.

3 hónappal később, Januárban mondtam azt, hogy ebből akkor elég, és hazajöttem Magyarországra. Mivel contractor voltam, ezért elég könnyen el tudtam jönni, két hetes felmondási idővel. Ez a contractorkodásnak egy nagy előnye: ugyan téged is nagyon rövid határidővel kitehetnek, de te is ugyanilyen rövid határidővel felmondhatsz.

3. Nagyvállalati média rendszer webes fejlesztése

Pár hónapig voltam itthon és utána visszamentem Angliába. Ekkor főállásba mentem el a Hogarth nevű digitális ügynökséghez, ahol szintén webet fejlesztettem. Javascriptben és Pythonban feljesztettem, Django , Celery és Backbone JS keretrendszerekkel. Itt a nagyvállalati fájl- és média tároló rendszerüket fejlesztettem. A szoftver, amin dolgoztam gyakorlatilag egy portál volt, egy csomó munkafolyamattal. Az ügyfelek fájlokat, és hozzá kapcsolódó metainformációkat tölthettek fel. A feltöltött fájlokat, képeket, és videókat pedig rendszerezhették és összehasonlíthatták. Itt nem igazán jött be a projekt, és a csapattal sem jöttünk ki 100%-osan. 6 hónapig maradtam, aztán inkább továbbálltam.

Interjúk itthon és külföldön

Mivel elég sok helyen dolgoztam, elég sokat interjúztam is. A legkeményebb interjúm Magyarországon, az ARH-nál volt. Itt reggel 8 fele C++-al indítottunk, majd délután 3 felé egy kis komplex analízissel, meg a kétkarú mérleges pénzméregetős feladat egyik változatával fejeztük be.

Külföldön viszont az interjúk ehhez képest a bagatel kategóriában indultak. Az első contractomnál nem is volt igazán interjú, csak megkérdezték, hogy értek-e a Pytonhoz és Djangohoz. Pythont már használtam korábban, a Djangót meg azt hittem, hogy tudom, úgyhogy másnap már kezdtem is. (Persze, kiderült, hogy a Djangót nem ismertem annyira, mint amennyire azt hittem később.)

A többi interjút szinte mindig munkaközvetítőkön keresztül kaptam. Általában volt egy informális, ismerkedős kör Skype-on, vagy valami hasonló cuccon keresztül. Utána a második kör vagy az irodában, vagy remote, szintén Skype-on. Ez egy technikai kör volt, ahol feltettek néhány szakmai kérdést, de nem bonyolultakat. Az én tapasztalatom alapján kint nem dívik az interjúkon nagyon keményen megizzasztani az embereket - a contract pozíciókra, ahova jelentkeztem, legalábbis biztosan nem.

4. RPG játék frontend és backend fejlesztése

Utána a Gamesys-hez mentem dolgozni, ide már contractorként. Ez a cég online játékokat csinált. Helyileg egyébként jó helyen volt az irodájuk - a Piccadily Circus-nál, a fényreklámmal szembeni épület volt az övék, szóval elég jó volt a kilátásom. Az első hónap után viszont már úgy kerestem asztalt, ahol háttal ülhetek a fényreklámoknak :)

A kilátásom a Gamesys-nél

A cég pókert, blackjacket meg hasonlóan addiktív játékokat fejlesztettek, és jól ment a szekerük. Itt igazából mindenes voltam: két nagyobb projekten, meg még egy csomó kisebben dolgoztam.

Az egyik nagyobb projekt egy Bingo játék fizetős backendjének az írása volt. Itt a Facebookos, Androidos és iPhone-os fizetőrendszerekkel kompatibilis megoldást kellett fejlesztenünk, amit Pythonban és Flask-ben csináltuk. A másik projekt pedig egy RPG játék item editorjának a fejlesztése volt.

Ennek a második RPG-nek eleinte nagyon vicces volt, ahogy az a backendje működött. A Google Drive-ra egy csomó excel doksit felpakoltak, és ebben tároltak mindenféle beállításokat a játékról és a tárgyakról. Szóval például a maximum életerő, a különböző szintekhez tartozó bónuszok mind itt voltak konfigurálva. A backend meg ezeket olvasta be. De az excel doksi, az több ezer soros volt. És volt konkrétan 5-10 ember, akit odaültettek a gépekhez, és ők egész nap hegesztették ezt a doksit, ahogy tesztelték a játékot.

Mi meg a csapatommal ezt a rendszert cseréltük le valamivel kulturáltabbra. A rendszer, amit mi csináltunk, az gyakorlatilag verziózást adott az egészhez - lehetett menteni változtatásokat és rollbackelni. Meg a felhasználói felületet egy picit és használhatóbbra cseréltük az Excel táblákról. A legfontosabb változtatás a korábbi rendszerrel szemben az volt, hogy a szerkesztők nem tudták elrontani az egész konfigurációt. A Google Drive-os megoldásnál ugyanis nem volt semmilyen séma ellenőrzés, és egyetlen elütés meg tudta ölni az egész játék konfigurációját. Technikailag egyébként nem volt egy nagy kaland a fejlesztés maga egyébként - ezt is Flask-ben fejlesztettük a backenden, a frontenden meg HTML / Javascript-ben.

Ezeken felül még pár apróbb projekten is dolgoztam, frontenden és backenden vegyesen. Az egyik ilyen kisebb, de tanulságos projekt, a CSS hegesztéshez kapcsolódott. Az cég egyik weboldala nem működött a régi Internet Exploreren, és ezt kellett megjavítanunk. Úgyhogy megismerkedtem a Modernizr-el, aminek a segítségével az Internet Explorerhez spéci CSS-t (illetve Sass-t) írtam. Egyébként én a CSS-ezést nem igazán szerettem - viszont szerencsére volt a csapatban egy srác, aki később az ilyen dolgokat magára vállalta, úgyhogy nem kellett sokat foglalkoznom ezzel.

A Gamesysnél még az volt az érdekes, hogy mi voltunk az egyik első nagy használója a Google App Engine-nek. A főnökömet 2013-ban meghívták a Google I/O-ra, ahol mesélt a tapasztalatainkról.

5. Bolondok háza Central Londonban

A Gamesys-nél 8 hónapot maradtam, és nyár közepén eljöttem tőlük, mert kezdtem megunni a melót, és valami mást akartam csinálni. Úgy voltam vele, hogy biztos találok valami jó állást pár héten belül, ahogy korábban is. Pláne, hogy már sokkal több releváns tapasztalatom volt. Hát, ez végül nem jött olyan gyorsan össze.

Mivel nem találtam olyan munkát, ami jónak tűnt volna, ezért elmentem egy céghez, akik nem voltak igazán szimpatikusak, de gondoltam, megpróbálom. A munka Central Londonban volt, Chancery Lane-nél.

A cégnél mintha komplett idióták dolgoztak volna. A Python moduljaikat például binárisokba akarták csomagolni a bevett PyPI modulformátum helyett. Meg volt egy srác, aki szinte egész nap rap videókat nézett. Aztán kirakott egy update-et a cég weboldalához, ahol valami nem működött... és egy nap alatt £15,000 bevétele úszott el a cégnek ezzel. Ugyanis eddig tartott, mire a sok rap videó között észrevette az arc, hogy konkrétan az oldal nagy része lehalt. Úgy éreztem magam, mint egy bolondok házában. Úgyhogy innen gyorsan le is léptem. 3 hetet voltam ott körülbelül.

Contractor vs főállás

Ha Angliában bent vagy egy munkahelyen, akkor nem igazán tudsz különbséget tenni aközött, hogy ki főállású (full time), és ki contractor. Én ugyanolyan alkalmazottnak éreztem magam, mint bárki más. Nekem csak a szerződésem típusa volt más és az, hogy napidíjban fizettek. Én más különbséget nem éreztem.

A legnagyobb különbség a fizetésben volt. Contractorként valamivel több pénzt lehet keresni, mint ugyanabban a munkakörben főállásúként - a cikk végén erről részletesebben beszélek.

Egyébként a pénz területén volt, amelyik contractor kollégámnak egyedi volt a hozzáállása. Az egyik kollégám szerződése lejárt, és még nem írták alá az újabbat, de folyamatban volt. Viszont a srác fogta magát, és addig nem jött be, és egy percet nem volt hajlandó dolgozni, ameddig az új szerződést alá nem írták. Ez a srác elég komolyan vette magát ilyen szempontból - nekem ez furcsa volt ilyen szinten. De persze nem az én dolgom eldönteni, hogy ez jó vagy rossz: srác végül is elérte, amit akart.

Amit igazán nehéznek találtam ebben a contractor létben az az, hogy amikor elkerülsz egy új helyre, akkor nulláról kezdesz mindent. Meg kell ismerned a kódbázist, alkalmazkodni kell az ottani szokásokhoz és emberekhez. Ez a része, ez nehéz. Az első egy hónap minden helyen nekem húzós volt - utána meg, ahogy belerázódtam, már könnyebb.

Amit szerettem a contractorkodásban, az a változatosság volt. A legtöbb helyen 3-6 hónapos contractra veszik fel az embereket, amit aztán általában meghosszabbítanak, ha maradni akarsz. Én viszont szinte mindig valami mást akartam csinálni, úgyhogy ez a kb 6 hónapos hossz nekem pont jó is volt. Mire lejárt a contractom, általában már kevésbé tűnt érdekesnek, amin dolgoztam, és mentem keresni valami mást.

A változatosság mellett nekem kényelmesebb is volt ez a fajta munka. Ha nem tetszett a munka, akkor rövid felmondási határidővel megettem máshova. És ha olyan kedvem lenne, akkor két contract között egy hónap szünetet is tarthatok - amit néha tartottam is. Pénzügyileg valószínű nem jöttem ki sokkal jobban, mintha főállásban dolgoztam volna - de nekem feküdt ez a kényelem. És nem igazán izgatott, hogy amikor kifut a contractom, akkor mi lesz utána. Persze nyilván embere válogatja, hogy mennyire vállal rizikókat - nekem mindenesetre eleinte bejött ez a munkaforma, a folyamatos váltogatással.

6. Automatizált deployment platform a BBC-nél

A BBC-nél egy telepítő rendszert fejlesztettünk, ami az Amazon felhőjébe, az AWS-be automatizáltan becsomagolta, bele tolta, és felskálázta a weboldalaikat és serviceiket. A rendszert belsőleg Cosmos-nak hívták. Be lehetett állítani, hogy egy telepítéshez hány és milyen szervert használjon, emellett clustereket és subneteket is lehetett létrehozni. Ez a rendszer tudásában nagyon hasonlított a Docker-re. Azzal a különbséggel, hogy akkor még egyrészt volt még ismert a Docker. Illetve pár extra dolgot tudott a Cosmos, amit Docker nem támogat - például az AWS resource-ait konfigurálni.

Ez a projekt egyénként az egyik érdekesebb volt, amin dolgoztam. Viszont az az érzésem volt, hogy a BBC-nél szeretnek máshogy csinálni dolgokat, mint ami a legtöbb helyen bevett gyakorlat. Például ennél a projekntél PHP volt a frontenden, és Python a backenden, ami nagyon furcsa választás. A PHP renderelte magát a weboldalt oldalt. Mi pedig Pythonban fejlesztettük a backendet, ami egy REST API volt és a Tornado web szerveren futott.

Nekem nagyon furcsa volt ez az architektúra, és nem értettem, hogy miért kellett így túlbonyolítani. Amikor kérdeztem, hogy mi volt az oka ennek a választásnak, a többiek csak azt tudták mondani, hogy "because of historical reasons", és már nem tudnak változtatni rajta. De közben ezt a projektet már másodszor kezdték újra, szóval nem igazán értettem, hogy hogy sikerült ilyen kuszára, másodjára.

Viszont ettől a furcsaságtól eltekintve a BBC-nél szerettem az embereket és a helyet, és ez a Cosmos projekt is az érdekesebb projektjeim között volt. Amikor én eljöttem, 6 hónappal később, akkor a BBC szolgáltatásai már elkezdték a Cosmost használni, és átköltözni az Amazon felhőjére. Az egyik első oldal, ami sikeresen át lett költöztetve a régi rendszerről, az a BBC gyerekeknek szóló oldala volt. Ezzel az oldallal stressz tesztelték a mi rendszerünket - és miután minden jól működött, elkezdték a többi oldalt is átköltöztetni.

7. Távmunka contractorként

A BBC-s meló után elkezdtem variálni, mert mindenképpen távmunkában akartam dolgozni, itthonról, angol cégnek. Úgyhogy sokat interjúztam, és kaptam mindenféle ajánlatot. A legtöbbet viszont vissza mondtam, mert nem engedtek volna se akkor, se később távolról dolgozni.

Végül az SSLPost nevű cég ajánlatát fogadtam el. Angliában új magánnyugdíjrendszer kerül majd bevezetésre, ők pedig egy olyan rendszert fejlesztettek, ami a régi nyugdíjrendszerből az újba átviszi a könyveléseket. Szóval van egy csomó meglévő könyvelőrendszer, ők meg ezeket beleintegrálják az ő rendszerükbe. Itt a beimportált adatokon a felhasználók tudnak matatni egy kicsit - pl kijavítani hibás adatokat. És az adatokat pedig elküldik a nyugdíjbiztosítónak.

Na de amikor én odakerültem, akkor konkrétan semmi nem működött. A kód szörnyű volt, copy-pastelve voltak egyik fájlból a másikba méretes kódrészletek. Halál volt az egész. Az első hónap végén pedig úgy voltam vele, hogy akkor én felállok és elmegyek, köszönöm szépen.

Viszont aztán végiggondoltam, és arra jutottam, hogy lehet, hogy szívni kell vele másfél hónapot, de utána meg minden jó lesz. Nekem meg sokkal jobb dolgom lesz, mintha be kéne járnom egy irodába - otthonról dolgozhatok, és mehetek ide-oda napközben, ha akarok. Úgyhogy neki is álltam, és két hónapon keresztül kőkeményen dolgoztam: esténként későig, és minden hétvégén is. Erre ment rá a fél júniusom és egész júliusom. Végülis megérte: másfél hónap alatt ugyanis félig működőképessé tettem a rendszert. Utána még pár hónap kevésbé megfeszített munka következett, és 5 hónappal később, decemberre 100%-osan működött minden.

Utána pedig már csak szinte karbantartási munkát kellett csinálnom. Az első pár húzós hónapban itt egyébként Angliából dolgoztam, utána Magyarország és Anglia között utazgattam. Az utolsó pár hónapban itthonról dolgoztam, távolról. Ez a cég volt, ahol a legtovább dolgoztam, több, mint egy évig. Alapvetően nekem viszonylag bejött ez a munka, mert kényelmes volt, és tudtam utazni közben.

A Távmunka előnyei és hátrányai

Az első pár, húzós hónapban irodából dolgoztam, utána meg Anglia és Magyarország között utazgattam. Az utolsó pár hónapban pedig itthonról dolgoztam, távmunkában. Nekem ez a munka nagyon szabad volt, annak minden előnyével és hátrányával.

Az előny nyilván az volt, hogy nem kellett bejárni, meg napközben elég szabadon ki tudtam lépni ezt-azt intézni, ha kellett. Meg ritkábban jön valaki oda hozzád, munka közben kérdezni valamit, amivel kizökkent a gondolataidból. A hátrány meg az, hogy egy idő után elunja ezt az ember. Én otthonról, könyvtárból meg shared office-ból dolgoztam, és azt tapasztaltam, hogy ez a fajta munka elmagányosított.

A shared office-okkal nekem nem volt jó tapasztalatom. Londonban kipróbáltam egy párat, de mindenhol volt egy csoport, akik baromi hangosan beszélgetett. Engem meg ez nagyon zavart. Én nem akarok folyamatosan fülhallgatóval dolgozni, mert nekem az nem megy.

8. Webfejlesztés Hollandiában

Az SSLPost-nál már egy ideje csak karbantartás volt a munka, és szerettem volna otthagyni. Egy volt kollégám pont akkor hívott fel, hogy Hollandiában, a Sanománál van egy webfejlesztős munka, amire én tökéletes lennék. Engem eleinte nem érdekelt ez az egész, de addig győzködött, míg csak rávett, hogy kimenjek.

Hollandia nekem bejött összességében. Angliát egy picit jobban szerettem, de itt is minden rendben volt. Viszont utólag visszanézve, nem kellett volna elvállalnom ezt a melót.

Az egész webfejlesztésbe én csak azért kezdtem bele, mert ezzel tudtam állást kapni külföldön, még az első melóhelyemen, Londonban. Illetve a webfejlesztéssel jól lehetett keresni, úgyhogy ezt folytattam - és mivel egyre több tapasztalatom lett benne, egyre jobban tudtam keresni vele, és egyre több helyre tudtam bekerülni. Például a BBC-hez pár évvel korábban biztos nem vettek volna fel, amikor nem volt még elég webes tapasztalatom.

Viszont ez az egész webfejlesztés nem egy túl mély dolog. Engem a nehéz problémák érdekelnek, ezért is kezdtem el az ELTE matek szakot. Meg ezért is volt jó kihívás az fejlett ARH-nál rendszám felismerő algoritmusokat fejlesztenem. A webfejlesztés viszont eléggé egy kaptafára megy, és azok a nehéz problémák, amiket én szeretek megoldani, nem igazán jellemzőek.

Hollandiában másfél hónap után döbbentem rá, hogy elegem van a webfejlesztésből. Ez a munka is dettó ugyanaz volt technológiailag, mint amit eddig csináltam, és amiből ki akartam szállni. Jeleztem a főnökömnek, hogy eljönnék, aki szerencsére nagyon megértő volt. Én pedig hazajöttem, hogy egy kis szünetet tartsak.

Beszéljünk a pénzről - szerkesztői komment

A főállás mellett Angliában népszerű foglalkoztatási forma az egyéni vállalkozói szerződés, más néven contracting. Szoftver fejlesztőként szinte mindenhol napidíjjal számolnak. A brit IT Jobs Watch oldal publikálja az átlagos napidíjakat, amik £300-500 között mozog várostól, szenioritástól és technológiától függően.

Ezek a számok medián értékek. Kisebb városokban és belépő munkáknál az érték ennék általában alacsonyabban kezdődik. A legtöbb contractor szépen, folyamatosan lépked felfelé, minden következő contracttal egy jobb napidíjat kialkudva, ahogy egyre több tapasztalatot (és referenciát) szereznek.

Papíron a contracting belépő szintje is elképesztően soknak tűnhet, pláne a magyar fizetések után. Pár dolog viszont árnyalja a képet. Az egyik, az adó. Contracting esetén ez elég bonyolult, és az IR35 szabályozás miatt valamivel több adó terheli a contract bevételt, mint ha főállásban kapná az illető lenne. Ez 17-43%-os adót jelenthet, napidíjtól és contract hossztól függően. A másik, hogy nincsen fizetett szabadság vagy betegszabadság. Ha szabadságra mész vagy lebetegedsz, aznap nem kapsz fizetést. Emellett bónusz értelemszerűen szintén nincsen, ahogy semmi más juttatás, ami a főűllású kollegáknak jár, mint képzések és konferenciák.

Persze még így is nagyon jól lehet keresni. Akit érdekelnek a contrancting további részletei, a Contractor UK oldalon érdemes tovább olvasni. Itt több infót lehet kapni az adózásról és az IR35-ről is. Aki contractorkodik, annak pedig egy helyi könyvelő céget mindenképpen érdemes felbérelni adózási tanácsokért.

Amit nyertem az egész kalanddal

Nekem ez volt az első alkalom, hogy idegen országban, egyedül éltem. Csak magamra számíthattam: nekem kellett minden papírt elintézni, lakást bérelni, adót fizetni, meg egy csomó ügyes-bajos dolgot megcsinálni. Azzal, hogy kimentem, sokkal önállóbb lettem, és a saját lábamra álltam.

Nekem az jött át, hogy az angolok általában szervezettebben dolgoznak, mint itthon. Ennek mondjuk megvan a hátránya is, mert egy csomó adminisztratív aprósággal kellett foglalkoznom, ami egy csomó időt elvitt. Emellett és erősebbnek láttam a kintieknek munkamorálját. Az emberek jobban odatették magukat nap mind nap a melóban.

Szakmailag viszont rengeteget nyertem ezzel a kalanddal. Az itthoni munkahelyemnél egy csomó olyan dolgot nem csináltunk, ami teljesen alap volt kint. Például kint egy csomó helyen a Scrum-ot követtük projekt metodológiában, JIRA-t használtunk a projekt menedzsementhez. Nekem ez mind új volt: biztosan vannak itthon is munkahelyek, ahol ez mind alap, de én először külföldön találkoztam ezzel. És mivel kint 8 helyen dolgoztam, minden helyen a nulláról kezdve egy új rendszert kellett megértenem és megtanulnom. Ez mindig sok munka volt, de csomó tapasztalatot is jelentett.

A következő munkám... machine learning?

Mióta hazajöttem Hollandiából, tanulgatom a Haskell-t, illetve beleástam magam a machine learning-be és mesterséges intelligenciába. Az Udacity-n online most fejezem be a Machine Learning Nanodegree-t, ami egy 420 órás kurzus (kb 2-6 hónap elvégezni, időbefektetéstől függően).

Ennek a nanodegreenek a vége felé azt kell mondjam, hogy elég jó cucc, de azért sokat kell hozzá olvasni, ha az ember jól meg akarja érteni a dolgot. Én a Pandas, NumPy és SciPy könyvtárakat használom mellette a kódoláshoz, amik jól kézre állnak. Sajnos az anyagban sokszor csak képleteket közölnek, bizonyítások nélkül, amit nekem nehezebb követni - már a BME-n is gondot okozott ez a fajta oktatás, úgyhogy ez egy kicsit lassítja a haladásomat.

Abban reménykedem, hogy ez a tanulásbeli befektetésem megtérül majd, és ezen a területen tudok majd állást találni. A mesterséges intelligenciával kapcsolatos problémák és projektek ugyanis engem sokkal jobban érdekelnek és motiválnak. Ráadásul manapság úgy tűnik, hogy ez a terület egyre inkább népszerű, és egyre több érdekes lehetőség nyílik machine learning-ben jártas fejlesztőknek.

Orosz Gergely

Csapatvezető az Ubernél. Korábban a mobil és full stack mérnök a Skyscannernél és JP Morgannél, a Skype-nál pedig az XBox One csapat alapító tagja volt.

Rendszeresen új, inspiráló és érdekes sztorival jelentkezünk a szoftverfejlesztés világából.
Következik: 4 évet dolgoztam a Facebooknál. Ezt a 4 fontos dolgot tanultam itt meg.
Iratkozz fel a hírlevélünkre - és elsőként értesítünk az új szorikról.
A kommenteket a Disqus jeleníti meg