A person who spends extra time in learning the tools, frameworks, configurations, and methodology in order to help improve his team’s complex work.
Someone, whose discerning comments make you say, “Now why didn’t I think of that?”
A friend who is never upset and is always happy and helpful!
We have gotten to know Jan ever since he began working with us in 2014 (you may read about him in our July 2015 edition of our company blog) so this time I first asked him about when he was a very young boy.
Actually, my path was pretty much straightforward. Since the age of 5 or 6, I was fascinated by computers. I started playing around with my father’s written off Sharp MZ-80 and … well actually, I never stopped with my first “programming” attempts around the age of 13 when I discovered scripts and macros in Microsoft Access, hehe.
I had other interests too, but at that time, everything about computers was dominating my life. During my years in the gymnasium (high school) when I began seriously thinking about the future I already had some experience with programming, so I didn’t need to think twice about enrolling in a computer science program at university.
One could almost say that now I’m living my dream.
A difficult question. I guess one of the worst things is that I succumbed too easily to unfair treatment from others. Instead of perhaps even being a troublemaker – which at least makes for good stories later in life – I hesitated too much about too many things.
The time spent with my best friend – I don’t have a particular event in mind, but we’ve known each other since the first grade, and after my high school years we even attended the same university. During our childhood, we spent countless days playing around the neighborhood, inventing new worlds in our heads, discussing matters of life and death, playing computer games and even programming together. Most of my good childhood memories revolve around this friendship.
To revive my musical attempts. I used to play a recorder flute as a child and music is still a very important part of my life. At some point, I’d like to get back to that, and sometimes I also dream about learning to play the guitar. But where do I find the time?
There haven’t been many jobs before OTGS. I started working here while still studying, and until then I took only smaller side jobs to earn some extra money. The most interesting one was doing PC service for clients in their homes. I didn’t earn much and it involved lot of traveling, but I had the opportunity to encounter many, many different people and even found new friends. It was also eye-opening to see how normal (averagely technically savvy) people work with computers and to learn of their problems, needs, and wishes. Because many of those people were seniors having very limited knowledge about the internet and modern technology in general, I learned to explain things patiently and very thoroughly, a skill that still comes in handy.
Me and OTGS… the love story started by coincidence at the first WordCamp Prague, after a presentation about WPML. :)
Three reasons quickly convinced me:
First, it was about plugin development for WordPress, which was a type of work I really enjoyed as a side job.
Second, Toolset is a universal solution for a wide scale of tasks. It empowers people. That means, anything done in Toolset can have a direct, positive impact on many other people instead of for a limited number (for example, when building a website for one client or writing a one-purpose application). It’s a very tangible way to invest one’s time in software development.
And finally, the job really matched my “special” needs. With my frequent travels and living in two to three places alternately, with my introversion and strong need to be in control of my own working environment, I was given the opportunity to work remotely. Even better, I was allowed to work part-time and would not have to neglect my responsibilities at university or elsewhere.
Of course, before joining, I had no clue how amazing OTGS actually is and what a great, friendly company culture it cultivates.
How has it changed since then? I would say that we’re constantly growing. Not only in the number of people involved, but the company itself is also becoming more mature. It’s better organized, workflows are improving, things are getting automated wherever appropriate and all this while staying, well, human – maintaining a mostly calm, supportive and kind atmosphere. I can feel the desire for progress and improvement and I see the results in every field. Personally, over the past three years, I feel like I’ve firmly planted my roots here.
Well, I can be an information sponge sometimes, and here I have plenty of opportunities to learn new things. Let me try to summarize it somehow: OTGS has allowed me to grow in all aspects of my personality, be it experience, knowledge, new contacts or all sorts of social skills. It also set the bar of my job expectations pretty high. Whenever I get a job offer from someone (usually from headhunters), I politely decline saying that I’m already happily employed and plan to spend at least twenty or thirty more years here. ;)
Currently, I have several responsibilities in the development team. Besides the actual development currently made in the Types plugin (which I’ll talk about later), I put a lot of energy into improving the code quality of the whole Toolset.
Some time ago, we introduced unit tests and thorough code reviews into our workflow. Like other code reviewers, almost every day I spend considerable time by looking at my peers’ code (merge requests) and offering them improvement suggestions. Code reviews can take a long time, but in the long run, they’re definitely worth it. During the process, everybody learns something new, and if we take the advice to heart, we’re continuously improving at what we do. Again, I believe that’s a very effective way to invest time and energy. :)
Related to this, we’re also constantly improving our continuous integration and automating as many things as possible. In Toolset, I ended up being the one to configure our repositories for CI and since then I am the one maintaining it. There are still many things that can be improved and I hope to find the time to implement these improvements in the near future.
It’s definitely the one I’m working on now, many-to-many post relationships. The basic idea was around longer than I have been in the company, actually. It is a very large and complex work, which was first carefully planned and now we’re implementing it step-by-step with Christian and Luis, my two closest colleagues.
After composing the specification document and later turning it into actionable tickets, discovering new potential problems, reiterating and prioritizing, we started with the underlying API, the “infrastructure” on top of which all the graphical interfaces are built. Now I continue providing support for that API and doing my best to ensure that all the parts are fitting together perfectly.
This project is my favorite because it’s the project, simply the largest creation I ever contributed to, and I learned so much from it. As I write this, we’re getting closer to a first alpha release, which is a very exciting time for me. We hope to get a lot of feedback from clients – and be it positive or negative, it will allow us to move forward.
There are many plans for what we need and want to implement, and after that, there are even more ideas and more dreams about other things we can do. Can’t wait, can’t wait!
That’s a difficult question – there are so many things to consider when applying for a job. If I should mention only one, from the perspective of an occasional technical interviewer:
One can learn an awful lot from your source code, really a lot of good and bad things.
Make sure that you have something a bit more complex to show if you’re asked for a code sample (a WordPress theme is usually not such a good material, but a middle-sized plugin will do). Make sure that your code is clean, adheres to some coding standards, is well-structured and documented, and that it makes a slightly obsessive person happy when it’s read. ;)
Simpler still: Do things properly, and show us you’re doing them properly. Then throw in some nice unit tests and you will make our hearts beat faster! Actually, I’m saying this from my own experience. When applying for the job, I was lucky enough that my previous work wasn’t bound by any sort of NDA and I could share the whole thing.
Well, it might be this one. :) Or when I managed to overcome my anxiety for once and held a presentation about code quality for around thirty people at the 2016 Annual Company Event.
Well, at some point I managed to slip a few quite stupid but annoying bugs into our plugins that made all the way it to a release. That was not something to be proud of. If there was something more embarrassing than that, nobody told me and I remain in a blissful ignorance. ;)
Hehe, if I could change it, the week would have not seven but seventeen days. I’m pretty sure I’m not the only one feeling this way. I could finally implement even those less urgent but nice-to-have features, and focus on refactoring as much as I want to. The sentence “let’s postpone this to the next version” would vanish from my vocabulary.
If I had the skill, I’d probably go for some sort of help profession – education or psychotherapy. On the other hand, it might be also interesting to try a train driver’s job, since railways have always been one of my interests.
I think my greatest challenges are kind of ongoing – I feel that I can improve many aspects of my life, and I keep working on that, step by step – managing and overcoming my anxieties, opening up to people, improving my health in general, and keeping the balance in life.
Also, when I’m not working, I’m gradually renovating two properties, a house, and an apartment, trying to keep a social life and also to relax from time to time. So, one of my greatest challenges is definitely time management.
But despite all the issues, there’s progress and I mostly remain optimistic and hopeful about the future.
To sing or dance, to be able to express myself better and without hesitation.
When I’m around my dearest and when they’re happy too. When I know I’m understood, accepted and respected. When I do something that matters. When there is no rush and the sun is shining and one can enjoy the simple joys of life.