Skip to content

Juho Vepsäläinen

SurviveJS Oy

Juho is behind the SurviveJS effort. He has been active in the open-source scene since the early 2000s and participated in projects like Blender and webpack as a core team member. Juho lives in Vienna, Austria, and was chosen as the Finnish Code Ambassador of 2017 by Blue Arrow Awards and runs React/GraphQL Finland conferences.

Inteview image for Juho Vepsäläinen

What led you to become a developer?

I think I coded my first programs using BASIC when I was eight but I wasn’t serious about programming. It was more about games and fun for me then. After I finished my vocational studies (electronics + abitur), I made it to the local university.

My initial plan was to study more electronics but then the program I wanted to study was changed to something less interesting for me and I chose software engineering as my field of study instead. During these studies, I decided to take a Summer course on computer graphics. You could choose a 2D and a 3D application to learn. I decided to go with the GIMP and Blender.

Blender didn’t make any sense to me at all first given it uses a tiling user interface paradigm and it’s filled with functionality. I came by excellent video tutorials which helped me to break the learning barrier and eventually become a power user and a core developer of Blender.

After using Blender for a while, I began to see small things that could be fixed or improved. Given my background in C due to my studies in electronics, it wasn’t a big problem for me to begin to compile the application and begin to submit patches to the project.

Getting involved sparked my career in open source and I travelled a lot and met a lot of interesting people as a result. I am still on this track even though I develop open-source less these days than when I was younger.

What’s your setup and development environment?

I don’t have one fixed space I work. The above is my newest setup especially when I need table space. The chair might need an upgrade. Sometimes I go to a co-working space to work with my friends and I am writing these replies on a sofa while sipping tea every once in a while.

I transitioned to Visual Studio Code last year from Sublime Edit. Although it was rough at first, there’s no going back. Given I have past in Vim, I use each editor with Vim bindings. In a terminal environment, it’s handy to fall back to Vim so those are good skills to have.

I use my mobile phone mainly for tracking fitness and tasks (shopping, things to do) which I then sync with OmniFocus (my main system). Sadly there’s no OmniFocus for Android yet. My next phone could be an iPhone for this reason alone. I have Slack on my phone primarily due to friends but I would prefer to remove the app as it hogs attention and battery.

What’s your favorite stack to work with?

I work mainly with Node.js and GraphQL on the backend and React on the frontend. I use my own home-baked solution for static sites. The outcome is static HTML that’s progressively enhanced with JavaScript sprinkled on top for interactive elements. Although it’s an old skool approach, it avoids a lot of accidental complexity and seems to fit the use cases I have in mind.

My plan is to replace the homebaked solution with another one where I push the rendering logic to the server and then query the server for a site against a context for GraphQL and layout/component definition per path. Doing this will integrate the site generation step to the API itself and simplify the overall architecture.

What are your top 5 go-to repos?

It’s difficult to say top five as my usage of GitHub is so varied. At the moment, I spend time with TypeScript, type-graphql, graphql.js, React, and Express although I am considering migrating away from Express to either Koa or Fastify as those are more modern, and even faster, alternatives.

What technologies are you most excited about now?

GraphQL. Organizing the first GraphQL Finland last year gave me an appreciation to the innovation happening in the space. It’s interesting for me to notice that I am more backend-focused again. I believe a wider adoption of the technology will make us rethink frontend and its responsibilities again.

You could say we are discovering good old ideas and applying them in new ways. All this will have implications on how we develop applications in the future.

What does your ideal workflow look like, from messing around to production?

For me, it’s about requirements. The problem is, you know almost everything you need at the end of the project and likely not enough in the beginning unless you are doing something you already did before. As you go, you discover more requirements that will shape the design. You also should be careful not to over-engineer as structures may need to be changed over time.

I think systems are grown and the big challenge is maintaining this growth in a sustainable way. When it comes to production usage, that’s where development practices come in. If you deploy features straight to production, you will have a different process than in release trains (a release per week, month, or other period). You will approach the work differently if you know it will go live instantly even if it’s behind a feature flag.

What if you designed each feature of your application to be removable from the start? Would your architecture look different? I think it’s these kind of thoughts that drive to the difference between monoliths and microservice approaches.

I might begin from a monolith but split it into smaller entities over time as I know what I’m doing but starting from micro might be another way to consider in the future.

What are you currently learning?

I am learning how to organize technical events efficiently. Last year I organized two and this year might include the responsibility for three events. As the amount goes up, the efficiency has to go up as well. For this purpose, I have to develop technical infrastructure to support the process and quite a bit exists already.

What project are you most proud of?

It’s likely the SurviveJS effort I started years ago. It’s a series of technical books and technical interviews. It has also led me abroad and given me a lot of opportunities I couldn’t even dream of. I think there’s still more to come.

What are beginner developers not learning that is critical in this day and age?

It’s difficult to generalize but I would say instead of running after whatever is hyped at the moment, it may be more fruitful to focus on the fundamentals of software engineering as that gives more long-term benefits. Programming is only a small part of the work.

If you consider it carefully, engineering is a social effort where you collaborate and create with other people. Therefore putting emphasis on improving your communication capabilities can multiply your impact. Learning to speak in public, write, and work with other people are at least as important as learning to code.

What tech challenges are you facing at your company?

My main challenge related to React Finland and GraphQL Finland is making the technical infrastructure sustainable. At the time of writing it’s all based on a GraphQL API against which I generate the sites, schedule poster, schedule a presentation, mobile app, and perhaps a couple of other things.

I am in progress of unifying all this into a single repository so it’s easier to maintain all the code I have and turn the existing pieces of code into a proper system that also contains our private information.

What music do you listen to whilst developing?

Anything you want to promote or plug?

Thanks for asking. I’ve somehow transitioned into a conference organizer/director role and I spend most of my time thinking about related things. The recent React Finland conference held in Helsinki was a great success and now we are repeating it in 2020.

Interview image for Tim Benniks
Tim Benniks

Valtech

Tim is a web developer from Amsterdam who moved to Paris to explore the magical world of luxury clients and baguettes. He likes to build fancy websites, make music and cook food.

Interview image for Ram N
Ram N

Facebook

He works for Facebook on React Native. He loves working with developer tools and frameworks. Before Facebook, he was at Microsoft, working on CodePush, VSCode editor for React Native and Cordova, and App Center.

Interview image for Beau Lebens
Beau Lebens

Automattic

Beau is an Australian-born PHP and JavaScript developer who has worked in the WordPress space for 10 of the 20 years he’s been coding. He spent the last few years managing teams delivering the Jetpack plugin to millions of WordPress sites and is now working on WooCommerce.

Be the first to read new interviews just like this one with Arthur Doler. from top developers.