You are a senior frontend developer very engaged in UX-related topics, but your experience is not limited to frontend. What was your career path?
Maya Shavin: I am not originally from a technical background. I have a degree in Economics and, when I moved to Israel, I started to study jewelry design. However, I always thought that I am not "artistic" enough to be a successful designer. Eventually, with a subtle push from my husband, I switched to computer science and that is how my career as a programmer started. When I finished my studies, I began to work as a back-end developer, but I was always attracted to the frontend. I like beautiful stuff and I like to see the effects of my work. When I had the opportunity to change specialization, I decided to take it.
It looks like a natural direction for you, given your interests in design?
Yes, I realize that backend developers can make more powerful stuff but I like to provide users with beautiful UI and make them happy :)
It is hard to keep up with the fast pace of design trends. Do you find that a frontend developer must also have non-technical skills?
Yes and no. Nowadays, in terms of frontend, most people think of JavaScript. It's the primary language but I firmly believe that a good frontend developer needs to know how to work with HTML and CSS as well. The performance includes these three combined issues. When it comes to design, a frontend developer doesn't need to have a designer's mindset, but it always helps to have some basic knowledge about users' behaviors, or user experience. For example, I can write an app using pure HTML and it will perform very well, but nobody will use it if they find the app flow hard to understand and not friendly enough.
A solid JavaScript background is, however, the foundation?
Basically, yes. Even if you are great at using particular frameworks like React, Angular, or Vue.js, without a solid knowledge of JS, HTML, and CSS, you will fail at some point. The modern JS frameworks are all about using these three elements; without them, it would be hard to process.
What makes you interested in Storefront UI in particular?
Accessibility issues have been neglected for years but have now become one of the most critical problems in web development. So, when Filip Rakowski told me that SFUI is focusing on the eCommerce sector and accessibility, I was immediately on board. Storefront UI, as a component UI library dedicated to mobile-first eCommerce, can cover this gap. It is a project based on a really great idea and has a huge chance of bringing a lot of benefits. Of course, there are plenty of UI libraries on the market, but ours is the only one that is fully customizable, easy to use and performance-oriented. Most of the libraries available on the market provide just one of these things.
Is it the first open-source project that you’ve been engaged with?
I had not much previous experience with open source contribution except reporting bugs. I decided to engage in this one not only because of the project itself but also because of the people who are developing it. At first, I thought I could help them here and there but, eventually, I decided to make Storefront UI into one of "my" projects. The core team gets along very well on both a professional and personal level which helped me to make that decision.
Has involvement in Storefront UI development helped you to grow as a programmer?
For sure! On the one hand, I have been able to exchange experiences with fellow maintainers, asking them whether my solutions are good or bad instead of googling it. On the other, I can count on in-depth code reviews made by people with a very different view on particular issues, which helps us all to keep our open minds.
Are open-source projects a good starting point for beginners?
Depending on what kind of starting point you are looking for. To contribute, if you’ve just started to learn JavaScript, definitely not. You still can help in preparing documentation and, in that way, learn about the system; however, beginners may feel lost, especially as open-source projects can be very complicated. If you already have experience in JavaScript, it is a different story. Then, you can pick one project that you are fond of, read the documentation, try to understand how it works, and start to talk with maintainers how to solve the problems they face. Or if you feel ready, just do a PR (Pull request) right at it.