{% extends "layout.html" %} {% load static %} {% block content %}

Marcel Plch

Work Experience

Comprimato Systems Ltd.

My first job during summer before I went to third grade of high school. Here, I have learned most of my C++ skills. I was working on multimedia codec live transcoder, where my most important role was to wrap a C library x264 into a C++ project. Aside from this, I was given small side-tasks like tweaking logger or fixing a small bug.

Red Hat Czech s.r.o.

Internship

Most of my experience overall comes from this employment. I started here as an intern in the Python maintenance team, where I made connections during previous year by working on open-source projects (PEP 547 and a semestral work in cooperation with Red Hat).

During my internship, I was working on patches for the cpython interpreter. This included bugfixes and working on Python enhancement proposals (later on as PEPs). Both PEPs I have worked on are linked below.

First PEP I was working on is supposed to allow running C modules the same way one can run a common .py file. This PEP had to be deferred until the internal mechanics are prepared for this.

The second PEP is also about C modules, here the goal was to allow the extension modules to implement classes the same way they work in Python. Before this PEP, C-implemented Python classes had no access to global module memory. This often caused hackish approach that usually resulted in memory leaks.

Employment

A year into my internship, I was hired as a RHEL/Fedora packager at the same team. My responsibilities included RPM packaging, bugfixing, software maintenance, rebuilding new versions and making sure nothing is broken.

Bugfixing was probably the most common responsibility. Aside from this, I was working on fixing CVEs (security vulnerabilities), submitting updates to the distribution, tweaking software to be FIPS-compliant and if there was enough time, I continued my work on my PEPs.

Comprimato Systems Ltd.

This company grew since the time I last worked here, I was hired as a Developer in QA, my responsibility was to work on QA tools for the main product of the company. The expectations from each side didn’t quite meet, so it didn’t take long before this cooperation got terminated.

Tramex Rail s.r.o.

I was primarily tasked with developing user web interface (Django) to already exisitng solutions and embedded firmware for new hardware.

The firmware consisted of Linux system + proprietary layers from manufacturers, on top of which we could build our solutions to meet customer’s (mostly České Dráhy) demands.

Education

Unfinished attempts

Conference Attendance

Skills

Programming

Designing algorithms and solutions to logical problems is a very fundamental concept in solving any problem in (not just) software. It’s programmer’s responsibility to design a sturdy and reliable code, as even the most careful user may get compromised, if the development process is underestimated.

Languages I know:

Project maintenance

Most of my work experience comes from Red Hat, which is a company selling support for their enterprise solutions. Selling support means a great effort being put into maintenance of the products.

I have worked at the Python maintenance team, which means I know the internals of the cpython interpreter and I am able to quickly learn a new library or Python project.

Operating Systems

As a huge enthusiast into open software, free operating systems are of great importance to me. Considering knowledge about internals of how computers work an important subject, I have learned many useful skills like system administrations, setting up permissions securely, working with sensitive data, setting a server up for a specific purpose etc.

Computer Networks

One computer may never solve a problem efficiently. Thus it is crucial to know how to make them communicate. By working with git, secure communication channels, webservers, multimedia codecs, etc., I have learned much useful information from practice (opening up sockets, securing them, selecting correct protocol…) on top of theoretical knowledge being taught at schools like IPv4 and basics of IPv6, TCP/IP, etc.

Public Speaking

One of my favorite semi-IT tasks is giving talks about topics I find useful or interesting. I often gave talks at some conferences and local Python meetups. I attended some Toastmasters sessions, so I could get better at public speaking. Unfortunately, before I could utilize these new skills, the COVID crisis terminated my public speaking for a while.

Interests

Contact

{% endblock %}