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 perfectionist. Former quality engineer with specialization on test automation. Traveller. Motorcyclist.



Personal data

  • Residence: Brno, Czech republic

Work experience

  • Freelancer/Contractor (9/2018 - now)

    Mavenir, Brno, Czech republic (11/2018 - now)
    Contractor / Engineer


    Offering my skills to customers.

    Python, Selenium, Django (only backend or with regular templating views, not a frontend guy), Linux administration with Docker and all that stuff? Milan is here to help.

    I am currently working on contracts so I am not available for hire, though if you need something, I may have time during evenings to help you out.

  • Red Hat Czech, Brno, Czech republic (2012-2018)
    Senior Quality Engineer (6/2016 - 4/2018)
    Quality Engineer (4/2014 - 5/2016)
    Internship (8/2013 - 3/2014)
    Internship (7/2012 - 10/2012)


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

    My main workload was 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.

    My secondary workload was participating in the design process (member of a core team) and designing libraries and tools we used.

    I gave a talk about the way we test things at SeleniumCamp 2018 in Kyiv

    Co-inventor of US9740543B1

    I also sometimes messed 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 was also a team lead for 4 other people for some time and I also have some experience interviewing the job applicants from the technical side.

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. By the end of '17 all parts of UI representation were converted to this system. And this library is also used in one or two somewhat related projects as I was told.

Quality Engineering

I have an experience with testing a complex product that integrates with other products. I have the ability to think about how the product works and based on that try to break it. Or design a procedure how to test something unusual. I am capable of looking at errors/tracebacks and estimate the cause unless it is something that goes too deep where only devs dwell. And, if I find something that I can fix myself, I do so. If the issue bugs me as a QE, it would bug a customer and bugs can frequently fall under the radar because of priorities.

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 tested is written in Ruby and even I sometimes coded something small for it.

Linux, bash, docker, ...

... you name it. At various times I also experimented with tools like ELK, InfluxDB (in the job I collected statistics about the infrastructure and such, at home I was collecting ADS-B data from my ADS-B receiver). I don't recall any specific experiences with other tools, but I have a very good passive memory so if you ask me about tool XYZ, I may as well know something about it.

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, but I am not front-end guy .

Virtualization

Since ManageIQ manages virtualization platforms, I was 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. Which is kinda yuck from my perspective, but I was proud I did it.

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. And as I said before, not a front-end guy. I can possibly put together a simple mockup, but that is about it.

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. If you see this you are not seeing my flight stats banner because ad blocker blocked it.

Flying (I have gained an EASA Private Pilot licence including an ICAO English level 5 during summer 2018)

Foreign languages

Contact

I prefer straightforward communication.