sobota, 8 kwietnia 2017

oferty pracy - jak czytać, żeby "nie wtopić"

Jako, że często czytam i czasami sam piszę ogłoszenia związane ze stanowiskami pracy, postanowiłem podzielić się z Wami przemyśleniami odnośnie ogłoszeń o pracę - jak czytać i co się kryje za różnymi sformułowaniami.

Wymagania
Często wymieszane. Mało istotne na początku, istotne w środku lub na końcu. Np. punkt z wykształceniem na pierwszym miejscu, tak jakby było najistotniejsze, a nie kompetencje czy doświadczenie.

Również wymienianie wszystkich technologii w projekcie niekoniecznie jest najlepszym pomysłem. Warto skupić się tylko na tych kluczowych, a nie pobocznych bibliotekach.

Często jest to również błąd rekruterów w sytuacji, gdy projekt wymaga znajomości kilku technologii (np. kolejność wymagań jest taka: MVC, WCF, T-SQL). W efekcie możemy dostać CV osób znających WCF, nie mających pojęcia o MVC i SQL albo administratorów baz danych.

Co oznacza dużo technologii w ogłoszeniu?
Może oznaczać kilka różnych rzeczy - najczęściej, że projekt to legacy code, długo rozwijany i trudny w utrzymaniu. Lepiej trzymać się z daleka. Rzadziej, że faktycznie projekt jest złożony i jest kilka teamów - przydział może zależeć od kompetencji. Czasami również oznacza, że ktoś wypisał wszystko co się dało lub co przekazał manager, niekoniecznie poświęcając chwile na przemyślenie.

Mieszanie terminologii
Bardzo często pomieszane są terminy techniczne np Knowledge of Web technologies: HTML, CSS, JavaScript, HTTP. HTTP nie jest technologią tylko protokołem.

Kolejną wtopą (rekruterów) jest brak znajomości terminologii - dukają nazwy, powtarzają to co było wspomniane wcześniej itd.

Pytania z różnych technologii
Jeśli na rozmowie trafi się duży rozstrzał technologiczny lub wypisano w opisie projektu mase różnych rzeczy to warto zadać pytanie - "czy faktycznie korzystacie z tego wszystkiego o czym rozmawialiśmy/jest w ogłoszeniu?"

Kontrola wersji (Git, TFS, SVN, ...) i code review
Warto o to zapytać. Dużo mówi o "kulturze" firmy i tym jak się będzie pracowało. Np. brak dobrej (jakiejkolwiek nawet w niektóych przypadkach!) strategii branchowania świadczy o absolutnym braku gotowości do rozwoju projektu w trybie feature'ów. Bardziej przypominam development w szopie/garażu niż profesjonalny rozwój systemów.

Skróty
  • Często w ofertach pojawia się masa mniej lub bardziej zrozumiałych skrótów. Jeśli ktoś z Was trafi na pojęcie SOX - niech ucieka. Procesy SOX'owe dotyczą spółek notowanych na giełdzie amerykańskiej i są związane z aplikacjami finansowymi. Strasznie to utrudnia życie programistów (i proces release'a), którzy robią również wsparcie produkcji.
  • Kolejnym istotnym pojęciem jest ITIL. Krótko mówiąc chodzi o zarządzanie przez procesy (czyli wchodzimy "w buty" dużych korporacji). Im większe korpo tym więcej niejasnych, zagmatwanych procesów, gdzie nie ma czynnika ludzkiego, a tylko system. Nie da się do kogoś "uderzyć", żeby rozwiązał problem tylko trzeba grzecznie czekać. Najbardziej strict implementacje widziałem w IBMie.

Podchwytliwe stwierdzenia
  • Zdolność do pracy na zmieniających się wymaganiach i priorytetach. To jest chyba jedna z gorszych rzeczy jakie może człowieka w IT spotkać. Oznacza to, że jest mało ludzi do wykonywania zadań i do tego management nie wie czego chce albo często zmienia zdanie. Albo jeszcze gorzej - jest kilka osób, które wrzucają zadania i każdy uważa, że jego jest ważniejsze i do tego na wczoraj.
  • Dobre umiejętności organizacyjne.Będzie trzeba samemu ogarnąć chaos. No może z pomocą jakiegoś narzędzia, jeśli dobrze pójdzie. Ale i tak nie uchroni to Cię przed różnymi wrzutkami i rozjazdami planów.

czwartek, 9 marca 2017

OWIN - Facebook wymaga wpisania hasła przy każdorazowym logowaniu do aplikacji

Ostatnio walczyłem z dość nietypowym - Facebook wymagał przy każdorazowym logowaniu z aplikacji podania hasła dla użytkownika. Byłem pewien, że to kwestia OWINa i braku jakichś ustawień, złej flagi, brakującego parametru lub czegoś zbliżonego. Okazało się, że w ustawieniach aplikacji (na FB), po wejściu w aplikację (z menu po prawej pod kategorią Products -> Facebook login) należy odznaczyć opcję "Force Web OAuth Reauthentication".

wtorek, 7 marca 2017

Visual Studio 2017 - dostępne!

VS 2017 jest już oficjalnie dostępne w "pełnej" wersji (Community, Professional, Enterprise). Kto pobierze do 14go marca 2017 dostanie gratis 60-dniowy dostęp do Xamarin University.

IDE można pobrać stąd.

niedziela, 5 marca 2017

Narzędzia pod Windowsa (część 1) - cmder

Jednym z ostatnich "odkryć" - cmder. Aplikacja bliska shell'owi linuxowemu z rozszerzeniami. Dwa najważniejsze z punktu widzenia mojej pracy: historia oraz pokazywanie nazwy branch'a z git'a przy nazwie folderu.

czwartek, 2 marca 2017

Rekrutacja programistów

Dzisiaj usłyszałem w HRach pytanie - jak to jest, że przepuszczamy tylko 10%? Tylko tylu się nadaje. Przeprowadziłem ponad 100 rozmów rekrutacyjnych i nie tylko w tej firmie mamy taką średnią. Niestety tylko tyle osób "trafia" w profil i kompetencje. Często jest pięknie na papierze, a w rzeczywistości żal i rozpacz.

Podejście rekruterów pokazuje różnicę między podejściem firm rekrutacyjnych (ludzi tam zatrudnionych i presją na nich na zatrudnianie i przynoszenie kasy) a inżynierami, którzy chcą pracować z kompetentnymi ludźmi.

Firma rekrutacyjna dostaje kasę w kilku przypadkach. Dwa najczęstsze to: za znalezienie i zatrudnienie i czasami później również za pośrednictwo. Z tego punktu widzenia ciężko się dziwić presji, z drugiej strony "opychanie" ludzi, którzy niewiele potrafią lub w ogóle ich kompetencje nie odpowiadają stanowisku (np. .NET + WPF do web'a czy .NET + WebAPI do WPF'a). Natomiast jest to strata czasu zarówno dla kandydatów jak i ludzi weryfikujących ich umiejętności.

Z tego miejsca apel do rekruterów: zrozumcie, że z konia nie zrobicie chomika, a z chomika konia pociągowego. Szanujcie bardziej czas każdego zaangażowanego w proces.

sobota, 7 stycznia 2017

Stack overflow - motywacja programistów

Nowe badania programistów za 2016 odnośnie motywacji w rekrutacji pracowników. Najciekawsze wnioski wg mnie

  1. JavaScript jest bardzo mocny
  2. Zapotrzebowanie na front-end'owców jest bardzo wysokie, znacząco przewyższa back-end
  3. Odnotowano spadek Objective-C na rzecz Swift'a
  4. "Rynek" hinduski programistów w Indiach znacznie różni się od "zachodniego"
  5. Polska, Rosja, Ukraina i Indie są najlepszymi aktualnie miejscami do zatrudniania programistów (potencjał wzrostu)

Źródło znajduję się tutaj.

niedziela, 18 grudnia 2016

OWIN - problemy (MVC)

Integrowałem ostatnio kilka aplikacji z social media korzystając z OWINa napotykając się na kilka specyficznych problemów, których rozwiązanie zajęło mi chwile.

Problem nr 1 : Google przekierowuje do URL_APPKI/sigin-google mimo, że nie przekierowywujemy do takiego kontrolera
Niestety tak działa provider dla Google'a i trzeba dodać taki redirectUrl.

Problem nr 2 : Facebook - brak autoryzacji po przekierowaniu mimo, że otrzymujemy autoryzację

niedziela, 11 grudnia 2016

IIS nagłówki - dlaczego warto usuwać

Dawno temu zapisałem sobie, że warto o tym napisać posta - i do dzisiaj nie znalazłem czasu, żeby zacząć temat.

Domyślnie, dla IIS, dostajemy następujące informacje:
  1. wersja serwera (np. Server: Microsoft-IIS/10.0)
  2. wersja .NET (np. X-AspNet-Version:4.0.30319)
  3. wersja MVC (np. X-AspNetMvc-Version:5.2)
  4. informację o tym, że mamy do czynienia z ASP.NET (X-Powered-By:ASP.NET)

Usunięcie tych informacji jest ważne ze względu na automatyczne skanery. W razie 0-day'ów serwer jest nijako "automatycznie" wskazany jako cel ataków - atakujący doskonale wie, bez głębokiej analizy, z jakim serwerem i oprogramowaniem ma/może mieć do czynienia i może prowadzić dalszą analizę pod kątem błędów w infrastrukturze. Zatem nawet, jeśli aplikacja jest bezpieczna pod kątem implementacji, to zagrożona może być infrastruktura.

wtorek, 20 września 2016

DevDay 2016

Udało mi się odwiedzić DevDay 2016. Impreza udana, dużo ciekawych wykładów, fajny afterek :-)

Nie będę opisywał każdego wykładu, wrzucę link jak tylko pojawiają się nagrania z wykładów (zawsze udostępniane na youtube).

piątek, 2 września 2016

mockowanie extension methods w C#

Trafiłem dzisiaj na konieczność mockowania extension method w C#. Dość szybko okazało się, że Moq czy Nsubstitute nie dadzą sobie rady z tym zadaniem. Szybkie szukanie dało 3 wyniki:
  1. Smocks (Open Source)
  2. Pex & Moles (Microsoft freeware)
  3. TypeMock Isolator (płatne)

Porównując powyższe rozwiązania, zacznę od płatnego TypeMock Isolator - jest bezpłatna wersja, ale nie można jej używać z legacy code, w związku z powyższym od razu wypadło z zakresu moich zainteresowań. Pozostał Pex & Moles oraz Smocks. Pierwsze rozwiązanie ze wspomnianych jest dostępne wyłącznie jako paczka do instalacji co przy 10+ developerach, 5 maszynach budujących byłoby uciążliwe w utrzymaniu. W związku z tym wybór padł na Smocks'a, który jest dystrybuowany jako paczka NuGet'owa. Po przeczytaniu krótkiego tutoriala ze strony, bez problemu zaimplementowałem potrzebne mocki.

HackerRank - ranking programistów

Ranking programistów wg krajów http://blog.hackerrank.com/which-country-would-win-in-the-programming-olympics/. Go Poland!

sobota, 20 sierpnia 2016

poniedziałek, 8 sierpnia 2016

.NET 4.6.2

Microsoft ogłosił dzisiaj wydanie .NET 4.6.2. O szczegółach możecie przeczytać pod tym linkiem: https://blogs.msdn.microsoft.com/dotnet/2016/08/02/announcing-net-framework-4-6-2/.

Najważniejszą zmianą jest obsługa ścieżek do plików dłuższych niż 260 znaków.

czwartek, 4 sierpnia 2016

"Smoleńsk" zwiastun

Obejrzałem zwiastun "cudownego" "dzieła" zwanego "Smoleńsk". Ręce opadają od jakości wykonania i teorii spiskowych. W zasadzie nie bardzo jest co komentować w tej pseudo twórczości.

niedziela, 17 lipca 2016

Android Lollipop - Lenovo S8-50L problemy po ostatniej aktualizacji

Swego czasu w tym artykule opisałem jak wyczyścić śmieci po upgradzie Adroida do Lollipopa na Lenovo S8-50L.

Dzisiaj na nowo dokonałem aktualizacji oprogramowania i chciałem dokonać czyszczenia cache'a. Mocno się zdziwiłem kiedy po wejściu w tryb serwisowy nie zobaczyłem znanego menu. Nowe kroki jakie należy wykonać po wejściu w menu serwisowe:

1) wybrać opcję "Recovery mode" (przyciskiem głośności)
2) nacisnąć przycisk power
3) tablet się zrestaruje i wejdzie w znane nam menu
4) wykonać kroki wg poprzedniej instrukcji

czwartek, 23 czerwca 2016

Xiaomi Redmi Pro 3 - opinia użytkownika

Swojego Redmi zakupiłem od polskiego dystrybutora (). Na realizację zamówienia (od zamówienia do odbioru z paczkomatu) minął równo tydzień.

O samym telefonie - zawiera zainstalowanego Androida 5.x z Miui w wersji polskiej. Nie mam zastrzeżeń co do spolszczenia. Nie ma masy softu zainstalowanego, jest tylko kilka-kilkanaście aplikacji (co należy zaliczyć na plus). Po zainstalowaniu ponad 40 dodatkowych appek, telefon działa płynnie. Rzadko mu się zdarza przyciąć.

Co do aparatu to ciężko mi ocenić jego jakość. Zrobiłem kilka fotek, wydają się być OK, ale bez szału.

Bateria trzyma ok. 2 dni biorąc pod uwagę dzwonienie, smsy, przeglądanie internetu, nawigacje i Endomondo.

Zasadniczo nie miałem problemu z dostawą (ani ja ani 2 moich kolegów), jednakże jeden miał pecha i zrobił przelew z numerem jakimś, który mu się na stronie wygenerował zamiast tego, który został przesłany na maila. Próba kontaktów przez email czy telefon (wielokrotna) zakończyła się niepowodzeniem. Dopiero po napisaniu na oficjalnym forum użytkowników, że zawiadomi o tym Policję, po 30 minutach sprawa była rozwiązana. Takie sytuacje mocno rzutują na reputację sprzedawców i ciężko mi odpowiedzieć, dlaczego komuś na tym nie zależy.

Reasumując: jak na cenę, bardzo dobry telefon.

środa, 8 czerwca 2016

Nowy security feature w MS Server 2016

Microsoft zaprezentował sposób na zabezpieczenie przed złośliwym działaniem administratora. Wygląda to dość ciekawie.

Dlaczego warto zwrócić uwagę na tego typu feature? Od dawna wiadomo, że administrator może wszystko. Ale co w przypadku, gdy ktoś spodziewa się zwolnienia i chce zasiać szkody? zniszczenia mogą być olbrzymie i doprowadzić do zniszczenia nawet sporej spółki.

Szczegóły: https://blogs.technet.microsoft.com/windowsserver/2016/05/10/a-closer-look-at-shielded-vms-in-windows-server-2016/

sobota, 21 maja 2016

cechy języka obiektowego - pytania z rozmowy rekrutacyjnej

Wczoraj dostałem takie pytanie na rozmowie rekrutacyjnej: jakie są cechy języka obiektowego? Niby oczywiste, ale oczekiwane odpowiedzi wcale nie były aż tak oczywiste. Oczekiwane odpowiedzi: klasy, polimorfizm, generyki (i jeszcze jedno, którego zapomniałem).

Kolejnym zaskakującym pytaniem było: jakie są cechy środowiska uruchomieniowego (jedna musi być, druga dobrze by było jakby była). Prawidłową odpowiedzią wg pytającego było (w odpowiedniej kolejności) Garbage Collection i wyjątki.

środa, 11 maja 2016

GitHub nieograniczona liczba prywatnych repo

GitHub ogłosił dzisiaj możliwość tworzenia nieograniczonej ilości prywatnych repozytoriów. W przypadku osobistego dostępu, koszt dostępu to 7$/miesiąc.

Źródło