I am a very curious person and I like challenging tasks. If I do not agree with the particular implementation details of the task I like to discuss them either to understand and get on the line, to change them according to my best knowledge or to find some compromise.
Good decisions come from experience and experience comes from bad decisions.
I was responsible for front-end (Django) development and deployment, including the integration with Scala backend. Have developed custom graceful deployment, i.e. the old servers with old app were running until the old requests were served.
Have been playing with jQuery, SVG and Graphviz.
Moved whole project to GitHub in order to enable the team to use cooperation features of it.
Moved team communication to Slack.
Added one script to run it all in a local environment for testing.
TLS certificates for https://sqldep.com and setting up nginx to keep up with latest news according to ssllabs.com's recommendations.
Attended Strata+Hadoop conference together with other SQLdep colleagues in New York.
Deployed and managed the application, sometimes debugged the errors. Added coffelint to the build process as one of the first tasks in order to make sure code stays readable. (Coffee-script, Node.js, AWS, Heroku, SendGrid)
Wrote and ran scripts for on-the-fly size change in MongoDB capped collection.
Used git (with GitHub) every day.
Managed Google accounts and mail (incl. SPF, DKIM and DMARC). Also DNS and backups of hosted zone files.
Generated TLS certificates throughout the app (production + local development) and ensured their security (SHA-1 deprecation, new certificates after POODLE, etc.).
Supported users. Both internal colleagues (printer installation, etc.) and external ones via UserVoice, Zendesk or Intercom.
Managed PagerDuty shifts for new on-call team members.
Internal user support (Linux LVM, Mac printer, git, …)
Wrote an automated shell script to easily set up a local development environment without using a virtual machine but still keeping all the related binaries in a chroot-like directory (on Mac and Linux). The script used to read package.json file in order to find out proper versions of tools (npm, cofee, grunt) without the need to make yet another duplicate version entries in the code. It upgraded the tools in the local toolchain if upgrade was needed. After running the script, the developer could already run the application because both the MongoDB and Redis were properly up and running.
Visited Apiary branch in San Francisco and spent time there with colleagues. Fixing issues specific to the environment there (e.g. particular DNS hosting did not work reliably from U.S. so I have found a new one and migrated the domains there).
Attended LISA 2014 conference in Seattle.
Prepared environment to automatically build RPM packages of current (yet unreleased) PostgreSQL (see github/jsarenik) along with some other, mainly Perl DBI-related packages.
Have set up servers for production and testing, configured and taught other programmer to use git with
gitolite on local server.
Programmed an STM32 ARM microcontroller to control multiple peripherals and scan inputs, all using Free Software toolchain (GNU GCC, GDB, stlink from GitHub) and libraries provided by ST.
Have set up from scratch and administered company's Linux server running mail (SMTP, DKIM, roundCube webmail), web (WordPress) and file share (ownCloud).
Gained experience troubleshooting a 3D printer and supporting its users in Windows/Mac/Linux environment.
Wrote an automated and unified system for all the daily repeated tasks done by a Release Engineer so one could focus on more interesting problems that actually needed human interaction.
Prepared all the means to transfer and set up a Perforce replica, cleansed the tree from blob caused by improper source code management (hundreds of gigabytes of outdated binary DB backups).
Visited San Mateo (CA) twice for two weeks. First time it was the introductory training, second time it was rather a reunion and I was reporting some security flaws in person to the security manager.
Designed and documented an automated installation system to set up a unified local development environment for a new developer (using AutoIt3, VB scripts and batch fles on Windows 7).
Automated overnight synchronization of Mercurial repositories to save low-bandwidth internet connection during the day (implemented using batch files ran by scheduler).
Wrote Autoit3 wrappers for a Windows based USB-to-Ethernet solution in order to make it multi-user friendly and fit for local needs of hardware token sharing.
Wrote numerous shell scripts for automated testing.
Debugged lot of C, C++ and Python code, a little bit of Ruby and Perl.
Administered internal MRG QE team's server with cgit web interface.
Evaluated multiple virtualized environments (KVM, VirtualBox, VMWare) and native Linux chroot and possibilities of their usage in automated testing.
Maintained air conditioned lab with servers that hosted main testing infrastracture (more than 60 machines) – serial consoles, IPMI, multiple architectures (ppc4, ppc5, x86-64, itanium).
Provided on-site troubleshooting for a group of more than 100 engineers.
Automated local IPv6 deployment using router advertisement and DNS.
Administered active Ethernet switches (Cisco, Allied Telesyn) and Linux servers (both local and remote).
Have set up, confgured and documented an OpenBSD frewalling router.
Used Linux IPv4 Policy routing (iproute2 utilities) in order to differentiate between traffic targetted to the native IP and traffic targetted to the OpenVPN hosted IP (with SMTP and webserver running on it).
Helped users troubleshooting any problems (mostly Windows or SuSE Linux)
Debakl - debatní klub profesora Dokulila
Linux Bier Wanderung
Musical instruments (accordion, guitar, piano, recorder), singing, gardening, hiking, breathing fresh air without smoke, fixing computers for close family members or friends.