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.
I started as an intern, but since 4/2014 I work full-time as a Quality Engineer on Red Hat CloudForms.
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.
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.
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)
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.
I have an experience with testing a complex product that integrates with other products.
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.
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.
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.
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.
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.
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.
I prefer straightforward communication.