Photo by Bartosz Bąk
Read the interview with Filip Jędrasik, one of the youngest members of the Vue Storefront Core Team and already a Tech Leader of VSF1.
Filip Jędrasik is a young and talented frontend developer who has already started to coin his personal brand in the open-source community. He previously worked in NewFantastic, an eCommerce agency that was making most of their business using VSF. That means his VSF competencies were already really high when he joined the Core Team—which no doubt helped in his rapid progress to the position of VSF1 Tech Leader.
You are young but already not a newbie. What was your path to the IT world? You must have started very early...
For as long as I can remember, there was nothing more interesting for me than creating useful things. Building websites was an obvious continuation of a path I had always been on.
I started slowly, building simple blogs and forums. At first, I was clicking more than I was coding but that changed when my older brother showed me his school notepad with a basic HTML3 file structure. After a while, through trial and error, I managed to code a few simple pages with HTML and CSS. As I didn't understand how they were supposed to work, they only looked right on my own screen but that was still the moment when I realized that building sites would allow me to unleash my creativity. I suddenly wanted to learn everything about it.
I dived into the subject, looking for answers, and trying new things. I was building Trackmania tracks, games in RPGMaker, and simple interactive pages with Flash. I also automated certain mechanisms while playing Gladiatus with AutoIT, and created some programs such as a console calculator in C++. I also installed OpenSource MMO via www games on free hostings with TotalCommander.
I spent a crazy amount of time developing plugins for Counter-Strike 1.6 in AMXX, which I enjoyed because the results of my efforts were instantly checkable. From the current perspective, I find that this is the best possible way to encourage young people to code. Let them see the cool results of what they do because, let’s face it, the console itself is boring.
What area of programming drew your attention the most?
I've tried many things but I always return to the good old web development; however, I’m not limited to the front-end. I wanted to become a full-stack developer so I also worked with PHP and MySQL for a while.
In secondary school, I started to get freelance gigs. The most interesting one was for a pizza place that wanted to have an online ordering system with CMS for modifying the menu. It was a complex project and I learned a lot while working on it.
I also created a blog about BMX, which is my second passion. To do that, I dipped my toes into the WordPress ecosystem using some optimization plugins. I wanted to bring value to the BMX community, so - as an addition to the blog - I also created a Facebook page to make a space for posting and sharing longer articles inside the Polish BMX community’s Facebook groups. It was the best traffic source and, after 6-8 months, I could see the first results. Unfortunately, it cost me too much time and I was forced to choose between coding or preparing valuable content. I closed the website and returned to programming.
All this while you were in high school? It may seem that the school was just disturbing you.
On the contrary! That's where I made my first useful project! We had a desktop app for doing tests but using it was a nightmare. It looked horrible and worked just as badly, crashing several times during every session. I offered to create a better one as a Web App for the next week. My teacher probably didn't believe that I'd succeed but she also didn't want to kill my enthusiasm. As soon as I went back home, I started coding. I used Bootstrap 3, PHP, MySQL, and - for the first time - Vue.js.
In the next lesson, I delivered my solution. The teacher was very impressed and we used the app in classes.
After this project, I knew that I want to work with Vue.js, and I soon got the opportunity to dive into this topic. I broke my leg very badly and had only short, individual lessons and then long hours sat a home. I decided not to waste the time and started to learn Vue.js from Max's course on Udemy. I practiced it with some simple projects and, within a few months, I decided to look for a company that might want to hire me part-time. I found a small agency called Bunker Studio which focused on creating and optimizing WordPress websites, WooCommerce shops, SEO, and SEM.
I learned a lot there about WordPress stack and SEO and was able to create sites which achieved a 95+ PageSpeed score for both mobile and desktop. (I was also using other metrics like Pingdom, WebPagetest, and GTMetrix, to make them as good as possible). I also gained another opportunity to create apps with Vue but, more importantly, I learned about the communication between clients and programmers and how important it is to find mutual understanding.
You decided to stay with Vue.js after trying so many different technologies. Why?
Mostly, I just felt so good with Vue and I created two courses of Vue.js for the Polish Educational Platform as a freelancer. It was also a precious learning experience and I eventually took got a full-time job as Vue.js Developer at Newfantastic. I was hired to create online shops with VueStorefront 1 and Magento 2. I learned a lot about the whole VSF architecture but I was eager to know more. I applied to do the most challenging tasks and created several custom features which were later shared on Newfantastic's GitHub. In general, I was trying not to miss anything that might help me to develop myself as a programmer.
You’ve done all this without a formal education. Is it unnecessary?
You meet many ambitious and smart people while studying computer science, so it is never a waste of time. And fellow students - if you are lucky to meet ones with passion - will certainly deepen your knowledge and arouse your curiosity about programming.
However, from my point of view, having a higher education doesn't change the fact that you should still be proactive and learn by yourself. To become a good programmer, all you really need is persistence and a solid work ethic. But I do think that a good mentor (not necessarily a teacher) is a missing element in my journey to IT. I would have saved a lot of time if I’d had help.
Were looking for mentors in the open-source community?
I contributed to open source projects and found them to be a good way of learning, especially as most projects have issues labeled "good first issue". Newcomers can easily find something which they think they can solve and their code will be reviewed by better programmers who then give valuable (but free!) feedback. Moreover, when the code you contribute to an open-source project is okay, it becomes part of the solution and that is something of real interest to recruiters.
What's your favorite tech stack?
About the backend, I’ve tried PHP, NodeJS, and Go. I don't like PHP but I think that the general aversion to this language is a little irrational since version 7. If you like it, don't be intimidated by dumb memes ;)
While working with VSF, I am using NodeJS. I like this technology, and I believe it is comfortable for frontend developers as they already know the syntax. After hours, I am writing backends with Golang. I am inquisitive about this technology. When it comes to databases, I feel the most comfortable with MySQL. In VSF1, we have Elasticsearch. I already feel comfortable with complex DSL queries. For developing, I like using Docker Compose. For caching, I prefer Varnish and/or Redis (it depends). As a reverse proxy, I prefer NGINX over Apache.
Is the frontend your main interest?
When I was younger, I was more into the backend. I couldn't create a good-looking design, so I wanted to focus on the non-graphical part. Now, I am interested in the frontend, backend, DevOps, and databases but it is already too much. I want to grow within my current scope instead of making it bigger and bigger and becoming a jack of all trades. I recently became more frontend-oriented, mainly because Vue.js is so pleasant to work with!
Was it also the main factor of your engaging in Vue Storefront development?
I am a massive fan of SPAs. When I first saw it, I knew it would be awesome to one day create a website that smooth. Then I discovered Vue and was instantly sold :)
I realized that I can create that same smooth experience for eCommerce, which was great since - as I said at the beginning - I always wanted to make useful things.
Then PWA came. I believe this standard will change the way we built websites sooner rather than later, so I jumped on that train.
What are your sources of knowledge nowadays?
Social media is the first port of call. I follow tech influencers, developers that I admire, and the topics I am interested in. I also read a lot and I keep adding new titles to my "To Read” list. When I was younger, I liked Udemy as a way to learn the basics. Today, I prefer going through the documentation and writing my own projects. (Caution: do not take on more than one new technology in any project. It will be too much!)
How do you stay focused while coding?
I wear sound-proofing headphones. I like many kinds of music but I find LoFi to be the most focus-friendly. I also drink Yerba Mate every day; my favorite one is Rosamonte Elaborada Con Palo Tradicional. I order 5 kg at once :) Another great habit is refraining from reaching for the mobile phone during work hours. To make it easier, do not check it in the first hour after wake-up so later you won't feel the burning need to check your social media every 5 minutes. Just place the phone far from you or disable the internet in it if that is not enough.
It is also essential to properly prioritize the tasks. There will be a time when you will have so much to do that keeping everything in mind will be impossible. My advice may sound old school, but the simplest solution is a notebook and a pen. It’s more trustworthy than my memory and, in my opinion, is still better than any app. My notebook is always in front of me and there is no way I won't look at it.
Last but not least; take breaks. Your ability to focus is time-limited, so you should take regular breaks. For that purpose, I recommend Pomodoro.
What do you find the hardest part of your work?
Planning the architecture well enough to avoid rewriting some parts or making breaking changes in the future is, for sure, the most challenging aspect.
You are heavily focused on programming but it is not your entire life. What do you do in your free time?
My biggest hobby is still BMX. It taught me that nothing good comes easily, but the satisfaction after hard work is worth every effort. It also made me push my limits. I like street, park, and dirt riding, and - especially - dirt jumping on desert-like terrain. I love the positivity riding while listening to good music and then sitting around a fire with a group of friends who share the same passion.
In general, I like to be on the move and I don’t spend my whole day in front of the screen!
You are also a reader so can you recommend a non-programming book?
I’ve found "Factfulness: The Reasons We're Wrong About the World and Why Things Are Better Than You Think" to be very valuable. It is based on Hans Rosling's life and really is as good as the reviews and ratings suggest.
That's very true. Thank you for the conversation and good luck :)