Zdravím,
Říkají mi Disassembler a jsem IT děvečka pro všechno. Oficiálně jsem zaměstnán jako administrátor middlewarových systémů u společnosti IBM, ale v čase, který nevěnuji svému zaměstnavateli, jsem jako OSVČ i administrátor nejrůznějších *nixových i Windowsových serverů, uživatelská technická podpora, programátor a vývojář webových i desktopových aplikací a automatizačních skriptů, a protože nejen prací je člověk živ, i občasný hráč počítačových her.
Přehled technologií, se kterými si rozumím
Administrace
- Linux, Unix, Windows - Denně pracuji s operačními systémy nejrůznějších tvarů a barev. Z linuxů si nejvíce tykám s distribucemi založenými na Debianu a Red Hatu (Ubuntu, Fedora, CentOS), dále MS Windows v desktopových i serverových edicích a v neposlední řadě umím k nejrůznějším věcem přemluvit i AIX. Jsem hrdým vlastníkem RHCE certifikátu.
- Webové servery - Dříve jsem hojně pracoval s lighttpd, ale dnes preferuji robustní Apache, který používám jako reverzní proxy nebo pro virtuální privátní webhosting v kombinaci s PHP-FPM. O nginx, HAProxy nebo Tomcat se umím postarat taky.
- Poštovní servery - Spravuji několik mailserverů s Postfixem a Dovecotem. Jako antispamové a antivirové řešení využívám AMaViS, SpamAssassin, ClamAV s několika velmi užitečnými databázemi signatur třetích stran, Bayes filtry a různé jiné vychytávky. Jako webové rozhraní mailového klienta používám RoundCube.
- Souborové servery - Spravuji FTP servery (převážně Pure-FTPd, na Windows pak FileZilla), SMB/CIFS fileservery, případně celá SAN/NAS řešení v SOHO segmentu. Softwarová nebo hardwarová disková pole RAID instaluji pro každý souborový server a umím i nějaká kouzla s iSCSI.
- Databázové servery - Často pracuji s databázovými servery MySQL/MariaDB a PostgreSQL. V případě potřeby se dokážu domluvit i s Oracle, MS SQL, DB2 nebo třeba s Firebirdem. Snažím se efektivně využívat specifika daných databázových enginů a nastavovat je tak, aby podávaly maximální výkon bez zbytečného plýtvání systémovými prostředky.
- Aplikační servery - Mým denním chlebem je správa několika desítek instancí IBM WebSphere Application Server. Jelikož jsou si J2EE servery celkem podobné, poperu se i s Oracle WebLogic Server, JBoss AS, WebSphere Liberty a dalšími middleware produkty k nim přidruženými.
- Virtualizace - Aby silné stroje nezahálely, rozděluji jejich výkon za pomoci hypervizorů jako VMWare ESXi, VMWare Workstation nebo Hyper-V. VirtualBox samozřejmě také ovládat umím, ale produkční prostředí s jeho pomocí neprovozuji. Z kontejnerů mám rád LXC / LXD a začínám posupně objevovat i užitečnost Dockeru.
- Monitoring - Abych věděl, že mnou spravované servery fungují spolehlivě, využívám dohledový systém Zabbix a vlastní reportovací skripty. S Nagiosem se také znám, ale nepreferuji jej. Pokud to situace dovoluje, rád řešení incidentů automatizuji.
- Networking - Můžete se na mě obrátit se vším od zasíťování domácnosti až po firemní infrastrukturu s WAN multihomingem a VPN. Pochopitelně raději řeším logickou část síťování, než vlastní fyzickou práci a tahání kabeláže. Má oblíbená síťová zařízení nesou loga firem MikroTik a Ubiquiti.
Programovací Jazyky
- C# / VB - Programuji .NET aplikační můstky, nástroje pro transformaci a elektronickou výměnu dat a desktopové aplikace pro Windows. V současné době je C# mým nejčastěji používaným programovacím jazykem.
- Java - Vyvíjím multiplatformní desktopové a jednoduché client-server aplikace v Javě. JSP a servlety také zvládám, ale nějaké EJB šílenosti ode mě nečekejte. Naopak ode mě můžete čekat analýzu požadavků aplikace, security hardening a JVM tuning.
- C / C++ - Nejedná se o můj primární jazyk, ale čas od času se podílím na vývoji komunitních projektů na GitHubu, BitBucketu i SourceForge.
- Delphi / Pascal - Kdykoliv je vidím, hrůzou mi vstávají vlasy na hlavě a aplikaci bych nejraději přepsal v C# nebo pythonu, ale jelikož mé programátorské začátky byly právě v Delphi, i tyto jazyky umím.
Skriptovací jazyky
- Python - V Pythonu píšu převážně administrační, monitorovací a automatizační skripty, případně různá CLI rozhraní nebo socket servery. Momentálně se jedná o můj nejoblíbenější skriptovací jazyk, na což poukazuje i můj profil na CodeWars.
- PowerShell - V tomto jazyce píšu složitější automatizace a skriptování ve Windows. Snažím se používat nativní cmdlety, ale pokud to není možné, nebojím se připsat si část v C#. Mým nejznámějším PowerShellovým kouskem je skript pro prvotní nastavení Windows 10.
- Shell scripting (bash, ksh, Windows batch) - Vyrábím obslužné, zálohovací, dávkové nebo automatizační skripty. Neštítím se regulárních výrazů.
- AutoIt - Můj oblíbený jazyk pro vývoj GUI maker a automatizačních utilit.
Webové technologie
- Vývoj webových prezentací mě živil během studentských let, takže v současnosti mne webové technologie již příliš neoslovují, nicméně zajímavými projekty většinou nepohrdnu.
- (X)HTML / CSS / JavaScript - Webové stránky píšu zpravidla v HTML5 s využitím sémantických tagů, které nabízí. XHTML nebo HTML 4.01 nepreferuji, ale vývoji v něm se nebráním. Z nevalidního HTML dostávám kopřivku. Využívám CSS 2.1 i CSS 3 selektorů a dalších vlastností a rád si hraju s pixely, abych dosáhl jednotného vzhledu ve všech moderních prohlížečích. Pro rychlou a pohodlnou práci nad DOM používám jQuery. U složitějších aplikací hojně pracuji s daty skrze AJAX, JSON a HTML5 data atributy.
- PHP - K dynamickému generování stránek, ale i k vývoji redakčních systémů a jiných webových aplikací používám PHP 5.6 a novější. Snažím se o co nejčistší kód bez zbytečných závislostí, ale u složitějších projektů se nepokouším znovu vynalézat kolo a raději využiju hotové řešení nebo framework. Jako middleware a VPS administrátor také občas vypomáhám ostatním vývojářům s laděním a optimalizací jejich kódu.
- Python - Pokud to příležitost dovolí, používám Pyramid framework k vytváření rychlých a bezpečných webových aplikací.
- SQL / NoSQL - MySQL/MariaDB i PostgreSQL databáze navrhuji s optimálním využitím relací, klíčů a indexů. Využívám specifika jednotlivých SQL dialektů a typů databázových enginů a rád si hraju s EXPLAINem. Co se týče NoSQL, prozatím jsem aktivně pracoval s MongoDB, CouchDB a memcached. RESTful přístup k datům pro mě není cizí.
Z výše uvedeného jste tedy asi poznali, že preferuji linuxové servery a Windowsovské pracovní stanice. Díky tomu mám tedy rozhled po obou světech a mohu se vyvarovat nedospělostem typu „Linux rulezzz!!!“. Jako správný administrátor si rád ulehčuji repetitivní práci nejrůznějšími automatizačními udělátky, jejichž tvorba a ladění mě baví. Netvrdím, že jsem Broukem Pytlíkem a že úplně všechny výše uvedené věci umím dokonale, ale rozhodně je umím natolik, aby byli mí zákazníci spokojeni. Když něco náhodou nevím, ochotně se vrhám po manuálech, dokumentacích a diskusních fórech, protože to, co mě baví, se naučím velice rychle.
Pokud byste projevili touhu mě kontaktovat, můžete mi napsat na disassembler@dasm.cz. A pokud některý z mých článků nebo skriptů shledáte užitečným, můžete mi přispět na pivo a párek.