Jump to content
php.lv forumi

Senior PHP programmētājs


werd

Recommended Posts

Esmu Jānis - uzņēmuma Arkbauer Group tehniskais vadītājs.

Šobrīd esam senior PHP programmētāja meklējumos.
 
Ko mēs piedāvājam Tev:
  • Labu atalgojumu (atkarībā no prasmēm un zināšanām):
    • 1700 - 2300 EUR uz rokas (neto) pēc visu nodokļu nomaksas
  • Interesantus projektus:
    • Portāla Visidarbi.lv pārbūve pēc SOA principiem, izmantojot PHP7, Symfony3, Elasticsearch un arī Python
    • Travel-Desk.de ceļojumu rezervācijas sistēmas pilnveidošana un pārbūve
    • Viesnīcu pārvaldības sistēmas "3RPMS" izstrāde un attīstība Vācijas tirgum
    • u.c.
  • Darbu komandā ar pieredzējušu sistēmarhitektu
  • Izaugsmes iespējas (vadīt komandu, kļūt par sistēmarhitektu, tehnisko projektu vadītāju)
  • Atbalstu start-up idejām
  • Fleksiblu darba laiku (saprāta robežās)
  • Labu humoru komandā :)
 
Ko mēs sagaidām no Tevis:
  • Labu izpratni un pieredzi ar OOP
  • Labas zināšanas un izpratni par vismaz vienu augsta līmeņa PHP ietvaru, piemēram, Symfony vai Laravel
  • Vēlmi palīdzēt mūsu klientiem un augt kopā ar komandu
  • Atbildības sajūtu par savu darbu
  • Labas angļu valodas zināšanas
  • Pozitīvu domāšanu
 
Ja esi ieinteresēts, tad, lūdzu, izpildi testa uzdevumu un atsūti savu CV uz [email protected]
Informāciju par vakanci var atrast šeit.

arkbauer-ninja-2.png

Link to comment
Share on other sites

Visiem tiem interfeisiem būs tikai viena implementācija. Tā ir nepareiza interfeisu izmantošana pēc būtības.

Zinu, ka testa uzdevums, bet labāk tad būtu vnk ļāvuši developerim pašam izdomāt, ko kā rakstīt. Noteikumi taču ir uzrakstīti.

Edited by jurchiks
Link to comment
Share on other sites

10 hours ago, jurchiks said:

Visiem tiem interfeisiem būs tikai viena implementācija. Tā ir nepareiza interfeisu izmantošana pēc būtības.

Zinu, ka testa uzdevums, bet labāk tad būtu vnk ļāvuši developerim pašam izdomāt, ko kā rakstīt. Noteikumi taču ir uzrakstīti.

Sveiks!

Reālā sistēmā - piekrītu. Šajā gadījumā runa, protams, ir par testa uzdevumu, kurā dotie interfeisi ir neliels ieskats uzdevuma būtībā. Ar prieku gaidīšu Tavu risinājumu!

Link to comment
Share on other sites

10 minutes ago, codehighriga said:

Uzdevums tomēr liekas nedaudz izplūdis, nav skaidrs vai gribat implementāciju symfony, laravel, vai kaut kādā vannila php. Kāda ir DB, sesijas, kāds testu freimworks. Šobrīd liekas mazliet nekonkrēti kādu veidolu tam ir jāiegūst.

Jēziņ, tač nevajag iebraukt tādās detaļās.

Es pats testēju cilvēkus ar ļoti vienkāršu uzdevums - novilkt CSV (paliels fails, 300 megas), izveidot klasi, kas reprezentē ierakstu, izveidot interfeisu, ja mainās datu avots kādreiz, veikt vienkāršu ierakstu kešošanu. Uzdevuma izpildes laiks vidēji 1-3h cilvēkiem aiziet, bet realizācijas krasi atšķirās - cits brutāli saraksta visu vienā failā, cits saskalda visu smalku un vēl pamanās uzrakstīt phpdoc komentārus un ievilkt composeri, lai nebūtu jāraksta autoloadings.

Lieki pie****ies detaļām, jo pietiek redzēt cilvēka koda rokrastu, lai saprastu, vai rubī kko, vai tomēr švaks juniors. Tāpēc teiktu, ka uzdevums ir perfekts, jo atstāj vietu izpausties pašam koderim, neieliek striktā vidē.

Link to comment
Share on other sites

28 minutes ago, codehighriga said:

Uzdevums tomēr liekas nedaudz izplūdis, nav skaidrs vai gribat implementāciju symfony, laravel, vai kaut kādā vannila php. Kāda ir DB, sesijas, kāds testu freimworks. Šobrīd liekas mazliet nekonkrēti kādu veidolu tam ir jāiegūst.

Jāpiekrīt @briedis teiktajam. Šis uzdevums tika veidots ar domu, ka to varēs izpildīt gan iesācējs (junior), gan pieredzējis (senior) programmētājs. Nekas konkrēts netiek "uzspiests", jo mēŗkis ir iegūt priekšstatu par kandidāta individuālajām spējām (spriestspēju, loģisko domāšanu, tehnisko izdpildījumu utt.).
Ja ir vēlme izmantot kādu no ietvariem - droši. Ja šķiet, ka ir nepieciešama datu bāze vai sesijas - droši.

Link to comment
Share on other sites

32 minutes ago, briedis said:

Jēziņ, tač nevajag iebraukt tādās detaļās.

Es pats testēju cilvēkus ar ļoti vienkāršu uzdevums - novilkt CSV (paliels fails, 300 megas), izveidot klasi, kas reprezentē ierakstu, izveidot interfeisu, ja mainās datu avots kādreiz, veikt vienkāršu ierakstu kešošanu. Uzdevuma izpildes laiks vidēji 1-3h cilvēkiem aiziet, bet realizācijas krasi atšķirās - cits brutāli saraksta visu vienā failā, cits saskalda visu smalku un vēl pamanās uzrakstīt phpdoc komentārus un ievilkt composeri, lai nebūtu jāraksta autoloadings.

Lieki pie****ies detaļām, jo pietiek redzēt cilvēka koda rokrastu, lai saprastu, vai rubī kko, vai tomēr švaks juniors. Tāpēc teiktu, ka uzdevums ir perfekts, jo atstāj vietu izpausties pašam koderim, neieliek striktā vidē.

Ja neņem vērā vizuālu koda apskati, kā tu nosaki, vai uzdevums ir izpildīts? Vai ir kāda konsoles komanda kuru tu palaid un tai jāizvada iepriekš zināms rezultāts?

Man arī ir tas gods patestēt potenciālos darbiniekus, bet tas, vai darba uzdevums ir izpildīts, tiek primāri noteikts ar jau iepriekš manis uzrakstītiem phpunit testiem. Tādējādi kandidātam ir uzreiz skaidrs  kādu klasi es sagaidu un kādu rezultātu sagaidu no tās publiskajām metodēm. Kandidāta ziņā paliek tas, ko dara privātās metodes un kaut kādas apakšklases kuras viņš vai nu veido vai nu neveido (kā jau tu teici - saliek visu vienā failā, vai tomēr saskalda).

Tātad primāri es (un pats kandidāts) palaižam testus un noskaidrojam vai uzdevums ir izpildīts. Atkrīt daudzas neskaidrības. Bet kā tu nosaki šo posmu? Tāds posms vispār ir?

Vai tikai ver vaļā phpstormu un skaties kodu vizuāli?

Kaut kādā līmenī līdzīgu struktūras forsēšanu nosaka @werd piedāvātie interfeisi, bet nu jā, tas ir daudz brīvāk nekā mans variants.

Man gribas tā, ka kandidāts atsūta linku uz savu github repozitoriju, es noklonēju un sekundes laikā uzzinu vai uzdevums ir izpildīts. Jums tā nav?

Edited by codehighriga
Link to comment
Share on other sites

13 hours ago, jurchiks said:

Visiem tiem interfeisiem būs tikai viena implementācija. Tā ir nepareiza interfeisu izmantošana pēc būtības.

Zinu, ka testa uzdevums, bet labāk tad būtu vnk ļāvuši developerim pašam izdomāt, ko kā rakstīt. Noteikumi taču ir uzrakstīti.

Kāpēc tad tikai viena? Piemēram grozs, nevar būt session-based un db-persisted? Stock nevar būt vairāki backendi, piemēram, integrācijas? Nevar būt dažādas produktu instances, kas implementē vienu vai vairākus interfeisus?

Link to comment
Share on other sites

14 minutes ago, codehighriga said:

Ja neņem vērā vizuālu koda apskati, kā tu nosaki, vai uzdevums ir izpildīts? Vai ir kāda konsoles komanda kuru tu palaid un tai jāizvada iepriekš zināms rezultāts?

Man arī ir tas gods patestēt potenciālos darbiniekus, bet tas, vai darba uzdevums ir izpildīts, tiek primāri noteikts ar jau iepriekš manis uzrakstītiem phpunit testiem. Tādējādi kandidātam ir uzreiz skaidrs  kādu klasi es sagaidu un kādu rezultātu sagaidu no tās publiskajām metodēm. Kandidāta ziņā paliek tas, ko dara privātās metodes un kaut kādas apakšklases kuras viņš vai nu veido vai nu neveido (kā jau tu teici - saliek visu vienā failā, vai tomēr saskalda).

Tātad primāri es (un pats kandidāts) palaižam testus un noskaidrojam vai uzdevums ir izpildīts. Atkrīt daudzas neskaidrības. Bet kā tu nosaki šo posmu? Tāds posms vispār ir?

Vai tikai ver vaļā phpstormu un skaties kodu vizuāli?

Kaut kādā līmenī līdzīgu struktūras forsēšanu nosaka @werd piedāvātie interfeisi, bet nu jā, tas ir daudz brīvāk nekā mans variants.

Šī uzdevuma struktūra nav tāda, lai pateiktu vai uzdevums ir izpildīts vai nē. Būtu muļķīgi uzdevumā nodefinēt jau gatavus vienībtestus un tai pat laikā prasīt izmantot TDD pieeju :) 
Arkbauer izpratnē senior programmētājs ir cilvēks, kas pats domā nevis vienkārši izpilda katru punktu no uzdevuma apraksta (monkey see - monkey do).

14 minutes ago, codehighriga said:

Man gribas tā, ka kandidāts atsūta linku uz savu github repozitoriju, es noklonēju un sekundes laikā uzzinu vai uzdevums ir izpildīts. Jums tā nav?

Nē, mums tā nav. Es uzskatu, ka sekundes laikā nav iespējams objektīvi novērtēt programmētāju (it īpaši senior līmeņa). Mēs cilvēkus atlasām individuāli - viena mēraukla visiem neder.

Link to comment
Share on other sites

@werd, vai ceļš, kā tu testēsi saņemot uzdevuma risinājumu ir apmēram šāds?

1. Tev atsūta linku uz github repo

2. Vizuāli novērtē repo, vai ir pievienota readme informācija, instrukcijas, kas tāds?

2. Noklonē repo

3. Palaid paša kandidāta rakstītos testus?

4. Atver koda editorā, novērtē failu struktūru, klašu, interfeisu struktūru, autoloadingu, failu garumu, utt.

5. Novērtē formatējumu, vai ir PSR, vai ir konsistents namings, mainīgo nosaukumi, utt

6. Ja redzētais apmierina, sazinies ar kandidātu? Padiskutējat par vietām kur tev radās jautājumi vai ieteikumi?

Kaut ko izlaidu, kaut kur kļūdos?

Man šajā sistēmā nedaudz nepatīk tas, ka ir ļoti maz iespēju kodu reāli palaist, eksekjūtot. Varbūt no koda vizuālas apskates uzreiz nepamanīsi kādu performance issue vai ko tādu.

Edited by codehighriga
Link to comment
Share on other sites

3 minutes ago, codehighriga said:

@werd, vai ceļš, kā tu testēsi saņemot uzdevuma risinājumu ir apmēram šāds?

1. Tev atsūta linku uz github repo

2. Vizuāli novērtē repo, vai ir pievienota readme informācija, instrukcijas, kas tāds?

2. Noklonē repo

3. Palaid paša kandidāta rakstītos testus?

4. Atver koda editorā, novērtē failu struktūru, klašu, interfeisu struktūru, autoloadingu, failu garumu, utt.

5. Novērtē formatējumu, vai ir PSR, vai ir konsistents namings, mainīgo nosaukumi, utt

6. Ja redzētais apmierina, sazinies ar kandidātu? Padiskutējat par vietām kur tev radās jautājumi vai ieteikumi?

Kaut ko izlaidu, kaut kur kļūdos?

Kaut kas uz to pusi.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...