Featured post

C# ASP.NET Developer wanted (Azure)

Jsem srdcem vývojář a společnost HAVIT jsem založil v roce 1997, abych si naplnil svůj sen. Postavil jsem firmu, která ač byla vždy v zisku, nemá být továrnou na peníze, ale spíše prostředím pro naplňování životních potřeb všech členů týmu. Chci, aby nás to společně bavilo, aby každý nacházel ve své práci uspokojení, aby každý dostával příležitosti uplatnit svůj potenciál a abychom se vše snažili dělat lépe, než musíme. Takovou vidím cestu pro dlouhodobě udržitelný růst.

V HAVITu vyvíjíme zakázkové aplikace na technologiích Microsoft (C#, MS SQL, Azure), obvykle s webovým uživatelským rozhraním (ASP.NET). Naše práce nás baví a záleží nám na tom. Stavíme na technologické excelenci bez kompromisů a příjemných pracovních podmínkách pro sebe i zákazníky. Naši práci klienti oceňují – jsme přímými dodavateli a pracujeme na zajímavých projektech pro nadnárodní i lokální zákazníky. Několika dalším vývojářským týmům pomáháme jako mentoři.

Do našeho týmu hledáme posilu. Možná jsi to právě Ty, kdo u nás najde naplnění svých pracovních snů?

Robert Haken, zakladatel


Právě teď potřebujeme vývojáře. Uplatnění u nás najde jak zkušený senior, tak nadaný začátečník. Seniorům dokážeme nabídnout samostatné vedení projektů a podpůrný tým, začátečníkům či studentům naopak odborný růst v týmu, který jim pomůže zkušenosti získat. Zajímají nás jak univerzálové, tak specialisté na frontend, backend, mobily atp.

Důležitá je pro nás osobnost uchazeče a jeho intelektuální potenciál, resp. vývojářské vlohy. Pokud ucítíme, že jsi ten pravý/ta pravá, s kým nás to bude bavit a s kým chceme své vlastní potřeby naplňovat po mnoho dalších let, vše potřebné tě naučíme.

Co nabízíme?

  • přátelské prostředí, kde se snažíme, aby práce pro nás byla zábavou – aktuálně vyvíjíme uspořádáni ve třech týmech po cca 5 vývojářích a snažíme se o agilní pojetí, mimochodem nejsme příznivci velkých open-office, každý tým má svůj vlastní oddělený prostor,
  • svobodu v práci, čili relativně volnou pracovní dobu, kde jsou přesčasy naprostou výjimkou v případech nouze, po dohodě je možná i částečná práce na dálku,
  • individuální přístup k potřebám jednotlivých pracovníků – každému se snažíme vyjít vstříc a umožnit takové prostředí a uspořádání, aby mohl plně uplatnit svůj potenciál a cítil se užitečným článkem soukolí,
  • práci na zajímavých projektech, pro zákazníky, které si můžeme vybírat (neděláme pro státní sektor, vyhýbáme se prezentačním webům či projektům, kde nemůžeme uplatnit své konkurenční výhody – technologické pokročilosti),
  • příjemnou vývojářskou práci na vícevrstvých aplikacích, s agilním přístupem, s nejnovějším vybavením (VS2015, SQL2016, NET4.5+, SSD, 2xLCD, desktop/ntb, …), s využitím našich knihoven a generátorů kódu, kdy se budete moci věnovat opravdu tvorbě aplikace nad vygenerovaným objektovým modelem, a nebudete trávit dny datlováním stále stejných věcí dokola (přístupů do DB, atp. atp.),
  • práci s platformou Microsoft Azure, kam primárně naše aplikace směřujeme,
  • odborný rozvoj v kolektivu MVP, MCT, MCSD, MCPD, MCP kolegů ;-)
  • každý rok společný týden na námořní plachetnici, na horách, nebo obdobná akce ;-)
  • nadstandardní lékařská péče pro všechny naše pracovníky
  • mobilní tarif s připojením na internet
  • volitelné lekce angličtiny jednou nebo dvakrát týdně (na pracovišti, rodilý mluvčí)
  • zajímavé finanční ohodnocení s bonusem ze zisku společnosti (50% zisku je otevřeným modelem čtvrtletně rozdělováno pracovníkům jako ocenění jejich účasti na společném úspěchu)

Co budeš potřebovat?

  • chuť produkovat kvalitní aplikace, s respektem pro potřeby zákazníka a s osobním uspokojením nad technologickou excelencí,
  • osobnostní kvality, otevřenou mysl a schopnost učit se novým věcem,
  • využiješ znalosti C#, ASP.NET MVC nebo WebForms, HTML, CSS, webových technologií, OOP,
  • hodit se budou znalosti databázové problematiky (návrh relační DB, MSSQL, T-SQL),
  • znalost Entity Framework a IoC/DI může být výhodou, není však podmínkou (naučíme),
  • orientace ve front-end technologiích (jQuery, React, Knockout, AngularJS, atp.) je pro nás příjemným bonusem, ale nikoho do front-endu netlačíme,
  • dovednosti vývoje mobilních aplikací vítáme, hledáme i specialisty „mobilní vývojáře“.

Preferujeme plný úvazek, resp. akceptujeme osobní omezení, ale neradi bychom se dlouhodobě dělili s dalším pracovním nasazením. Sedíme nyní na Zeleném pruhu, kousek od metra Budějovická, ale v lednu se budeme přestěhovat do komfortnějších prostor na adresu Budějovická 3a.

Nástup možný ihned, pokud nás však zaujmeš, budeme trpěliví (např. po výpovědní dobu dosavadního zaměstnání).

Nekuřácké pracoviště, nekuřák podmínkou.

Chceš to s námi zkusit?

Kontaktuj mě s profesními informacemi o sobě na haken@havit.cz. Pokud napíšeš, proč bys chtěl(a) pracovat zrovna u nás, určitě mě to potěší.

Navrhni nejraději rovnou dva nebo tři termíny v nejbližších dnech, kdy by ses mohl(a) dostavit k osobnímu setkání. Pošli ideálně:

  • životopis,
  • ukázku svého zdrojového kódu (stačí jeden/dva soubory nebo odkaz na GitHub),
  • popř. odkazy na projekty, kde jste se podíleli na vývoji.

Pokud by vás zaujala možnost přijít jako tým (2-4 lidi), budete vítáni. Práce je u nás dost a sehranou partu nemá smysl dělit.

Přijďte se ukázat, těším se na spolupráci
Robert Haken, pečovatel o tým HAVIT

Working Effectively with Legacy Code – záznam, ZIP a slides [MS Fest Praha 11/2016]

Slides z mé přednášky pro MS Fest Praha z 26.11.2016:

Záznam z přednášky je publikován na našem HAVIT YouTube Channel.

Dotčená témata

  • „definice“ Legacy Code
  • Refactoring Mindset
  • Roslyn Code Analyzers – C#, StyleCop, SonarLint, Global Suppressions
  • Testability – extract dependencies do virtuálních metod + override v testu
  • Mocking – Moq

Visual Studio: Když nefunguje klávesová zkratka Ctrl+Shift+F12 – Next Error

Ve VisualStudiu mi přestala fungovat klávesová zkratka Ctrl+Shift+F12, přestože při ověření v Options je korektně namapovaná.

Obvyklou příčinou bývá požírání klávesové zkratky jinou aplikací. Vylučovací metodou se ukázalo, že pachatelem je Microsoft Teams, které když běží, klávesová zkratka ve VS nefunguje (přestože samotná aplikace Teams mezi svými Keyboard shortcuts zkratku nemá uvedenou).

Zavření aplikace Teams pomůže, Ctrl+Shift+F12 začne fungovat.

…pokud byste chtěli hlasovat pro feedback na UserVoice:
https://microsoftteams.uservoice.com/forums/555103-public-preview/suggestions/17156756-application-hides-the-ctrl-shift-f12-keyboard-sh

WebForms: Když nefunguje asynchronní AutoPostBack na RadioButtonech

Pokud bojujete s nefunkčním AutoPostBack na asp:RadioButton v ASP.NET WebForms při asynchronním postbacku, pak je to způsobeno tím, že ASP.NET nerenderuje k RadioButtonu označenému jako Checked klientskou obsluhu události onclick. Zřejmě je to by-design ochrana proti vícenásobné obsluze změn, tedy aby se událost vykonala pouze na jednom z radiobuttonů ve skupině, ne na tom označovaném i odznačovaném.

Možnosti řešení jsou tedy dvě:

  1. Zahrnout i RadioButtons do UpdatePanelu, aby se přerenderovaly a obsluhy událostí správně přenastavily.
  2. Obskurní work-around, který vyrenderuje obsluhu na všech RB taky může být
CisloSmlouvyNoveRB.InputAttributes["checked"] = "true";

ASP.NET Core – Dependency Injection & Unit-testing – záznam, slides a dema [WUG Days Brno 10/2016]

5lides a dema z mé přednášky pro WUG Days Brno ze 8.10.2016:

Záznam z přednášky je publikován na našem HAVIT YouTube Channel.

 

Working Effectively with Legacy Code – záznam a slides [WUG Days Brno 10/2016]

Slides z mé přednášky pro WUG Days Brno ze 9.10.2016:

Záznam z přednášky je publikován na našem HAVIT YouTube Channel.

Dotčená témata

  • „definice“ Legacy Code
  • Refactoring Mindset
  • Roslyn Code Analyzers – C#, StyleCop, SonarLint, Global Suppressions
  • Testability – extract dependencies do virtuálních metod + override v testu
  • Mocking – Moq
  • Dependency Injection

1Password for Teams – první dojmy z trial (výběr týmového password manageru)

Po necelém týdnu vzdávám další pokusy s 1Password for Teams. Má sice výrazně přehlednější UI a celkově je UX propracovanější, nicméně pro platformu Windows je to zatím příliš nestabilní a nehotové, než abych to risknul a ještě za to platil minimálně dvojnásobek než za (uživatelsky nepřívětivější) LastPass.

Nalezená pozitiva

  • existuje beta-verze samostatné Windows aplikace (nejenom browser extension)
  • první dojem z UI je velmi příjemný, vypadá to ovladatelně (UX pochází z Mac, hodně podobné SplashID)

Nalezená negativa

  • menší počet podporovaných platforem (Windows je jen beta, WP není, iOS a Android jsou), z browserů má Chroma, Safari, Firefox, Opera
  • zřejmě nemá podporu fingerprint auth na Windows, jen na iOS
  • cena $4/user/měsíc (a to ještě jen při využití akce do 14/OCT, jinak Pro verze za $12, i když asi i verze Standard by šla použít)
  • celkově vypadá, že je Mac-based a Windows platforma je ještě v plenkách
  • zakládat a práva nastavovat lze jen na trezory, nikoliv na složky (to by ještě odpovídalo shared folders v LastPass), nejde vytvářet podsložky/hierarchičtější strukturu
  • nemá auto-fill na formulářové údaje
  • lze vytvářet jen záznamy některého z definovaných typů (šablon), nelze přidávat vlastní šablony, i když záznamu dle šablony lze změnit/odebrat (nikoliv přidat) jednotlivá pole
  • nemá import hesel z Chrome, pro import se nabízí jen .csv (= více práce, ale kvalitnější výsledek)
  • nemá zřejmě vzdálenou/hromadnou změnu hesla
  • nemá zřejme „security challenge“ (duplicitní hesla, stará hesla, atp.)
  • Dotaz na uložení nového hesla v browser extension je poměrně agresivní, samotný Chrome nebo LastPass se ptají decentněji. 1P se navíc ptá úplně vždycky a nenašel jsem cestu, jak mu říct „pro tuto site nechci heslo ukládat, nikdy“.
  • browser extension pro Chrome je tak nějak závislá na samostatné Windows aplikaci (beta). Integrace na browser je sice technologicky asi sofistikovanější, ale celkově se to nechová moc spolehlivě. Na zapamatování hesla se to neptá buď vůbec, nebo naopak pořád do zblbnutí, i když ho zapamatovat nechci, občas padá, atp.

Neutrální poznatky

  • „Personal“ trezor je víceméně stále součástí firemního účtu, v tomto je přidružení odděleného osobního účtu, jak to má LastPass asi pro pracovníky přijatelnější. 1P má nicméně možnost do jednotlivých aplikací připojit libovolný počet účtů, což je vlastně víceméně to samé a navíc by to asi umožnilo připojit i případné break-glass účto-trezory.

Co zkusím dalšího? Dashlane nebo Roboform?

Visual Studio: Spouštění webových projektů do nového maximalizovaného okna browseru

Otravuje mě, že výchozí podoba spuštění webového projektu (otevření webové stránky) z Visual Studia způsobí použití již otevřeného okna browseru a přidání nového tabu (nebo více). Pokud sleduji třeba screencast na druhém monitoru, je otrava, že mi ho překreje nový tab.

Naštěstí se to dá ve Visual Studiu poměrně snadno ochočit. Stačí otevřít menu Browse with… (ať už pravým tlačítkem v Solution Exploreru, nebo v rozbalovacím menu startování aplikace) a v příslušném dialogu založit „nový browser“ s příslušnými parametry příkazového řádku.

Pro Chrome, který používám, to vypadá takto:

2016-10-06_10-51-12.png

…teď už stačí jen zvolit příslušný „browser“ jako Default a je to. Příští spuštění již budou do nového maximalizovaného okna.

Pro další browsery to bude obdobné. Přepínačů samozřejmě existují tuny a dají se tak navolit i další věci (incognito, window size/position, disable plugins, …).