Hledáme part-time software support engineera

Hledáme nového kolegu, který by byl schopen ovládat, nastavovat a diagnostikovat aplikace, které jsme vyvinuli a provozujeme pro naše zákazníky + tyto své dovednosti dokázal využít pro řešení přicházejících požadavků na podporu.

V čem práce spočívá = komunikace se zákazníky + IT úkony provozu aplikací:

  • příjem, třídění a řešení požadavků na support přicházejících od zákazníků do našeho help-desk systému (webová aplikace Kayako) – obvykle se nejedná o 1st level dotazy řadových uživatelů, ale o záludnější požadavky s kterými si u zákazníka nedokázali poradit sami,
      • pokud se jedná o dotaz, pokusit se ho odpovědět – popř. s pomocí od kolegů vývojářů,
    • pokud se jedná o hlášení chyby, pokusit se ji reprodukovat (popř. získat od zákazníků více informací), zapsat vývojářům k opravě ve srozumitelné podobě (TFS),
    • pokud se jedná o servisní požadavek, provést úpravu nastavení aplikací,
    • pokud se jedná o změnový požadavek, předat na vývojářský tým.
  • cca 75% práce spočívá v aktivním řešení jednotlivých požadavků (diagnostika hlášené situace, úprava nastavení, prozkoumání chování aplikace, získávání dat, komunikace s vývojáři aplikace, atp.). Nejedná se tedy o rutinní práci  call-operatora, ale naopak o velmi aktivní IT-činnosti (např. “bádání, proč se aplikace nějak zachovala a jestli to je v souladu se zamýšleným chováním”) s přesahem na business-analytické vnímání potřeb zákazníků (nemá se správně aplikace chovat jinak, přestože to nebylo v zadání?).

Požadujeme:

  • pokročilé komunikační dovednosti,
  • IT-background (principy fungování webových aplikací, základní práce s SQL, atp.),
  • dobrou aktivní schopnost komunikace v angličtině (75% support-ticketů je v EN, převážně písemných, občas však potřebná i telefonická komunikace),
  • schopnost nastudovat/rozklíčovat fungování aplikací a  poskytovat na základě nabytých znalostí podporu zákazníkům.

Nabízíme:

  • úkolové odměňování (dle objemu vyúčtované práce),
  • volnější pracovní dobu v rozsahu kolem 1/2-úvazku (tickety není nutné vyřešit on-line, na tickety došlé dopoledne by se však mělo ještě týž den do půlnoci reagovat, nejpozději den následující),
  • možnost částečné práce na dálku (z domova/koleje),
  • práci na zajímavých projektech – viz Reference – zakázkový vývoj webových aplikací,
  • dle Vašich dovedností a časových dispozic Vás můžeme využít i pro další aktivity – testování, dokumentace, HTML-coding, atp.

Zájemci mě kontaktujte s profesními informacemi o sobě na haken_zavinac_havit.cz.

Dokud je zde zveřejněno, náš zájem trvá. Žádná formální kola výběrového řízení neorganizujeme. Uchazeče budeme po základním prosetí dle prerequisit hodnotit na základě splnění zkušebního úkolu (simulace reálného zadání na naší aplikaci).

Hledáme ASP.NET vývojáře pro externí spolupráci

Pro rozšíření a větší flexibilitu našich kapacit hledáme pracovníka, resp. několik pracovníků na pozici “externí ASP.NET developer”.

Požadujeme:

  • běžnou znalost C#, HTML, CSS,
  • znalost ASP.NET WebForms,
  • základní orientaci v objektovém programování,
  • základní orientaci v databázové problematice (MSSQL),
  • občas se může hodit znalost jQuery, Bootstrap, atp.

Nabízíme:

  • úkolové odměňování (balíčky práce s předem určeným termínem odevzdání a odměnou),
  • volná pracovní doba, práce z domova/koleje,
  • rozsah práce dle vašich možností a našich aktuálních potřeb (napište, kolik času nám můžete věnovat, aktuálně hledáme novou kapacitu v řádu desítek až stovek hodin měsíčně – více pracovníků),
  • práci na zajímavých projektech (viz Reference – zakázkový vývoj webových aplikací, vlastní projekty Goran a business.center.cz), obvykle neděláme webové prezentace,
  • příjemnou vývojářskou práci na vícevrstvých aplikacích, 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áce s nejnovějšími technologiemi .NET 4.5+, SQL 2012+.

Zájemci mě kontaktujte s profesními informacemi o sobě a ukázkou zdrojového kódu na haken_zavinac_havit.cz.

Dokud je zde zveřejněno, náš zájem trvá. Hledáme jednoho nebo dva lidi do našeho širšího týmu, žádná formální kola výběrového řízení neorganizujeme. Uchazeče budeme po základním prosetí dle prerequisit hodnotit na základě splnění zkušebního úkolu (simulace reálného zadání na naší aplikaci).

Hledáme nového kolegu na pozici ASP.NET Developer

Do našeho týmu hledáme dalšího kolegu na pozici “ASP.NET developer”.

Požadujeme:

  • schopnost produkovat kvalitní aplikace, s citem pro potřeby zákazníka a s osobním uspokojením nad výsledky práce,
  • pokročilou znalost C#, ASP.NET WebForms, HTML, CSS, webových technologií, OOP,
  • pokročilé znalosti databázové problematiky (návrh relační DB, MSSQL, T-SQL),
  • důležité jsou osobnostní kvality, otevřená mysl a schopnost učit se novým věcem,
  • znalost ASP.NET MVC může být výhodou, není však podmínkou (drtivá většina našich projektů jsou WebForms),
  • občas se může hodit znalost WPF, Flash atp., nicméně není to požadavek,
  • orientace v jQuery, AngularJS, atp. určitě potěší.

Nabízíme:

  • přátelské prostředí střední pracovní skupiny, kde se snažíme, aby práce pro nás byla zábavou,
  • pohodový pracovní režim, kde Vám neprudí 3x denně u stolu obchodník, že zrovna tohle musí být okamžitě hotové, nejpozději hned,
  • relativně volnou pracovní dobu, kde jsou přesčasy naprostou výjimkou a je potřeba podržet kolegu, který domluvil něco, co neměl,
  • práci na zajímavých projektech (především zakázkový vývoj webových aplikací, někdy též vlastní projekty Goran a business.center.cz), neděláme moc webové prezentace,
  • příjemnou vývojářskou práci na vícevrstvých aplikacích, s agilním přístupem, s nejnovějším vybavením (VS2013, SQL2012, NET4.5, Win7/8, SSD, 2xLCD, …), 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.),
  • odborný rozvoj v kolektivu MVP, MCT, MCPD, MCP kolegů ;-)
  • každý rok týdenní teambuilding na námořní plachetnici, na horách, nebo obdobný (snad to znovu vyjde) ;-)
  • nadstandardní lékařská péče pro všechny naše pracovníky
  • volitelné lekce angličtiny jednou nebo dvakrát týdně (na pracovišti, rodilý mluvčí)

Plný úvazek. Sedíme kousek od Budějovické. Nástup možný ihned, pokud nás však zaujmete, jsme ochotní i počkat po výpovědní dobu dosavadního zaměstnání.

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

Zájemci mě kontaktujte s profesními informacemi o sobě na haken_zavinac_havit.cz.

Navrhněte nejraději rovnou dva nebo tři termíny, kdy byste se mohli dostavit k osobnímu setkání. Pošlete:

  • životopis,
  • ukázku svého zdrojového kódu (stačí jeden/dva soubory),
  • odkazy na projekty, kde jste se podstatným způsobem podíleli na vývoji (pokud jsou veřejně dostupné).

Dokud je zde zveřejněno, náš zájem trvá. Žádná formální kola výběrového řízení neorganizujeme, prostě dokud nenajdeme vhodného kandidáta, tak hledáme a vybíráme. Čím dříve se ozvete, tím menší je pravděpodobnost, že už bude pozdě… ;-)

Vybírám notebook V. – Dva měsíce s Lenovo ThinkPad T440s a Win8.1

Po dvou měsících práce posílám završení své anabáze výběru nového notebooka:

Shrnu to asi nejprve konstatováním, že notebook je to velmi dobrý a více problémů mi způsobují Windows 8.1, než hardware samotný.

Pozitiva

  • kvalitní provedení – Bytelný, dobře dílensky zpracovaný, líbivý (subjektivně).
  • pro mě ideální poměr velikosti (14”, ultrabook form), výbavy (3xUSB, RJ-45, VGA, mini-DP, dock) a váhy (cca 1,6kg)
  • dobrý display – Z X230 jsem byl zvyklý na IPS a tohle je analogie, bojuju jen trochu s rozlišením, viz níže.
  • velký a relativně rychlý disk – Je v tom OEM verze Samsung 842 a točí cca 500/350 MB/s. Velikost 512 GB.
  • použitelný touchpad – Drnčivý clicko-stisk s výjimkou drag&drop prakticky nepoužívám a jinak je to velmi použitelné (MBA to sice není, ale to už je víc problém SW a Windows, než HW).
  • výkon – Nahradil jsem tímto strojem svůj původní desktop. PC jsem prostě zrušil a používám už jenom notebooka. Měl jsem dost nabitý stroj a přesto rozdíl prakticky nepoznám (OK, renderování videa z Camtasie možná trvá o chvilku déle, ale jinak není co řešit.)
  • reproduktory – Nenapadlo by mě, že bych to vůbec kdy měl řešit, ale ve srovnání s notebooky, co jsem kdy měl, tak tenhle dokáže svými reproduktorky (ve spojení s Dolby utilitou) vyluzovat nečekaně dobrý zvuk.
  • čtečka otisků prstů – Čtečka je sice mnohem spolehlivější (méně bezpečná? neumím posoudit) než ta z X230. Na druhou stranu neumí notebook zapnout/vzbudit, což bylo na X230 dobré.
  • kompaktní provedení (panty displaye) – Ještě jsem sice od té doby neletěl letadlem, ale jinak jsem zatím nikde nezaznamenal, že bych se někam nevešel. Díky nižšímu usazení pantů a otevírání za šasi je notebook poměrně kompaktní.

Negativa

  • Full HD – Windows prostě nemají dobře vyřešeno škálování UI a pro mě je neškálované FullHD moc malé. Používám tedy střední velikost pro panel notebooku (odpovídá cca 125%) a velikost Smaller (100%) při zadockování k monitoru. Průšvih je, že Windows 8.1 se neumí s přechodem mezi těmito režimy dobře vypořádat, aniž bych se musel pokaždé odhlásit a znovu přihlásit. Takže se jak pako přihlašuji a odhlašuji kdykoliv jdu od pracovního stolu do zasedačky, domů, nebo kamkoliv jinam (a stejně tak když se vrátím). Pokud by se dělala verze s IPS v HD+, pak bych asi preferoval tu.
  • výdrž baterie – Od high-end stroje s Haswellem bych čekal více, než že bude bojovat v pásmu 4-5 hodin. Je to asi dáno tím, že má jen dvě relativně slabé baterie o celkové kapacitě 46Wh. Vydrží mi tedy zhruba stejně, co předchozí X230 s tuším 64Wh baterií.
  • dockování – Ve srovnání s X230 a jeho bundlovaným dockem se T440s do ThinkPad Pro Docku zatraceně blbě dává. Prakticky nikdy se netrefím na první pokus a různě s tím musím vekslovat, aby to do sebe zapadlo. Možná jsem jen nechytil ještě správný grif, ale je to otravné.
  • SW výbava – Nepoužíval jsem toho sice od Lenova mnoho, ale třeba takový Power Manager mi chybí. Nemám prostě důvěru, že Windows 8.1 pracují s napájením tak, jak by šlo. Nevidím třeba nikde volbu výkonového režimu procesoru při práci na baterie nebo s napájením, atp. (ale možná to prostě funguje a není potřeba řešit). Každopádně jsou na tom pořád lépe Win7 než Win8, co se driverů a toolingu týče.
  • výše posazená klávesnice – Vadí mi občas pásek od hodinek (zachytávám se, cvaká), což jsem nikdy jinde nepozoroval. Jinak, jak tu už někdo zmiňoval v diskuzi, mezerník se obtiskává na display, ale nijak výrazně a při běžné frekvenci čištění ho prakticky nepozoruji.

Pokud bych měl shrnout zkušenosti s Windows 8.1, tak bych asi řekl “Po potlačení Metro-modu a instalaci Start8 dobré, ještěže jsem přeskočil Win8.” Hlavním problémem je asi to škálování UI na různých rozlišeních a pak otravné Metro-novinky, které mi tam po všem vykosťování zbyly (zejména připojování k sítím).

CrashPlan: Zálohování síťových složek

Používám pro zálohování mimo jiné CrashPlan+, který odlévá určené soubory do svého cloudového uložiště včetně verzování. Na rozdíl od SkyDrive, Dropbox nebo Google Drive je toto plnohodnotná zálohovací služba, drobnou slabinou však je, že nepodporuje zálohování ze síťových složek, ale jenom z lokálních disků.

Dá se to naštěstí napravit jednoduchým trikem – přes symbolické linky z lokálního disku na síťové složky:

  1. Vytvořím si na disku zastřešující složku, dejme tomu D:\BackupLinks.
  2. Vytvořím do příslušné složky symbolické linky na síťové složky, které chci zálohovat:
    mklink /D FolderName \\ServerName\FolderName
    
  3. Přenastavím lokální službu CrashPlan Backup Service, aby běžel pod uživatelským účtem, který má přístupová práva na všechny zálohované soubory (lokální i síťové).
  4. Restartuju službu.
  5. Nastavím CrashPlan, aby zálohoval složku D:\BackupLinks a zkontroluju, že si soubory načte a začne sypat do uložiště.

…hotovo.

Outlook: Automatické vypnutí reminderu na příchozích meeting requestech

Můj kalendář je hodně plný a poslední, co bych chtěl, je připomínání každého jednotlivého meetingu (obzvláště ne v době, kdy si připomenutí na meeting-requestu nastavil organizátor schůzky). Remindery si nastavuji výjimečně a chci je mít na událostech, kde si to explicitně určím já.

Hledal jsem tedy způsob, jak automaticky na příchozích žádostech o schůzku automaticky vypínat připomenutí. Našel jsem VBA snippet, který to zařizuje. Protože ale nejsem žádný Outlook-developer, raději si poznamenám celý proces, jak to zprovoznit (návod dávám pro Outlook 2013, ale bude to všude podobné):

  1. V Outlooku dám Alt + F11 (nebo na ribbonu Developer volbu Visual Basic, pokud máte zapnutý).
  2. Ve stromu vlevo vyberu položku ThisOutlookSession (laicky si to představuju jako obdobu global.asax :-))
  3. Do okna pro kód dáme:
    Private WithEvents Items As Outlook.Items
    
    Private Sub Application_Startup()
      Dim Ns As Outlook.NameSpace
    
      Set Ns = Application.GetNamespace("MAPI")
      Set Items = Ns.GetDefaultFolder(olFolderInbox).Items
    End Sub
    
    Private Sub Items_ItemAdd(ByVal Item As Object)
      On Error Resume Next
      Dim Meet As Outlook.MeetingItem
      Dim Appt As Outlook.AppointmentItem
    
      If TypeOf Item Is Outlook.MeetingItem Then
        Set Meet = Item
    
        Meet.ReminderSet = False
        Meet.Save
    
        Set Appt = Meet.GetAssociatedAppointment(True)
    
        If Not Appt Is Nothing Then
          Appt.ReminderSet = False
          Appt.Save
        End If
      End If
    End Sub
    
  4. Skript je potřeba ještě podepsat. V menu Tools zvolíme Digital Signatures
  5. Tlačítko Choose a vybereme certifikát. Pokud nemáme žádný k dispozici, vytvoříme si jej snadno pomocí
    C:\Program Files\Microsoft Office\Office15
  6. Uložit.
  7. Restartovat Outlook.

Pokud by se Outlook vzpouzel spustit, tak outlook /safe a ladit dle vlastních dispozic. ;-)

Coded UI Tests: The playback failed to find the control with the given search properties.

Ve VS 2013 pomocí Coded UI Test Builderu nahrávám skript pro proklikání stránek.

Test se podaří vyrobit, ale při přehrávání dostávám výjimku:

Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: The playback failed to find the control with the given search properties. Additional Details: 
TechnologyName:  'Web'
ControlType:  'Hyperlink'
TagName:  'A'
Id:  ''
Name:  ''
Target:  ''
InnerText:  'Kanda Jiří'
 Failed to find any control that matched the search condition Id='' && Name='' && ControlType='Hyperlink' && Target='' && InnerText='Kanda Jiří' ---> System.Runtime.InteropServices.COMException: Volání součásti COM vrátilo chybu HRESULT E_FAIL.

Hraji si s vyrobeným kódem a zjišťuji, že problém se vyskytuje pouze tehdy, pokud se hledá pomocí podmínky na InnerText.

This.Xyz.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "xyz";

Pokud je tato podmínka odstraněna, test začne fungovat.

Řešení, jak tento problém obejít, je neuvěřitelné a pro mě těžko pochopitelné. V PlaybackSettings je třeba nastavit vlastnost AlwaysSearchControls (což je nutné i pro další problém s Coded UI Testy) a navíc značně prodloužit DelayBetweenActions z výchozí hodnoty 100 ms.

Playback.PlaybackSettings.AlwaysSearchControls = true;
Playback.PlaybackSettings.DelayBetweenActions = 500;