Rekrutacja - pytania do kandydata

3

Rozmowa z miesiąc temu, giełdy, brokery, dużo, szybko:

  1. Wspolbieznosc, modele wspolbieznosci, lock / wait free struktury danych, memory barries (semantyka UNSAFE.putOrdered(..), MESI), sporo o lockach, thread locale, agent / aktor model, funkcyjne programowanie
  2. JIT Hotspot - wymień optymalizacje i warunki potrzebne do zajścia
  3. GCs HotSpot
  4. Heap, Offheap, native off-heap, jak sie tam dostac z poziomu javy, w jakich sytuacjach warto / trzeba
  5. kernel bypass io, rdma, mmu - od strony praktycznej, co mozna zrobic i kiedy warto przy tym grzebac
  6. safepointy i sampling dla low-latency mierzenia wydajnosci
  7. Jak zidentyfikowac waskie gardlo aplikacji oraz jak naprawic - tutaj glownie rozmowa o narzedziach typu iostat, vmstat, jmeter, jitwatch, hdrhistogram, JFR (mialem podac jakies ktore uzywac asyncgetcalltrace), jmapy i cos tam jeszcze pewnie.
  8. 10kk problem

Blizej kodu to: RFP, Akka i w sumie tyle, malo o biblioteki pytali

W razie watpliwosci co do wyboru kandydata, test na platformie devskiller

0

Co byście powiedzieli w takiej sytuacji:
Mamy request: jeden mikroserwis woła kolejne, mamy typowy chain. Coś po drodze się wywala. Jak najlepiej dostarczyć informacje co się wywaliło i dlaczego. Jak to najszybciej sprawdzić. Co można zrobić żeby temu zapobiec.

0

ktoś może coś jeszcze, jakieś pytania? :-)

3

@wsxx: ja ostatnio miałem kilka rozmów na seniora php dev i miałem takie pytania:

  • Co to interfejs i klasa abstrakcyjna, jaka między nimi jest różnica
  • Jaka jest różnica między private, a protected
  • Co to jest REST i na czym się opiera
  • Co to jest Entity Manager
  • Jakie znam usługi do kolejkowania i po co się je stosuje, jaki rozwiązują problem
  • Jakie są typy wzorców projektowych
  • Jakie są wzorce projektowe, wymień te które znasz i opisz jaki problem rozwiązują
  • W jaki sposób byś uniknął duplikowania kodu do obsługi wyjątków w Symfony
  • Jakie znasz polecenia GIT, jaka jest różnica między merge, a rebase
  • W jaki sposób można wykonać niestandardową operację na bazie danych
  • Co to jest SOLID, KISS, DRY i co oznaczają
  • W jakim celu stosuje się TDD i czy warto
  • Jakie bundle Symfony najczęściej stosujesz
1

TL;DR
Nie zapominajmy o pytaniach typu "ile jabłek zmieści Pan do tej torby" (różne mogą być cele stawiania tych pytań).
Tu przykład na rozmowę Pythona:
https://www.dailymotion.com/video/x2t2rqh

2

Jakie pytania? Nie ma tak głupiego pytania, którego nawet sobie nie wyobrażasz, a jednak możesz zostać zapytany.

BTW, zadawanie pytań z pozoru bez sensu ma sprawdzić, jak sobie ktoś radzi w nietypowej sytuacji, czy następny pytanie (a w racy problem) pogłębi stres i frustrację?

Ludzie techniczni będą drążyć i szukać kandydatów pod kryterium: jak sobie już kiedyś poradził z sytuacją A, B i C z którymi mieliśmy problem w naszej firmie.

Ludzie stawiający na umiejętności miękkie wiedzą, że będą też problemowe sytuację D, E, F więc nie ma sensy drążyć jak ktoś sobie radził w konkretnym przypadku A ale ważne jak w ogóle poradzi sobie z nietypowymi, nie znanymi jeszcze problemami D, E, F.

Na przykład: "Swojego zdania będę bronił jak niepodległości" - dwóch seniorów z takim podejściem w dwóch mających współpracować ze sobą zespołach to proszenie się o problemy.
Technicznie ktoś może wymiatać i mieć skopiowane do głowy pół StackOverflow ale nie-technicznie odpada.

0

może ktoś miał ostatnio rekrutacje jakieś i się podzieli pytaniami?
Preferowane technologie backendowe i devopsowe :)

1

Ostatnio, oprócz standardowych pytań o skalowalność czy GC w javie, miałem ciekawe pytanie - nie pamiętam dokładnie jak brzmiało, ale chodziło mniej więcej o coś takiego:

Mamy klasę

class Point {
   int x;
   int y;
}

Czy jest możliwe napisanie metody hashCode w taki sposób, 
żeby mieć pewność, że nie będzie kolizji (czyli że każdy unikalny obiekt dostanie unikatowy hash code)?
0

Może podzielicie się ostatnio otrzymanymi pytaniami od strony backendu?
Tylko prosiłbym o pytania typowo techniczne, a ew dyskusja w komentarzach pod danym postem

2

Porekrutowałem się ostatnio i mogę powiedzieć, że pomiędzy poszczególnymi rozmowami jest ... przepaść. Pytania na mida w javie:

  1. Co się stanie jak zaimplementujemy w klasie hashcode który zwraca za każdym razem tą samą wartość
  2. Pule wątków a rdzenie procesora
  3. Volatile i Synchronized
  4. Jak indeksy wpływają na responsywność zapytań bazodanowych
  5. Sesje a requesty
  6. Składnia endpointów Restowych
  7. TCP/UDP
    ...do tego code review, projektowanie klienta chata i problem algorytmiczny ( z liczeniem złożoności swojego rozwiązania).
    Druga rozmowa:
  8. SQL injection
  9. Kiedy byś użył singletona (w ogóle, he he)
3

Z tych, które ja zadaję - Java:

  1. Krótkie zadanie algorytmiczne, raczej proste (max 30 minut - a i to jest z dużym zapasem)
  2. Pytania o wielowątkowość - zazwyczaj pytam, w jaki sposób ktoś sobie z tym radzi(ł) - opcji jest sporo, jak ktoś zna np. systemy aktorskie, klasy Atomic oraz inne zabawki z util.concurrent to już jest dobrze.
  3. Livelock, deadlock, race condition - czym są, czym się różnią, jak je uzyskać?
  4. State, stateless, immutable - co to jest i czym się różni, wady/zalety.
  5. Dosyć standardowo - "co jeśli hashcode/equal będzie źle napisany?".
  6. Design - zazwyczaj podaję jakiś przykład problemu (mam ich kilka) i pytam, jak to zaprojektować z grubsza.
  7. Kafka - jakie są gwarancje? Jeśli trzeba to o transakcje.
  8. Spring - głównie pytam, w jaki sposób kandydat(ka) korzystał(a) z tego - np. czy konfiguracje przez @ Autowired itp.
  9. SQL/NoSQL - dużo zależy od bazy, ale jeśli jest jakiś SQL to wystarczy, żeby napisał JOINa i opowiedział jak działają indeksy.

Kolejność przypadkowa. Ogólnie staram się nie fiksować na pytania, które da się odhaczyć, ale czy ktoś rozumie co w ogóle mówi. Np. pytanie z pkt. 5 - jeśli ktoś faktycznie nie rozumie jak wygląda kontrakt hashcode/equals to bardzo szybko wywali się gdy spytam o prosty przykład typu "co jeśli equals będzie zwracało false?".

1 użytkowników online, w tym zalogowanych: 0, gości: 1