Bc. Milan Falešník

MEE-lan FAH-lesh-neek (the ee in MEE is short; the n in neek is like in "new")


A (mostly) Python programmer. A bit of weirdo. A bit of perfectionist. Quality engineer with specialization on test automation. Traveller. Motorcyclist.



Personal data

  • Residence: Brno, Czech republic

Work experience

  • Red Hat Czech, Brno, Czech republic (6/2016 - now)
    Senior Quality Engineer

    I started as an intern, but since 4/2014 I work full-time as a Quality Engineer on Red Hat CloudForms.

    My main workload is finding bugs, verifying bugs, extending test coverage and contributing to the framework itself to be better. Sometimes it happens that I even submit a patch to the product itself.

    I also sometimes mess with infrastructure, but I prefer to program. I wrote a tool that saves us a lot of time by preparing virtual machines in advance and keeping a pool of them running for users to take for a limited amount of time to conserve resources. I was learning Django and celery on it, so there are things I would design differently. But since it works, I just keep it running.

    I am also a team lead for 4 other people and I also have some experience interviewing the job applicants from the technical side.

  • Red Hat Czech, Brno, Czech republic (4/2014 - 5/2016)
    Quality Engineer

  • Red Hat Czech, Brno, Czech republic (8/2013 - 3/2014)
    Internship

  • Red Hat Czech, Brno, Czech republic (7/2012 - 10/2012)
    Internship

Education

  • Brno University of Technology (2010 - 2013)
    Bachelor of Information technologies

    Program description CZ / EN

    I participated in Natural Languages Processing research group, I created a scraper for DOAJ written in Python that processed the records in various formats and then emitted a specially formatted XML files for further processing.

    Bachelor thesis: Stereo Based 3D Face Reconstruction

    The task was to reconstruct a three-dimensional model of a human face using a pair of calibrated (web)cameras.

    I wrote the bachelor thesis when participating in the ERASMUS Student Exchange program in my last year (at Università degli Studi di Sassari)

  • Secondary technical school in Uherské Hradiště (2006 - 2010)
    Electrotechnics

    • Reading and drawing technical drawings (schematics)
    • Principles of basic electronic circuits and their design
    • Principles of manufacturing electronical components
    • Measuring of quantities in electronical circuits
    • Manufacturing of electronical circuits (manufacturing PCBs, soldering, testing)
    • Electrical wiring in buildings
    • Basic skills of metalworking (grinding, drilling, milling, turning)
    • Programming (PC) - PHP, Pascal, Object Pascal (Delphi), HTML
    • Programming of microcomputers - Motorola 68HC11 assembly

Technical skills

Python

Python is my first language of choice whenever I am solving programming tasks. I started with Python in 2011 and through the years I was continuously improving my skills. My knowledge of the language is advanced, and things like designing descriptors and metaclasses are something that I don't even have to look up at Stack Overflow.

Our automated testing suite is written in Python and I was and still am involved in decisions concerning design and future of it. There are also a couple of supporting libraries in which I am involved too.

I must also mention my project that I started to support the testing framework overhaul: Widgetastic. I took all my experience with solving Selenium quirks, added inspiration from Django models, functionality we need in our testing system, then a bit of brainstorming - and this library was born. You can read more about it on the link. It is already used in some parts of the testing system (Feb'17) and the big conversion is imminent with me being converting one part of the UI descriptive part to this new system and continually modifying the library with the required functionality.

Quality Engineering

I have an experience with testing a complex product that integrates with other products.

Ruby

Ruby is my second language of choice, I personally like Python more but Ruby has its charm and sweet spots when you understand how the language works. The product I test is written in Ruby and even I sometimes code something small for it.

Linux, bash, ...

C, C++, Java, JavaScript, Lisp, ...

C and C++ were the languages that I used the most during studies but I no longer actively use them. I also have some command of Java (both PC and Android) and Lisp-like languages, but I don't use them.

I use JavaScript sometimes, I know the language and I have no problem with writing the supporting JS for pages I create.

Virtualization

Since ManageIQ manages virtualization platforms, I am exposed to various virtualization technologies but the ones that I am the most familiar with are Openstack and docker. I even have experience installing Openstack.

And this point goes back to Python - I have experience with python client libraries for RHEV-M, Openstack, vSphere, which we use in our wrapper so tests do not have to care about differences. I also wrote a Python client for SCVMM which uses pywinrm and executes Powershell commands.

Software development

As mentioned in my jobs description, I wrote and maintain a special tool that is custom-tailored to provide us with a quick availability of ManageIQ appliances which come from preconfigured templates that are generated from vanilla templates when they come out, combines multiple virtualization providers and keeps an eye on the engineers to conserve resources - terminates appliances that had their lease time expired (user did not press the "dead man's button"), notifies the engineers when they manage to make the machine swap, ... It also provides us with semi-automatic deletion of templates that are deemed unnecessary.

I use celery, a task queue system for Python.

I use Travis CI for my projects to execute the unit tests.

Selenium

I have seen probably all possible errors that Selenium can throw over the years. I participated in various black magic that had a task of eliminating such behaviour or improving performance.

I have good knowledge of XPath, basically someone grumbles about not having id= on an element, I just sit and write locator for basically anything.

Web Development

Related to the Software Development section, since the tool mentioned has a web interface.

I have experience with Django and bottle frameworks, I use bottle for simple servers with couple of URLs and I used Django to create that tool I mentioned.

I have working knowledge of HTML and CSS - I know exactly how these work, but I cannot design, so give me a design template and I will put stuff together. Like this page.

I also have some knowledge of AngularJS, I used it in a couple of places but only in small scale.

Other skills

Driving licenses

Languages

Czech: native, English: full working proficiency
French, Italian: Basic knowledge.

Hobbies

Technology

Travelling

If you see this you are not seeing my flight stats banner because ad blocker blocked it.

Foreign languages

Contact

  • Click to display my e-mail address
  • mfalesni @FreeNode #manageiq #pylib
  • My e-mail address is on google, so you can use it for Hangouts messages (if you have reason to do)

I prefer straightforward communication.