Interview: Edd Yerburgh - Author of 'Testing Vue.js Applications'
I met with Edd Yerburgh, Software Engineer & Author to talk about his journey into the industry, the Vue.js London community and his book - Testing Vue.js Applications.
Hi Edd, Could you please introduce yourself to our readers?
Yes sure, my name’s Edd Yerburgh. I’m a Software Engineer at the BBC and also a Vue core contributor.
How did your career in Development come about?
At university, I studied International Relations & Politics, but while I was doing that degree I realised I didn’t want to do it as a career. So when I finished university I didn’t really know what I wanted to do. At the time I was working as a landscape gardener and while I was working I started to think about a website I wanted to build. I wanted this website to be a place where writers could publish stories, and users could rate them and tip writers if they found their writing enjoyable. I had this idea that I wanted to make a reality, so I started learning how to program in order to build the site. While I was learning to program, I realised I enjoyed doing it and I was good at doing it so I decided to switch my focus into software engineering.
How did you learn to become a Developer?
So when I was young, around 13 years old, I built a lot of websites, so I was already experienced with HTML, CSS, and a bit of JavaScript. When I started working on the site I needed to learn the underlying principles on how you create data-driven websites. Initially, I was just learning what I needed to know to make the site, this started with databases and how you connect to them in PHP. After that, I went off on a few tangents. After a few months, I found freeCodeCamp, which made everything a lot easier as it had a structured study plan. I was doing freeCodeCamp while I was applying for internships and this eventually got me to the level where I found an internship in London as a full-stack developer. From then on I’ve had a job as a software engineer while teaching myself about computer science in my spare time.
Did you start your career looking at Back-End?
So I was learning PHP because at the time it was what lots of people used to build their sites, so I wouldn’t say I was focused on it. I was just learning what I needed at the time. Then I fell into the full-stack React/Node developer role and that’s what I have been doing since.
What do you do for the BBC?
I work on the web version of iPlayer, which is a video streaming website. I work on features like autoplay, where you reach the end of a video and it automatically plays the next episode. Also, I work on improving the user experience, like displaying recommendations for users so they can find something to watch next. The team is self-contained, and we look after most of the architecture: like the AWS architecture, the caching strategy, and an Nginx reverse proxy, so I get to work on maintaining and improving that too.
Why Vue?
I started using Vue about two and a half years ago now. I wanted to make an app with it to see if it was as good as everyone was saying. As soon as I used it I found it fun to use, and quite intuitive too. I also found I was writing less code to produce the same functionality as I had in React apps. I’ve been using it ever since. I really like the single-file components and the reactivity system.
You wrote a book about Vue, can you tell me about that?
I had written quite a lot of content around testing Vue applications. The way that I got involved in the Vue community is that I made a testing library for Vue. I contacted the Vue team and asked if they wanted any help building an official test library and they invited me to join them and write it. So, I joined and wrote Vue Test Utils, which is the official testing library for Vue. While that was going on, I was contacted by a publisher who originally had seen my content, and they were interested in me writing them a chapter in a book they were planning to publish about Vue, so I had a meeting with them to discuss it further. After this, they came back to me with the idea of writing a whole book about testing Vue applications, since I like writing and had created the official library it made sense and seemed perfect for me. This all happened just over two years ago, roughly June 2017 when they contacted me.
What are your main contributions to the Vue community?
I wrote and maintain the Vue Test Utils library. I also maintain other libraries around the tooling for testing components. The main one is Vue-jest, which is for processing Vue single-file components when you’re testing with Jest (a JavaScript test framework).
Do a lot of Developers from the community come to you with questions?
Yes, I get quite a few people that contact me. I used to reply to them all individually and help with specific questions but now I ask people to post questions on StackOverflow or somewhere public, otherwise, I won’t answer them. It’s inefficient to answer private questions, as people often ask similar questions so it makes sense for me to answer questions in public to reach a bigger audience. I probably get questions at least once a week now.
Let's talk about your move across then, how did you do it?
I found the change very time consuming, I mean I enjoy Development so I didn’t find it difficult to spend a lot of my time outside of work learning about programming. It did take a long time, and when I got my first internship in London there was a lot to learn so I would stay late at work, and study at home. It was a startup company so people were working long hours anyway but I was working a lot as I had so much to learn to get up to speed, I really enjoyed it though.
How important is a full-stack role in a business?
Well in a startup it’s really important because there are only a few employees, normally you only have one or two products to focus on, and a full-stack Developer will be able to build out most of those products. So most definitely it is useful in a startup so that full-stack Developers can work on each part of the codebase rather than being just front or back end. In larger companies, you would ideally maintain that startup mentality where you are working quickly on a product and you don’t need to go through the hierarchy to get answers for every single query. If you do work in that way where it almost seems like its own self-contained startup it's still important to have full-stack Developers as you’re still working in an environment where you act quickly and have developers work on all parts of the codebase.
What makes a good Developer?
I think a strength in this industry is being interested in learning, like learning more about the platforms you’re working on. For example, if you work with Node you can be more productive if you learn how Node works under-the-hood instead of accepting it as an abstraction. Also, I think it’s important to be interested in other disciplines such as design & product.
I think a strength in this industry is being interested in learning.
Is there anything you're looking forward to in the Development world?
I find web assembly interesting. The idea that you can have a sandbox runtime environment that can run code in from across the Internet, I think that sounds exciting.
Where do you see Vue going in the long-term?
?There has been a new proposal for a new function-based API. That should be really interesting. It takes inspiration from React hocks, which I find are a good way to manage state in stateless components. So, the future for Vue is this new function-based API that ties into Vue 3. I’m excited to see how the community will adopt it.
What advice would you give on how to break into Development?
If you're trying to break into Development then I would recommend using a course like freecodecamp.com to learn in a structured way while building a portfolio. When you’re applying for positions you can show them your portfolio as proof of your work.
How important is a Computer Science degree in this industry?
So, I think that it’s not vital for many front-end and full-stack jobs. There are plenty of programmers who work high up in the abstraction layer where they are writing applications, and they don’t need to understand how memory management works, or the details of protocols like HTTP or IP. You can work like that for most of your career; however there will be difficult problems that you won’t be able to work on, and you’ll find some bugs difficult to solve. You need to learn the fundamentals of computer science if you want to work on problems like architecting a distributed system or creating a network protocol. If you didn’t do a degree in computer science, I recommend you learn the fundamentals anyway!
Thanks, Edd!
https://www.amazon.co.uk/Testing-Vue-js-Applications-Edd-Yerburgh/dp/1617295248