Jiří Zelinka aka malyzeli

Skills Experiences Personal Contact

My Skills

Things I Excel At

My top skills I feel really confident in...

  • Java Programming

    Java is my base language I have the most experiences with. Especially since Java 8 the language just got awesome! Lambda expressions, functional interfaces, Optional<> and stream API solved many weak parts and made the language really convenient to use. Now I also want to learn to make applications in current version of JavaFX.

  • JavaScript/ES6: React + JSX

    If you asked me some time ago, I would say JavaScript is a mess. But when I discovered React and started exploring the world of ES6 and JSX, I quickly changed my opinion and fell in love with declarative way to build web components. I want to learn TypeScript in order to improve robustness of my code, and recently I also started experimenting with Scala.js.

  • Software Architecture

    I like my code to be well structured, reusable, extensible and also quickly understandable! I know how to use various programming patterns and I enjoy utilizing them to create well designed systems. I have experience designing smaller applications and I want to improve myself to be able to design large scale systems as well.

  • Problem Analysis

    I keep analysing and thinking about all kinds of systems I get in touch with, trying to come up with better solutions (both in computer and human world). I can discover weak or sub-optimal spots and improve the system to increase productivity and effectiveness. I just really enjoy making things better!

    - "Problems don't exist, only challenges do."

  • Mathematics

    I was born with passion for numbers. Calculator became my favourite toy, and prior going to elementary school my parents taught me to execute elementary arithmetic operations and to understand decimal system, so I wasn't limited to small numbers. Mathematics simplified learning of other natural sciences and ultimately led me to study computer sciences.

  • Linux

    I use Ubuntu for both work and personal stuff and I also manage couple of servers. Terminal doesn't make me feel uncomfortable, actually Z shell is my close friend and I can't even imagine having to do everything just by mouse!

  • Game Design

    I spent major part of my childhood playing various strategic and fantasy role playing games (both computer and tabletop). Apart from having fun, it helped me to develop strategic thinking and start learning english very early. I love creating new games and hopefully some of our side projects will become public soon!

  • Learning new Things

    Probably my most important trait is the ability to quickly adapt to different conditions and learn new skills. I always want to explore new possibilities and further extend my skill set.

Other Skills

Other things I know but I don't consider myself to be expert...

  • SQL

    I have experience with MySQL and mainly PostgreSQL database engines. I know how to design database structure to avoid redundant data, how to use foreign keys and how to write various complex queries.

  • Git

    I can't imagine doing any serious development without version control system. I know how to use common Git commands to manage project repository, and I'm used to develop using feature branch workflow. I also understand Gitflow and forking development models.

  • Apache Maven

    I use Maven mostly to manage project dependencies, but I also know how to configure it to automate various development tasks, database initialization and deployment.

  • HTML5

    I understand rules of the language, know how to work with basic semantic elements and how to put the website together, but I want to emphasize that I'm not a web wizard! I rather focus on the functionality and behaviour, leaving design to more eligible colleagues.

  • LESS

    Styling in plain CSS would be real pain. I prefer using LESS preprocessor. Nested rules, variables, operations and functions makes the development much smoother.

    I intentionally left LESS code of this website to be compiled on client side, so you can see the source code. Don't worry, normally I always compile before deployment!

  • REST

    I know how to work with REST API and also how to design one.

  • NPM and Webpack

    I use npm to manage my React projects dependencies and webpack to compile ES6 and LESS source files and bundle it for deployment.

  • C# and Unity 3D

    My dream is to develop games so I started learning Unity 3D and C#. Thanks to its similarity to Java I have no issues understanding the code, but I don't have good knowledge of standart libraries and the ecosystem.

  • Adobe Photoshop

    I can do basic image editing and photo manipulation.

  • Video Editing

    I'm able to create simple presentational videos - record the screen, cut and edit the clip, add captions, overlay images etc.

I Like

Technologies, frameworks and libraries I enjoy working with, apart from things listed above...

  • IntelliJ IDEA

    Incredibly intelligent development environment. Primarily built for Java, but it supports wide scale of other languages as well. When you get used to IDEA, you will see all other IDEs just as a slightly smarter version of notepad and you can never go back.

  • jOOQ

    Great Java library for SQL database manipulation. Java Object Oriented Querying allows you to use full power of SQL while providing type-safety and streamable output processing. There is an amazing flexibility compared to ORMs, you can write complex queries and fetch active-record-like (but still type-safe) objects created by mixing data from various tables.

  • Redux

    Simple and effective state container for JavaScript applications. I started using it when developing React app and quickly realized that immutable state, pure functions and unidirectional data flow is the future!

I Want To Learn

Things I want to improve myself in...

  • Scala

    This language seems like a mix of the best Java and ES6 features with couple of other awesome stuff added, thus offering a lot of interesting possibilities which I would like to explore.

  • JavaFX

    I want to know how to make desktop applications in Java. I know there are also other interesting alternatives like Electron, but I believe that Java is much better choice for critical application development.

  • MPS

    Very interesting platform created by Jetbrains, allowing definition of custom DSLs, extending existing languages and also designing of non-textual languages. See their site for more details.

  • Project Management

    I believe I have good ability to motivate people, but I know I need to get more experience in planning and estimates, so I could manage projects without trouble.

Experiences and Projects

BANDIT Platform

@ Blindspot Solutions

BANDIT is an agent-based computational platform, which is designed to evaluate scenarios with an accent on modeling of different types of illegal behavior and on the interaction between agents. For detailed project description see the project page.

This was my first large project, I did mostly implementation and later also designed some smaller components.

Tools and technologies used: Maven, Jenkins, Mercurial, Git, JIRA, JUnit, Jackson, Jetty, Logback, Scala, KML/Google Maps.

Apart from that I also started developing on Linux and learned how to manage Ubuntu server.

Production Management Application

Developing private application for business administration and workflow management - including order calculations, regular customer analysis, order status tracking, resource calculations and inventory, logistics improvements, etc.

I gained a lot of experience with entire project lifecycle - started consulting the product specification with client, researched available technologies and selected suitable tech stack, designed the software solution and started with the implementation.

Since it's my first "full responsibility" experience and I started working on it alone, naturally I made many mistakes - fortunately it wasn't critical and I could learn from them and further improve myself.

Tools and technologies used:

Web client - React.js, Redux, HTML5, LESS, Webpack, Babel, ESLint.

Server - Spark Java, jOOQ, Jackson, Lombok, Maven, PostgreSQL, Ubuntu.

Support - Git, Redmine.

Client/customer: PrintPoint s.r.o. - Tiskové Centrum

My Personality

Character Attributes

  • Perfectionist

    I'm idealist and I always strive for the best possible solution. I'm not able to do things in "fastest and cheapest" way. I believe the world could be much better place if everybody tries to do their best!

  • Team player

    I'm social. I like to help people. I like to teach and share. I enjoy working in a team. I believe single person can't ever know anything, that's where your friends come in to fill the missing parts.

    - "You can achieve virtually anything when you gather the right people around you!"

  • Optimist

    I prefer looking for opportunities instead of seeing obstacles all around me. I like to motivate and inspire people to work for better future.

    - "Let your desire for success outweigh your fear of failure!"

Hobbies

  • Music

    I play guitar, bass, keyboard, flute, and I like to experiment with various other instruments. I was never fond of learning songs, I always preferred jamming and improvisation instead.

  • Nature

    I'm nature sciences geek, I was always into biology, chemistry and physics. I'm interested in herbalism and I have experience with breeding various species of tropical insects. I also enjoy working in the garden.

  • Travelling

    I like exploring new places, new cultures, and meeting people from all around the world. Each travelling experience has enriched my life with new point of view.

  • Health

    I'm interested in healthy lifestyle including food, exercise, meditation and relaxation. In future I would like to study Chinese medicine and return to martial arts training. I believe that wealth comes from health.