While It’s Compiling: Skills Matter interviews Karolina Szczur

Karolina Szczur is a designer and developer at &yet and contributes to various open source projects such as NodeCopter, AmpersandJS and Otalk.

We caught up with Karolina ahead of her talk at Fullstack: The Node and JavaScript Conference where she will be looking at up-to-date front-end tooling and analysing alternative approaches to compiling, building and automation processes. Here she gives us an insight into her talk topic, the iterative nature of design and her views and thoughts on the Open Source community.

karolina-szczur


Your recent work includes roles such as the UX Lead at Nodejitsu, writer and editor at Smashing Magazine for the mobile, coding & design sections, and Front-end Developer/Design Lead at XHTMLized. However, you started out doing photography, via psychology, anthropology and the history of art among other things – what first drew you towards development and design?

Honestly, I don’t recall a specific aha moment. I’ve always been drawn to art and photography—we used to have a darkroom at home when I was younger. As soon as digital photography went somewhat mainstream (or at least it became more accessible to the layperson) I started my adventure with editing in Photoshop 5 (yes, it was the 90s). That quickly led to trying to do more than adjust the colours or exposure. It was at the time when GeoCities was at its peak, so my photography passion escalated to “What if I could have a website too?”. I’d say it was rather natural curiosity and organic growth of interest in interconnected fields.

At the end of a recent article you wrote that design “is by nature an iterative process”, and that contributions from others is essential. Considering your experience in front-end design, can you take us a little further into this iterative process?

It takes an extraordinary amount of craftsmanship to create something that’s in any way timeless. Great design and front-end don’t happen instantly. Research, prototyping, implementation and testing take time. But trying to chase perfection before launching only prevents shipping. Like many designers, I’ve struggled with attempting to achieve some arbitrary ideal, but that kind of thinking doesn’t foster creativity.

Content we design for often changes, sometimes drastically. Web standards evolve. We can’t rely on predictability of either the medium or the technologies we have at hand. Working on the web’s rapidly evolving platform means our work will always be an iterative process, whether or not we choose that. There will always be something to improve or fix and we have to be ready to embrace the absolute lack of perfection.

There has been a lot of discussion lately surrounding the importance of shipping—iteration is empowering because it removes the boundaries of judgemental and perfectionist ideals. Collaboration and contributions from others take this idea even further by allowing room for constant feedback, broader perspective, and fresh ideas.

When working on a project, how do you ensure you maintain ownership whilst still benefiting from the input of others?

Ownership is essential. It doesn’t even have to be designated (“This person is the owner”). Often I see individuals stepping up as leaders. In a way, every single person involved in a certain project is an owner—they are all responsible for its execution and success. When everyone feels like that instead of irrelevant cog in a giant machine, feedback happens naturally.

Building up fearless candor and honest feedback requires zero judgmentalism and allowing others to step up. Making everyone a leader doesn’t take ownership away—it helps us to be better when working towards a mutual goal.

From a practical standpoint: ask for specific input as often as you can and enable anyone to express their opinions if they are willing to do so. Kill bikeshedding.

In your upcoming talk at FullStack you’re looking at the dangers of introducing too many tools in the development process, making everything more complex and time-intensive. How can you tell when your work-flow is as optimised as it’s going to get?

The topic of tooling is as opinionated as debating the superiority of programming languages or promises over callbacks. Automation and optimisation are crucial, both for complex, bigger projects and the small ones—they let us focus on tasks that simply cannot be automated and bring desired levels of uniformity.

The questions I like to ask myself are: Can it be faster? Can I use less tools and more natively available utilities? And last but not least—is it understandable and simple enough to empower my team members and collaborators? I believe that all tools are ultimately created to make our lives easier, thus making sure that it doesn’t introduce cognitive overhead for others is crucial. If it’s standardised, fast, reliable and comprehensible for others—I know I’m home.

It seems that a lot of this comes from the work you’ve been doing on standardisation of front-end tooling at &yet. Can you tell us a little bit more about &yet, and the work you’re doing there?

I’ve been working at &yet for over a year now—it’s been a very humbling experience that allowed me to grow both as a professional and as a person. I’ve been mostly focusing on internal projects, be it our own products or processes for optimising design and development.

In the last months I’ve been busy with a larger endeavour I like to call front-end standardisation. With a hugely multidisciplinary team, where almost everyone can code at some level, it’s important to create an environment that not only enables learning good patterns but also fosters code consistency:

“All code in any code-base should look like a single person typed it, no matter how many people contributed.”

These efforts been mostly focused on creating a code guide and pattern library in a form of small, modular CSS framework. It’s definitely a very challenging project and requires a lot of collaboration and feedback from team members. Standards work is never one person creating arbitrary rules to follow, but an collective effort for reaching consensus of optimal approaches suitable for given teams.

Next adventure? Improvements to our WebRTC-based video chat app— Talky.

&yet describes itself as an Open Web Company, and on your own website you say that you strongly believe in Open Source. What makes Open Source so important in your opinion?

Open Source was always at the core of our interests—we’re strongly involved in the Node, XMPP, WebRTC, and JavaScript communities. We support people who write and maintain libraries that we use on Gittip and we contribute and share everything we can.

It aligns perfectly with our people first approach to everything we do. After all, writing software or designing is just a means to an end. If we can enable others to make the world a better place even slightly by open sourcing our work or paying others to do so, then we will. We are building these things and working on standards for the good of all of us. If that doesn’t make open source important then I have no idea what does.

karolina-szczur-blog-post

&yet have been involved in creating a few community events themselves, and you’ve spoken at conferences such as JSConf EU, the Future of Web Design in Prague and the Frontend Conference in Zurich, amongst many others. How important is the community to the future of Open Source?

The dictionary definition of Open Source focuses on the openness and public availability of the source code. I want to go a little bit further—without people, Open Source dies. With collaboration and contributions projects flourish.

I don’t want to undermine the quality or livelihood of one-person projects (there’s plenty of those on npm) but we’ve learned the need for a community with our recent endeavour, AmpersandJS. We got quick traction and many contributors—one of them already added to the core team. One day we were debating the accessibility of the role attribute and got almost 70 comments from people deeply involved in that matter. We wouldn’t be able to improve the project and push it forward so fast without the help of the community.

Maintaining an Open Source project is a job—it takes a tremendous amount of time and, in a semi-direct way, money. Finding and even fixing bugs is so much harder without others using the software in the wild. I can’t see the future of Open Source without the community surrounding it.

Considering the conferences you’ve been involved in have taken place all over the world, do you see yourself as part of an intrinsically global community, or has your experience been that developers’ goals and missions change depending on where they are?

The idea of global community still feels a little bit like a dream to me. There are a lot of subcommunities, which on one hand is completely natural (the design community, the JavaScript community or the Ruby community) but when those communities become too exclusive and the barriers to entry become discouraging for newcomers it’s hard to talk about a global population of people involved in tech. There’s not only division in specific fields of interest or programming languages but also cultural differences—The Bay Area is so much different from the fairly small town of Kraków where I live, so I can see how priorities could shift depending on the location.

Nonetheless what I would love to see is less judgmentalism, more openness towards beginners as well as inclusivity towards people of colour, women, and other minorities, including people for whom English is not their first language. I certainly don’t feel excluded nor do I try to categorise myself as a part of a certain group, but until we all feel fairly comfortable to say that I can’t see a healthy, global community, there’s still work to do to make everyone feel welcome.


While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.

Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.

fullstack-2014-1000x150px

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s