JSDayIE 2019: Get To Know Your Speaker – Paul Sweeney

Paul Sweeney: 9:30 am – How To Write A Bundler

Paul Sweeney is a Software Engineer at Accenture The Dock in Dublin, a multidisciplinary research and incubation hub, developing UIs for many innovative projects. Prior to Accenture, Paul worked as a Senior Software Engineer at Ericsson, leading development for the company’s UI framework, used in many Ericsson products. Paul was also the lead web developer for the 2018 Fjord Trends, which recently won an IDI Award for Digital Design.  

In the first of this series of Get To Know Your Speaker, the Stelfox team sat down with Paul Sweeney to find out how he started out in the industry, his motivations and what you can expect from his talk at JSDayIE 2019.

How did you first become interested in Software Engineering?

Both of my parents were engineers, so I’ve grown up with technology and strong engineering role models my entire life. My mother used to write software on the old punched cards, and I often saw my father writing software in Turbo C. I remember when I was really young, asking my parents what they were writing, and what the old software stuff they had lying about the house was about.

Video games were also a strong influence growing up. I was always curious as to how games were made, wanting to make games myself, and I was particularly fascinated by glitches and why they happened.

When did you know that it was your passion and that you wanted to peruse it as a career?

My first proper attempt at software engineering was when I was 10 years old. As part of a primary school initiative, I was selected to join an HTML course, which taught the basics of the language. I quickly picked it up and it was making a lot of sense for me.

During my spare time, as a hobby, I was using game authoring tools to make some simple games. At the same time, my mother and I used to fix computers for people. We would try and find the root cause of the problem, and there was always a huge sense of achievement when you finally defeated that stubborn virus. When I looked through college courses and saw a Software Engineering & Games Development course, I knew that’s exactly what I wanted to do.

What is your top-tip for excelling in Software Engineering?

Experiment, go beyond your comfort zone. Never take anything for granted, and always ask yourself how something works.

What is one of the hardest technical challenges you’ve ever encountered and how did you overcome it?

Probably writing a Virtual Scrolling Tree component. We normally see Virtual Scrolling Tables in web apps, and they’re fairly trivial to make. You just need to know the total number of rows, and where you are in your viewport.

A tree, on the other hand, is significantly more complicated. You need to know the number of children a node has recursively, taking into account all of its expanded children, even if those nodes are not visible in the viewport.

There was nothing online I could find to help me figure it out, and even looking over the code I’ve written for it, it’s still really difficult to explain. As far as I know, to this day, practically no component libraries provide the feature. When you Google “virtual scrolling tree”, my GitHub project will be in the top results.

For the newly initiated, what exactly is a bundler?

A bundler is a common tool we use in web development. Back in the old days, we used to ship JavaScript as several different files with several “script” tags in the HTML. This causes a lot of network requests and as browsers are limited in the number of HTTP requests they can make in parallel, it can cause a significant slowdown.

Bundlers help by packaging up our source code, into strategically combined files for optimal delivery to the end-user. There’s a bunch of other benefits that bundlers give us as well, such as managing the dependency tree, importing JavaScript libraries that use different module systems, and manage assets other than JavaScript such as CSS, and images.

What are some of the common difficulties people run into when building their first bundler?

That would be a spoiler. I recommend coming to the talk to find out! 🙂

What can people expect from your talk at JSDayIE 2019?

This talk will be a deep dive into the logic that goes behind a bundler, with plenty of code snippets showing a practical implementation. While I don’t expect people to head home creating their own bundler, I believe that having an understanding of how tools work under the hood, can help developers figure out what might be going wrong when they have an issue with those tools.

If anyone wants to do their own research before JSDayIE, what is a good resource for information?

The talk is aimed at those who have worked with bundlers before and use them on a regular basis. As long as you have used them before you should be fine. For people who might not have worked with bundlers before, there are some great articles on the web that go through the history of bundlers and why they exist. 

Here’s a couple of great resources:

https://nolanlawson.com/2017/05/22/a-brief-and-incomplete-history-of-javascript-bundlers/

https://slides.com/lucianomammino/unbundling-the-javascript-module-bundler-devit#/

There’s one part of Luciano’s slides where he asks the reader to challenge themselves by writing their own bundler (slide 66), that’s where my talk will fit in.

What’s next for you?

This is probably one of the hardest questions! I’m normally a go with the flow type of person and see where life takes you. One fascinating thing about life is that the smallest of things can have the greatest of impacts, so it’s often hard to predict the future.

Over the past several years, in the companies I’ve worked for, I’ve been helping developers around the world solve their problems, giving workshops and presentations on many different engineering topics. I want to continue to make life easier for my fellow engineers and to make engineering a fun career choice that everyone can see themselves in.

This will be my first talk in public, so I’m hoping it will go well and that it resonates with the audience, and if it does, hopefully, there will be more opportunities in the future!

Where can people find and follow you online?

You can find me at the following:

https://github.com/PepsRyuu

https://medium.com/@PepsRyuu

https://twitter.com/PepsRyuu

Tickets are on sale now for JSDAyIE 2019 but they are selling fast. Get your ticket here now to avoid disappointment.

RELATED ARTICLES

Five Tips to Help You Ace a Skype Interview

Jun, 6 2017

As we enter the era of the ‘Global Workplace’, one of the most significant trends in terms of ho...

Read more>

Phone Interview Tips: How To Prepare [Video]

May, 13 2019

These are the phone interview tips you’ve been looking for. If you are reading this, you’ve like...

Read more>

Phil Carr: Stelfox’s New Chief Operations Office...

Jul, 22 2019

The entire Stelfox team is delighted to officially announce that Phil Carr has been named our new Ch...

Read more>