DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Cover image for I maintain webpack, ask me anything!
Sean Larkin
Sean Larkin

Posted on

I maintain webpack, ask me anything!

I'm Sean,

I maintain webpack.

I work on Microsoft Edge DevTools.

I love 🐔s.

Ask.

Me.

Anything.

:-D

Top comments (113)

Collapse
 
ben profile image
Ben Halpern

If someone wants to become a core contributor on a popular open source project, what would you recommend they do to get started on that path?

Collapse
 
thelarkinn profile image
Sean Larkin • Edited on

Maintaining a project In my opinion takes a lot of passion and love for it and it's users. So with that in mind, I'd say picking a project that you really really really enjoy.

I love webpack, the experience it gave me, and most days I can't stop obsessing about it πŸ˜‚.

Collapse
 
thelarkinn profile image
Sean Larkin

I guess to answer the second half is: show whatever existing team that you want to help and build and create the relationships with them over time. Gaining trust is part of how new responsibilities are handed over to potential maintainers.

Thread Thread
 
ben profile image
Ben Halpern

Great advice. How do you keep up the motivation to keep contributing to the project?

Thread Thread
 
thelarkinn profile image
Sean Larkin • Edited on

What motivates me more then the project itself is the people behind it.

A great example. I've been working to empower and create communities outside of the US for webpack. Specifically, Africa. I had recruited some very passionate and excited individuals who wanted to lead the efforts to help grow and teach the communities there and represent their voices (in many places where I cannot). So we met and talked about a few things and some take away items. This morning, I got this image in my twitter DM's:

webpack-africa's logo

This left me with watery eyes and a sense of overflowing joy and pride just being able to know that there are people out there who are just as passionate and excited to help grow and build a more vibrant, diverse, and inclusive community, even globally. At the end of the day if I can change one persons life for the better, I've won. And open source and the incredible blessings it has provided me, have been the perfect vessel to continue that mission.

Collapse
 
cassidoo profile image
Cassidy Williams

How did you communicate to your employer that you have outside interests/pursuits that have nothing to do with the company? Along the same lines, how do you manage your time between your day job, your OSS maintenance, and your other interests?

Collapse
 
thelarkinn profile image
Sean Larkin

When I was at Mutual of Omaha, I was very up front with them about my passion for maintaining webpack, working on open source, and speaking at conferences.

Because of that honesty I think that they were more flexible and generous with the amount of time I could spend on OSS and speaking.

How do I manage my time? Honestly I don't whatsoever. There are some days I feel I'm constantly under water. (Which may sound scary, but in fact, it's an open source authors greatest asset for new contributors as long as you work hard no matter what you do). If people see me drowning, they always reach out their hand. Many of our most active contributors we're drawn to us this way.

Collapse
 
markerikson profile image
Mark Erikson

Sean: can you please tell me, in great detail, exactly why React is better than Vue? :)

Collapse
 
thelarkinn profile image
Sean Larkin

Mark to me, I'll boil it down to a few things.

Ecosystem: Vue is a grass roots community driven project. They have no business incentives. Because of this, we see things like:

  • Supported router - This is maintained by the Vue team, doesn't have breaking churn, and is an incredibly nice experience.

  • Solved completed and maintained state management - Because of this it works seamlessly with a Vue app. Most of us know...a React app looks completely different then a React+Redux app. or React+StateManagementLibrary app.

  • Great interaction with community best practice build tools (like webpack). Code splitting in Vue takes one line change.

import Component from './vue-component.vue';

to

const Component = () => import('./vue-component.vue');

Its these kind of small and juicy details that screams "We give a shit about the people who use our project and they are always first when it comes to the innovation we bring".

Syntax: Single-file-components are the future of dev in my opinion. Not only are they backed by webpack to create a killer Hot Module Replacement experience out of the box, but they also allow you to write the JSX to have fluid composition if you need to. Most cases I've found that the familiar and rich system that Vue single file components provides is usually enough for me in most cases to never have to write JSX.

Tooling: The tooling behind vuejs for vscode etc is incredible.

Collapse
 
thelarkinn profile image
Sean Larkin

A feature difference that sets them apart is their eventing systems also and "dependency detection".

So instead of having to use a bunch of componentWillUpdate, Vue automatically tracks what state has changed and saves the users the cost of needed to do these kind of things in React.

See here:
Reactivity in Depth

Oh and. There is nothing you cannot do in Vue, that you can do in React.

  • JSX? Check
  • HOC? Check
  • Jest/Enzyme? Check (Enzyme => Avioriaz)
  • Context? Check

So to me it's like: If you are going to choose React as a project, just use Vue instead!

Thread Thread
 
thelarkinn profile image
Sean Larkin

UPDATE: I just realized you asked why React over Vue. lol. In which (comments below have shown me its vice versa). Sorry!

Well I can say this:

React right now is better then Vue in only one way that I can think of. It's ecosystem has a pure native solution that is pretty strongly maintained. Right now Vue has Weex and NativeScript, but I'd like to see Vue/Evan write an official Native Renderer. However that would take a lot of time, and probably not on the roadmap for vue.

Thread Thread
 
markerikson profile image
Mark Erikson

Yeah, I figured you either deliberately or accidentally misread the question :)

Collapse
 
rhymes profile image
rhymes

I love how he asked "why React is better than Vue" and you answered "why Vue is better than React" :-D

Thread Thread
 
jimschubert profile image
Jim Schubert

Easiest way to be right is to answer the question you wish was asked.

Collapse
 
darjun0812 profile image
darjun0812

As someone unfamiliar with Microsoft Edge, what sort of innovation is the browser bringing with it?

As for the agriculture and farming world, are there any innovations there that you are particularly interested in?

Collapse
 
thelarkinn profile image
Sean Larkin

Right now, as we speak, we are working on Remote Desktop Protocols and Remote Debugging APIS. This really excited me because it opens up the opportunity for us to debug edge on every windows device. Xbox One X, Hollolense, and Everything!

So that testing story will be fun playing with the super secret hardware dev kits 😎.

If I had any it would be an easy way to harvest pumpkins. Like, common. We need that.

Collapse
 
tal_rach profile image
Rachel Tal

Hey Sean! What or WHO got you into farming?!

Collapse
 
thelarkinn profile image
Sean Larkin

Well Ive always loved working with my hands. So woodworking, gardening, etc. I'm even obsessed with collecting Orchid Species.

Collapse
 
tal_rach profile image
Rachel Tal

That's awesome! Have you ever incorporated this into developing?

Thread Thread
 
thelarkinn profile image
Sean Larkin

I haven't yet. Haha although looking at all the hobbiest orchid, woodworking, etc forms, they all are pretty painful interfaces and experiences. I'm sure it would be a great way for me to chip in to an org like that.

Thread Thread
 
functionalstoic profile image
JasonSooter

It's funny, I grew up as a chicken farmer. Imagine 3 large barn-ish buildings with 35k-50k chickens in them. There are obvious reasons I moved on. I now enjoy getting eggs from our neighbor 3 doors down. Ha!

But I in my first 10 years of working I was a Kitchen/Bath/Home remodeler with cabinet/various woodworking projects thrown in.

The last 5 years I've been in software and web development.

We recently bought a home built in the 1920s and I find there are many correlations between software architecture and well-built home architecture. In a home, you have various systems. Electrical, Plumbing, HVAC, Structural framing, etc. Those all easily translate into a well-built software application. The planning required for both is just so similar.

The similarities become even more hard to distinguish with a poorly built home or software application. The lack of planning for how those systems will work together as a cohesive system becomes really problematic.

Collapse
 
michaelgv profile image
Mike

Did you have any other names for Webpack before it became Webpack? How did you come up with these names? I've personally nicknamed Webpack on my system "Ninjastuffs" because it does a heck of a lot faster than I've seen with others - so it's ninjastuffs to me.

Collapse
 
thelarkinn profile image
Sean Larkin

Yes before webpack Tobias Koppers the original author called it modules-webmake. See the bottom of our github Readme for the full story behind webpack. 😍

Collapse
 
mrdanack profile image
Just buy a Mac.

We use webpack with watchers to continually rebuild css + Javascript. The project we're working on actually has multiple sites each with their own webpack config, so we actually have one webpack worker running per site - currently that means 6 different workers all watching the files.

This is putting quite a bit of load onto our dev machines - and we'll need to add more sites as time goes by. Do you have any advice on how we can keep the ability to have the js + css built continually but without adding too much load to our boxes?

Collapse
 
thelarkinn profile image
Sean Larkin

It seems like a unique challenge. Whenever I try and figure out ways to optimise webpack I boil it down to "how can we do less work". Tools like DllPlugin are a great approach to this and may work for you. If not, put in a github issue! We want to help you innovate these kind of challenges.

Collapse
 
luispa profile image
LuisPa

What are your responsibilities at Microsoft?

Collapse
 
thelarkinn profile image
Sean Larkin

I am a Technical Program Manager for the Web Platform Team. Edge DevTools is team inside Web Plat that I am on and I'm responsible for helping create a new image, engagement strategy for Edge DevTools.

In addition to that I'm also responsible for landing, managing, defining new features for Edge DevTools. Also working with Standards Bodies on features that every browser should be conforming to.

On the side, since webpack is the number 3 most used JavaScript OSS project at Microsoft, I'm also working all the time with internal users and helping ensure their challenges and unmet needs are solved. Currently as we speak I've connected one of our Outlook Web team engineers with our project and we are working on making some significant build time contributions to the webpack also.

Collapse
 
mohamed3on profile image
Mohamed Oun

Hey Shaun! Can you give us a brief history of your software career to date?

Collapse
 
thelarkinn profile image
Sean Larkin

Haha. It will be very brief. (This is taken from my AMA page on GitHub

After I graduate college with a Parish Music degree, I moved to Nebraska where my wife is from, and while looking for a viable career (protip: unless you are extremely talented, you cant do much with that degree), I decided to take a technical support role at MacPractice, Inc. This is a SMB/Startup that make native Mac medical management software.

At heart, I am an extremely personable person, and quite the talker, so after about a year, breaking all support records, a couple awesome raises and becoming the most skill support representative for this software in house, I hit a brick wall.

One day I realized that, constantly, I was having to work people around the same software defects in our product. I wanted to fix peoples problems, rather than work-folks around them.
This was the motivation initially.

So I started learning programming by applying my work directly to my support role. First started by learning how to write AppleScript to use our computer softphone and automatically dial support numbers with just a keystroke.

As I learned it more I started to speak with developers in-house (Obj-C) and one suggested I look into Ruby.

I learned as much as I could from ruby, and really learned to love the non verbose, duck typed language. I realized quickly that this was something that excited me, and that I could pickup.
I expressed interest in becoming an Obj-C engineer and was asked to start learning it. After another 1.5 years of side by side tech support (meeting all quotas) & QA'ing software, I was learning Obj-C.

I then lobbied my boss and engineering VP if they would consider me promotable to this role.

I was told yes, but was given a series of tests to accomplish before it would have to happen. After a few months of dragging their feet on the approval process, I had completed the tasks (implementing a live chat system (combination of OS ViewControllers, WebViews and JavaScript)), and earned the promotion.
Then I had the opportunity (and now title), to work in a few other places, drop in my lap.

tl;dr look at my linked in profile for the rest of my job history.
I've now reached my 3rd official year of programming and 2nd full year of ft JavaScript. At this point I was working at mutual of omaha, and really this is where my open source experience took off being apart of webpack, and other projects.

But that is really as much to date as I can think of.

Collapse
 
maestromac profile image
Mac Siri

Do you use Edge as your default browser? Should it also be my default Browser?

Collapse
 
thelarkinn profile image
Sean Larkin

I do use it as my default browser!!! What has blown me away is how fast improvements get made for things like performance, stability, etc. And so I've really enjoyed Edge since the last insiders build that shipped!

As for you, try everything once, and then use what compelles, and engages you the most.

Collapse
 
andy profile image
Andy Zhao (he/him) • Edited on

I've heard you are a farmer + developer, which is literally my end game.

How did you do it?!?

Or more specifically, if you'd prefer, what similarities in both do you see and how does one help the other?

Do you find farm work and programming compatible in terms of scheduling, or do you often have to choose one over the other?

Collapse
 
thelarkinn profile image
Sean Larkin

When I was still living in Lincoln, Nebraska the laws for owning birds and chickens is pretty flexible and loose.

So it only took owning a house, building a coop, and filling it with birds. I might say urban farmer.

Collapse
 
getdanarias profile image
Dan

What is your favorite chicken breed and why? :)

Collapse
 
thelarkinn profile image
Sean Larkin

Ugh really hard question. Instead I'll just put a few of my favorites.

Ayam Cemani - Pure black breed because of genetic mutations
Black Copper Marans
Mille Fleur d'Uccle Bantam
Speckled Sussex

Collapse
 
getdanarias profile image
Dan

Ayam Cemani are pure beauty! They look like ninjas!

Thread Thread
 
darjun0812 profile image
darjun0812

Ayam Cemani is definitely my favorite!

Collapse
 
jess profile image
Jess Lee

thank you.

Collapse
 
peter profile image
Peter Kim Frank • Edited on

Hey Sean, thanks for doing this AMA!

Can you expand on your love of πŸ”s and farming in general?

I feel very disconnected from agriculture and animals β€” sitting here behind a computer all day β€” so I'm curious about your experience given that you have a career in tech alongside this entire other perspective and life experience.

Collapse
 
thelarkinn profile image
Sean Larkin

Well I think the connection really likes with being in tune with the source. The source of the food we eat. The source of the code we write. I also wanted to breed chickens. they are perfect specimines for genetics studies as their young hatch in 21 days. So it's awesome to see and study how chicken breeds have evolved over time.

Collapse
 
jess profile image
Jess Lee

Sean!! Two Qs for ya:

  • Have you dabbled in hardware since I/O?
  • What's your approach to pair programming?
Collapse
 
thelarkinn profile image
Sean Larkin

OMG NO IVE NO TIME 😭😭😭😭😭😭

My approach is to foster an environment that enables the mentee to go from Deer in Headlights, to brave enough to try anything and ask any questions. Most of the time I've seen the problem with paired programming is that it puts developers in either role in a nervous state and doing anything I can to remove that is super effective in the learning experience.

Collapse
 
ben profile image
Ben Halpern
Thread Thread
 
thelarkinn profile image
Sean Larkin

This may have been me. But then, I see something and I'm like ILL DO THAT SOME TIME.

Buys $50 of components of Ali Express.
Puts on shelf

Collapse
 
andy profile image
Andy Zhao (he/him)

Any guidelines or resources for turning an existing project to an open source project?

Collapse
 
thelarkinn profile image
Sean Larkin

Not specifically, however I will say this.

If you open source something. You need to be prepared to foster growth and love the users and community behind the project. And no matter what, anything you do for the direction for that project should be to help drive your community forward.

Collapse
 
andy profile image
Andy Zhao (he/him)

Awesome, thanks for the advice.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.

Why You Need to Study Javascript Fundamentals

The harsh reality for JS Developers: If you don't study the fundamentals, you'll be just another β€œCoder”. Top learnings on how to get to the mid/senior level faster as a JavaScript developer by Dragos Nedelcu.