od mida do seniora

Od mida do seniora. Od czego zależy awans? Devdebata

– Po pierwsze, upewnij się, że faktycznie masz na tyle umiejętności, żeby zostać seniorem. Po drugie, miej odwagę zaznaczyć swoje oczekiwania. Daj znać “tym wyżej”, że jesteś gotów na awans i pokaż jak bardzo Ci zależy – powiedział w devdebacie Paweł Dyląg, Senior Android Engineer w Revolut. 

Zaprosiliśmy trzech seniorów do rozmowy o awansie, o tym, jak wyglądały ich ścieżki kariery. Mamy nadzieję, że w ten sposób udało nam się pokazać, co zrobić, by przejść z etapu mida na etap seniora.

W devdebacie udział wzięli:

  • Filip Rachwalak, Senior Systems Engineer w F-Secure. Swoją programistyczną karierę rozpoczynał w 2016 roku jako Python developer, lecz szybko jego obowiązki zaczęły oscylować bardziej wokół wdrażania kodu, automatyzacji testów oraz rozwijania infrastruktury. Krótko potem – w czasie migracji do chmury Amazona – odkrył świat AWS’a, w którym już pozostał. Dziś prowadzi zespół DevOpsów opiekującym się istniejącą infrastrukturą, wdrażaniem nowych produktów oraz ich migracją do AWS. W wolnej chwili prowadzi szkolenia (w stylu „From Zero to Hero”) również z zakresu chmury Amazona.
  • Łukasz Kliś, Full Stack Engineer w Coya. W wieku 15 lat rozpoczął przygodę z programowaniem, a dwa lata później zrealizował pierwsze zlecenie. Współorganizował trójmiejskie spotkania dla społeczności IT (PoolCamp, meet.js Gdańsk) oraz konferencje (meet.js Summit, CSSconf EU, JSConf EU). Pracował w kilku firmach, zarówno z siedzibami w Polsce, jak i za granicą. W 2013 roku przeprowadził się do Niemiec dla pracy w startupie Wimdu. W grudniu 2019 wrócił do Wrocławia i zdalnie pracuje dla firmy Coya.
  • Paweł Dyląg, Senior Android Engineer w Revolut, do którego ofertę pracy znalazł na JustJoinIT. Absolwent studiów informatycznych UJ, choć czasem sypiał na wykładach. Mówi na co dzień po Kotlinowemu i po Javowemu, a od jakiegoś czasu rozmawia z kotem po Dartowemu. Zaczynał pracę jako grafik komputerowy i nie myślał o programowaniu, aż do momentu jak nie wyprintował “hello world” w C. Od tego czasu spod jego klawiatury wypłynął kod paru aplikacji SmartCity firmy SoInteractive, kod SDK’ów do beaconów Estimote, kod do aplikacji norweskiego fintechu Vipps, czy w końcu kod do appki Revolut, z której korzysta już ponad 12 mln użytkowników na całym świecie.

Jaka jest różnica między seniorem a juniorem/midem?

Filip Rachwalak, Senior Systems Engineer w F-Secure:

Poza aspektem wiedzy i umiejętności (warunkiem koniecznym przy awansie), to bardzo rzuciła mi się w oczy szczególna cecha, którą – uważam – każdy senior posiadać powinien: odpowiedzialność. Seniorowi można powierzyć zadania dowolnej trudności i powinniśmy się spodziewać, że to zadanie zostanie zrobione, przetestowane i wdrożone w skończonym czasie. Być może senior nie zrobi wszystkiego sam, ale na pewno będzie się czuł odpowiedzialny za “dowiezienie” tego do końca, więc zwróci się do tych osób (być może bardziej doświadczonych), których potrzebuje, by skończyć zadanie.

praca-za-granica

Łukasz Kliś, Full Stack Engineer w Coya:

To zależy – różnice wynikają z tego, jak konkretna firma definiuje wymagania odnośnie konkretnych ”poziomów” programistów. Każda organizacja ma inne oczekiwania wobec pracowników ze względu na wewnętrzną strukturę, procesy, itp. Ciężko jest podać konkretne różnice, które są reprezentatywne dla wszystkich firm zatrudniających programistów. Inne wymagania odnośnie każdego z poziomów startupy, małe i średnie przedsiębiorstwa, czy duże korporacje.

Abstrahując, z moich doświadczeń w pracy, jako programista oraz menedżer, mógłbym pokusić się o zdefiniowanie bardzo ogólnych różnic pomiędzy juniorem, midem oraz seniorem – sposób i świadomość tego, jak wykonać powierzone zadania. Juniorzy wymagają stałego (lub bardzo częstego) nadzoru oraz precyzyjnie określonych wymagań/podejść do rozwiązania danego problemu. ”Midy” są w stanie wykonać większość typowych zadań od czasu do czasu konsultując rozwiązania z innymi. Seniorzy natomiast wymagają minimalnej ilości nadzoru odnośnie wykonywanych zadań oraz pełnią rolę mentorów dla juniorów oraz midów.

Warto pamiętać, że wiedza, na podstawie której wykonujemy zadania, nie ogranicza się jedynie do znajomości technologii, a również do znajomości produktu oraz procesów wewnątrz organizacji.

Paweł Dyląg, Senior Android Engineer w Revolut:

Po roku pracy w mojej pierwszej firmie wydawało mi się, że trzymam wysoki poziom. Cały projekt miałem w jednym palcu, znałem większość linijek kodu, debugowałem z szybkością równą TGV, edukowałem resztę zespołu, a nawet jeździłem prezentować produkt za granicę. Patrząc z zewnątrz – prawdziwy senior. Jakiś czas później zrezygnowałem z pracy w korporacji i zmieniłem klimat na startupowy dołączając do Estimote. Nie ciężko się domyślić, że to tam spadło na mnie kowadło rzeczywistości. 

Okazało się, że pisanie kodu w jednej klasie nie jest dobrym pomysłem, opisywanie każdej funkcji elaboratami komentarzy nie jest proste w utrzymaniu, a pisanie testów nie oznacza bynajmniej szkolnej kartkówki. Takie doświadczenie pozwala mi zauważyć, że ciężko jest wyraźnie narysować granice między juniorem, midem, a seniorem. W każdej firmie jest inna definicja tych stanowisk i często ktoś będący seniorem w jednej firmie, w drugiej byłby zaledwie juniorem. Z perspektywy czasu wiem na pewno, że ktoś o umiejętnościach seniora powinien umieć powiedzieć “nie” (co wcale nie jest takie proste jakie się wydaje!). To proste słowo pozwala niekiedy uratować produkt przed katastrofalnymi decyzjami, pochopnymi pomysłami, czy zwykłym, ludzkim pośpiechem. 

Po jakim czasie od zostania midem dostaliście awans na seniora? Dlaczego tyle to trwało?

Filip Rachwalak, Senior Systems Engineer w F-Secure:

Dwa lata. Myślę, że to ani krótko, ani długo – normalny etap.

Łukasz Kliś, Full Stack Engineer w Coya:

Po półtora roku od kiedy dołączyłem do firmy (mid z 4-ketnim doświadczeniem). Aby przejść na seniora musiałem dobrze poznać produkt, model biznesowy, procesy wewnątrz firmy oraz wykorzystywane technologie.

Paweł Dyląg, Senior Android Engineer w Revolut:

W moim przypadku było to około 3 lat pracy w startupie. Przez ten okres pracowałem pod okiem bardziej doświadczonych programistów, co pozwoliło mi w całkiem niedługim czasie zdobyć ogrom praktycznej wiedzy. 

Czy to Wy zabiegaliście o to, by przejść na stanowisko seniora? Przełożony powiedział, jak zmieniły się oczekiwania wobec Was po zmianie roli?

Filip Rachwalak, Senior Systems Engineer w F-Secure:

Myślę, że są dwa podejścia, jeśli chodzi o podwyżkę/awans – albo się samemu inicjuje rozmowę z LM’em, albo swoim performancem zmusza się go do awansowania Cię. Oczywiście druga opcja nie zawsze się uda, ale ja osobiście nigdy o awans nie prosiłem (ale też nigdy nie byłem zmuszony, zawsze ktoś dostrzegł moje zaangażowanie) i uważam, że taki sposób na pewno zdecydowanie lepiej smakuje.

Łukasz Kliś, Full Stack Engineer w Coya:

Zacząłem czuć się bardzo pewnie w tym, co robiłem na dany moment, a co za tym idzie chciałem dalej rozwijać swoje umiejętności i podnieść sobie poprzeczkę. Po rozmowie z przełożonym, ustaliliśmy wstępne oczekiwania dotyczące tego, co to znaczy być seniorem w firmie i co dwa tygodnie spotykaliśmy się na tzw. 1-1, gdzie śledziliśmy na bieżąco postępy.

Paweł Dyląg, Senior Android Engineer w Revolut:

Skoro musimy postawić granicę, to szczerze mówiąc na początku tytuł seniora przypisałem sobie sam. Zupełnie nieoficjalnie, i raczej na gębę, gdyż w startupie nie ma takich ścisłych ram jak w korporacjach. Nie mieliśmy specjalnie wytycznych jakie powinien spełniać senior, a nawet junior, czy mid. Liczyło się tak naprawdę, ile wartości ktoś wnosił do zespołu, oraz czy jego wiedza i umiejętności pozwalały rozwijać produkt – tworzyliśmy wtedy parę SDK’ów do Estimote’owych beaconów. 

Takim pełnym seniorem z krwi i kości tak naprawdę stałem się dopiero po przejściu rekrutacji na to stanowisko w Revolucie. Oczekiwania tutaj są wysokie, gdyż naszej appki używa ponad 12 mln użytkowników na całym świecie, co ciągnie za sobą ogromny nacisk na jakość i testowalność kodu – coś, czego w małych startupach (i w wielu korporacjach) na próżno szukać. 

Waszym zdaniem, które umiejętności okazały się kluczowe w podjęciu decyzji o awansowaniu Was na seniora?

Filip Rachwalak, Senior Systems Engineer w F-Secure:

Zacząłem bardzo mocno dzielić się wiedzą (organizowane cotygodniowe workshopy, potem 3-dniowe workshopy), również “wychodziłem” poza zespół, pomagałem osobom z innych zespołów, itd.

Łukasz Kliś, Full Stack Engineer w Coya:

ZOBACZ TEŻ:  Czy Fullstack ma łatwiej na rynku pracy? Devdebata

Zainteresowanie nie tylko aspektami technologicznymi, ale i biznesowymi, komunikowanie się w przejrzysty sposób, bycie pragmatykiem.

Paweł Dyląg, Senior Android Engineer w Revolut:

Co prawda nigdy nie miałem oficjalnych odgórnych awansów, to uważam, że najważniejszym jest dbałość o produkt i postrzeganie go w całości, a nie patrzenie z bezpiecznej perspektywy swoich tasków. W końcu zarabia na siebie efekt wspólnej pracy, a nie pojedyncze commity. Firmy produktowe cenią sobie takie szerokie patrzenie na sprawę, a na miarę złota jest dla nich programista, który wie, że software jest ciągle “w ruchu” i należy jeszcze go jakoś sprawnie utrzymywać i rozwijać. Dodajmy do tego szczyptę asertywności i garstkę odwagi, by powiedzieć ”nie”, a w efekcie otrzymamy przepis na całkiem solidnego seniora.

Co mogłoby przyspieszyć, a co spowolnić Wasze przejście na stanowisko “seniora”?

Filip Rachwalak, Senior Systems Engineer w F-Secure:

Nigdy nie odmówiłem nikomu pomocy z technologią/problemem, przez które już przechodziłem – współpracownicy zaczęli nawet mi “przeszkadzać”, wówczas im pomagałem albo przynajmniej się starałem (kierowałem do odpowiednich osób albo stronek z dokumentacją albo podobnym problemem). Byłem taką osobą, która z czasem była kimś do kogo się szło, bo nawet jak nie wiedziałem jak coś zrobić, to wiedziałem kto wie. Dlatego po awansie na seniora nikt się temu nie dziwił, bo każdy kojarzył moją osobę z rozwiązywaniem swoich problemów.

Bardzo mi też pomogło prowadzenie szkoleń i cotygodniowych grup dyskusyjnych – ludzie też zaczęli mnie postrzegać jako kogoś kto “ogarnia” (choć niekoniecznie musiałem ogarniać, po prostu tak byłem postrzegany). Uważam, że pokazywanie się ze swoją wiedzą “na zewnątrz” zespołu zawsze jest argumentem na plus, jeśli chodzi o awans.

Łukasz Kliś, Full Stack Engineer w Coya:

Czymś, co mogłoby przyspieszyć przejście na seniora byłaby większa wiara w swoje umiejętności. Długo zwlekałem z decyzją, jak się okazało, zupełnie niepotrzebnie. Co mogłoby spowolnić? Brak wsparcia menedżerów, którzy dbają o rozwój swoich ”podopiecznych”.

Paweł Dyląg, Senior Android Engineer w Revolut:

Zaangażowanie programisty jest zdecydowanie najlepszym środkiem do przyspieszenia awansu. W Estimote zadawałem dużo pytań, czytałem książki specjalistyczne, wgryzałem się w stacka Bluetoothowego, dbałem o niezawodność naszego kodu. Niesamowicie korzystne jest również przebywanie w otoczeniu ludzi bardziej doświadczonych. Miałem to szczęście, że pracowałem pod okiem byłych programistów takich firm jak m.in Google, Base (teraz już Zendesk), czy Ocado. 

Uważam, że to był moment, kiedy nauczyłem się więcej, niż w jakimkolwiek innym momencie mojej kariery zawodowej. Jeśli natomiast chodzi o spowolnienie awansu, to w dużej mierze przyczyniają się do tego gry polityczne wewnątrz firmy – czy awansować tego, który zasługuje, czy tego, który był u nas dłużej, czy może znowu lepiej wziąć tego nowego z rekrutacji. Lepiej unikać takiego środowiska i postawić na miejsca, w których taki proces jest bardzo przejrzysty.

Co moglibyście doradzić osobom, które długo pracują na stanowisku mida – powinni zmienić pracę?

Filip Rachwalak, Senior Systems Engineer w F-Secure:

Przede wszystkim powinni spytać się szczerze osoby decyzyjnej (LM’a) czego brakuje do przejścia na poziom seniora (o ile nie jest to już jasne) – każdy powinien wiedzieć, co według tej osoby (LM’a) oznacza “bycie seniorem” i do tego dążyć. Warto wyjaśniać wszelkie nieprecyzyjne wskazówki np. “posiadanie skilla w programowaniu” nie jest dobrym przykładem wymagań do wskoczenia na wyższy poziom.

Łukasz Kliś, Full Stack Engineer w Coya:

W obecnych czasach podejście do tego, ile się przepracowuje w jednej firmie jest zupełnie inne niż dla pokolenia naszych rodziców, czy też dziadków. Zmiana pracy to według mnie ostateczność. Zanim podejmuję tak ”drastyczny” krok, staram się zwrócić uwagę przełożonym na problem braku perspektyw na dalszy rozwój. W przypadku, gdy mid zaczyna odczuwać, że widzi tzw. ”sufit”, warto porozmawiać ze swoim Team Leaderem. Oczywiście w idealnym świecie menedżerowie sami dbają o to, aby pracownik miał ciągłe możliwości rozwoju, jednak zdarza się dość często, że się o to w organizacjach nie dba w wystarczającym stopniu.

Jeżeli wcześniej wymieniona interakcja z przełożonym nie poprawi sytuacji lub stwierdzą, że nie mogą nic innego zaoferować, to oczywiście zmiana pracy wchodzi w grę. Warto wtenczas zwrócić uwagę przy następnej rekrutacji na to, jak firma podchodzi do rozwoju pracowników i odrzucać organizacje, które tego nie robią. Ponadto dobrze by było dbać o to, aby nasze CV nie wyglądało jak CV pszczoły, która ”skacze z kwiatka na kwiatek” – może to budzić ewentualne wątpliwości, co do naszej kandydatury w procesie rekrutacji, ale oczywiście nie jest regułą.

Paweł Dyląg, Senior Android Engineer w Revolut:

Po pierwsze, upewnij się, że faktycznie masz na tyle umiejętności, żeby zostać seniorem. Nie wpadaj w maksimum lokalne swojej firmy – zbadaj jakich umiejętności oczekują w innych organizacjach. Świetnym pomysłem jest podchodzenie do procesów rekrutacji (nawet tylko “dla sportu”), dzięki czemu dowiesz się jakie są oczekiwania na rynku. Od dłuższego czasu zajmuję się w Revolucie przeprowadzaniem rozmów technicznych. Zauważyłem, że często kandydaci tytułują się seniorami (a nawet i czasem Team Leadami), choć w naszej firmie ich umiejętności były często oceniane jedynie na mida, a czasami nawet na juniora. Wydaje mi się, że teraz już widzisz jak ważne jest znalezienie maksimum globalnego na rynku pracy. 

Po drugie, miej odwagę zaznaczyć swoje oczekiwania. Daj znać “tym wyżej”, że jesteś gotów na awans i pokaż jak bardzo Ci zależy. Niestety rzadkością jest, żeby ktoś z własnej woli docenił pracownika za jego zasługi i umiejętności, dlatego musisz pomóc szczęściu i zawalczyć o swoje – niczego nie możesz stracić, a wiele możesz zyskać.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zobacz drogę Jakuba Pawelca do stanowiska senior developera (w wieku 19 lat).

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
pytania od juniora
Od Juniora do Seniora. Odpowiadamy na pytania społeczności cz.2