December 11th, 2018 · 21 min read
A full stack developer is a loaded term with nobody really agreeing on a clear definition. However, one thing is certain: there is huge demand for full stack developers in 2019, and in this article I want to outline for you the trends that are worth investing your time into.
In simple terms, a Full Stack Developer is someone that can build programs and applications fully. Understanding both front end and back end technologies, tooling and services, and combining all these skills to make something that works in production (mainly, but not exclusively on the web).
This is what the salary of a Full stack developer looks like going into 2019 (for USA):
Let’s not waste anymore time. Here is what you need to know going into 2019 if you want to stay current and be a top performing full stack developer.
For a real full stack developer though, you can pick any of the three in 2019 and be successful.
You will need to know the basics of React and its component based one way data flow architecture. However, this year we saw a lot of updates with the release of React 16 and a few upcoming minor releases scheduled in 2019.
This means you should know how to use React.lazy() with <React.Suspense> for code splitting, React.memo for optimization, and keeping an eye out on the new features when they come out especially React Hooks which may change things quite a bit in the React ecosystem.
We also have the standardized React Context API now which you should have a basic understanding of (more on this later).
React ecosystem will keep growing and evolving in 2019. Because of its architecture, this will not be only for the web. The ability to port and use React on different platforms like mobile, IoT and AR/VR will keep it relevant and ahead of the other 2 libraries in 2019.
Vue has continued to grow in the hearts of developers in 2018, and will keep growing in 2019… but will it be enough to surpass the other 2 big players? We will see.
The ecosystem is growing, and with the new Vue 3.0 coming up and the improved Vue CLI, the developer experience will be better than ever in 2019.
Vue has an interesting trend that will continue to grow in 2019: it is often used by Chinese giants such as Alibaba, Baidu, Tencent, Xiaomi and DJI instead of React or Angular (which were created by Facebook and Google). I expect the Chinese market to keep growing especially fast due to the fact that Vue is an open source independent library with no attachment to a big tech giant from the west.
Ivy is going to be the third incarnation of Angular’s render engine. The goal: it’s going to be smaller, faster, and simpler compilation.
Angular Elements will give us the ability to use Angular components in other environments other than Angular. In plain english: You can build components that can be added to any HTML page without Angular… kind of like Web Components (Both were created by Google… if you’re curious why this may be in the interest of Google, I wrote about it here). Now I can create the best component in the world with Angular, and just give it to my friend to use it in her React app!
In 2019, Angular will continue to do what they are good at: providing a full featured framework for building rich applications on the web because Angular removes many of the decisions from the developers and instead ensures more common code patterns for large teams.
Overall, 2019 will see similar things from these 3 front end libraries, and as mentioned before, if you master one of them you will be ready going into the new year. Expect to see minor changes in each one of these over the year with improvements in their rendering speed and making their library sizes smaller…but none of them will bring in any significant improvements to dominate the other.
Gone are the days where you have to build your own starter project with babel, webpack, eslint, testing libraries, and other tools. I mean that is still an option, but developer friendly CLIs have really made this experience really nice and easy to get going with any sort of project (Remember how it was like 2+ years ago??) Make sure you are using these when starting a project and moving away from them only if it becomes an impediment:
In 2019, we will see more and more improved experience in the CLI but it should be your go to way of beginning any project.
Apollo has built-in offline first client cache that will make Apollo+GraphQL a serious alternative to Redux in 2019 (yes, technically you can use both of them together). New Context API came out and many people called it the death of Redux even though Context is something you previously had in React and it only got a makeover.
Going into 2019, you should be aware of all 3 and how they work, and what problems they solve, but Redux is still a great choice when it comes to employability. Context API is something you can learn in a day, and GraphQL is something we will discuss more of in the backend section of this article.
Oh, and static pages are coming back into fashion and you should take a look at JAM Stack. The main idea is this: pre built markup (static page) that becomes a dynamic single page application once on the client side by utilizing APIs for the server. This is something that can really change the course of server side rendering in 2019 and I predict more people using tools like GatsbyJS and not stressing out too much about building complicated server side rendering logic on their own.
Web Components adoption by the browsers is finally getting close to what we want. Going into 2019, we are going to see more talk of Web Components but it still won’t hit a tipping point in 2019 (see last section). Keep an eye on them, but don’t spend your days and nights trying to master how to build Web Components just yet.
The promise of components that you can pass around React, Angular, Vue and plain old HTML is nice, but until we see some major adoption and significant benefits, it’s hard to say when it will take off.
Everyone likes talking about performance. Going into 2019, keep an eye on Code Splitting becoming a standard practice, newer optimized image formats coming more and more into play like WebP.
Everyone will still hate the idea of AMP by Google.
The major things that you should learn and be ready for 2019 are:
Progressive Web Apps are still going to be hot in 2019 (and could be part of the Performance section above) but it’s most complex features are probably not going to catch on (i.e. Push Notifications).
Most of the time you will be using HTTPS, App Shell and Service Workers for some extra offline features, security, and performance. You should learn how to build a PWA and test it with something like Lighthouse.
With Safari finally adding some support for PWA, it’s an easy win to implement progressive web app features to your project. At the end of the day though, all you need to really learn to get started is a combination of a manifest.json file and utilizing service workers. Google is really trying to make this work, but don’t expect any major changes in 2019 from what we already saw this year. This goes well with the PRPL pattern mentioned a few sections back.
Don’t worry! The backend world isn’t as crazy and fast moving like the front end world in 2019 so let’s dive straight in:
HTTPS is a must now for any website sending user entered data to a server. Google will penalize you if you don’t have it set up, and luckily it is really easy to get HTTPS with HTTPS Everywhere or something like Caddy.
Don’t let anyone fool you. RESTful APIs aren’t going anywhere in 2019. You will need to learn best practices for implementing and designing these. You should be using Node.js and Express.js to create an API server and for 2019 these two combined will dominate.
GraphQL has a lot of hype right now, but this isn’t a winner take all market. Learn what problem GraphQL solves and how you can actually use it in a RESTful API for certain routes to optimize things. That will be the most important trend going into 2019: Not how to use GraphQL by itself, but how to optimize some RESTful API routes using GraphQL for those rare occasions (more on this in the last section).
HTTP2 is becoming more and more common and you should have an idea of how to use this protocol to optimize delivery of your content. Also, HTTP3 is in the works so keep an eye on it, but it won’t be something you need to worry too much about in 2019.
Building and managing your own servers is becoming rarer and rarer. Here are the main options going into 2019:
Database growth of managed infrastructure like Firebase, AWS, and others will continue being popular, but you need to learn SQL. Databases like PostgreSQL continue to grow moving into 2019 while NoSQL databases like MongoDB seem to have a bit of a decline. You should probably learn the pros and cons of each as there is no perfect solution for all problems when it comes to databases. It’s also a good idea to learn how to build relational databases in a scalable way.
I almost didn’t include this here because it isn’t absolutely necessary, but search is a big part of the web, and it’s good to understand two of the best options available for full stack developers in 2019:
Learn about caching with Redis and how in-memory storage works. Caching and memory only storage is an important concept to learn and take advantage of in 2019 in order to optimize your system. Redis is a great starting point for understand these concepts.
Many people debate this topic, but to simplify things, you can generally break tests down to 3 types:
There are many options, but here are the best two options going into 2019:
Think of Jest as an all in one test framework so you don’t have to add different tools and libraries like in the second options with Mocha. If you want simple, just use Jest. If you want more customizability and modularity, pick Mocha.
Bonus points if you learn about: Mocks, Spies, Stubs, and Snapshot Testing.
End to end tests cost a lot of money to implement for companies so depending on your situation, you may or may not encounter this in your career. In whichever case, here are your best options to learn, or at least know about in 2019:
Mobile world is going to have a bit of a tough 2019. Apps just aren’t downloaded as much as they used to, and the top downloads are either game apps or apps owned by big tech companies. There will be more mobile web browsing in 2019 than native mobile app activity. Therefore, for full stack developers and mobile developers, more focus will go towards increasing engagement through web apps on mobile (Like using PWAs).
iOS along with Android are still important development skills that hiring managers look for but they have been declining over the last few years. There seems to be a strong shift from native mobile development to hybrid (or nearly native) led by React Native. If you look at the chart above, React Native has overtaken Swift, the primary programming language for native iOS development.
Here are the developments you should keep an eye on:
React Native had a bit of a setback in 2018 with a few blog posts coming out by some big companies saying they are ditching it. But all of these companies tried adding React Native to their existing iOS or Android codebase. If you are starting from scratch, this is still a great choice going into 2019 and it will continue to grow.
Flutter came into the scene in 2018 very hot. It is too early to tell where it will go in 2019 though. You should keep an eye out on it, but as of now, it doesn’t add significant benefits over React Native to really cause a massive disruption. (I did not include Flutter in the image above since their data points are still significantly smaller than others. As of now, there is more hype than job demand for it)
Ionic and NativeScript usage will be declining in 2019 and is something that you shouldn’t concern yourself with unless you are working with Angular.
So…stick to React Native for 2019.
You should learn the basics of Typescript and how it works (and the benefits of static types), but don’t let it fool you that it is 100% the only way to write good code. For example: focus on writing good unit tests first.
Webpack 4 and Parcel are the dominant tools for this in 2019. Both of them are going in the direction of less complexity and more higher level “do it for me already” attitude that we are seeing a lot of (like in the front end library CLIs). Learn how these 2 work, but keep in mind that CLIs take out the initial 80% of complexity when you are starting out. Use Rollup if you are publishing NPM packages.
Not many articles talking about trends ever consider Computer Science Fundamentals. However, this is probably the most important topic, and one that I can confidently say with 99.99999% accuracy: CS fundamentals will be important if you want to excel as a full stack developer in 2019 and for future years. This is because these fundamentals don’t change and have been around for a very long time unlike a library that falls out of fashion as soon as something new comes along.
Takeaway: Learn about Data Structures and Algorithms. Also learn some concepts around System Design and good architecture.
Containers (popularized mainly by Docker) have given us a completely different architecture setup from a few years ago. One of the major ideas that has come out of it is Serverless. Serverless doesn’t mean no longer having servers as the name suggests, but instead, it means that somebody else is managing servers (infrastructure) for you so you can focus on your application logic and not worry about things like scaling.
The popularity for Serverless started in 2017 and continued onto 2018. 2019 will see some of the same with the most common use case being AWS API Gateway combined with AWS Lambda (functions as a service) to be used by your front end application code.
The offer of a way to increase performance at a reduced cost is a nice idea and if the cold start problem gets resolved in 2019, I can see it becoming more and more common practice. Learn the basics of using AWS Lambda to get an idea of the benefits.
Amazon, Google and Azure (and maybe a bit of IBM) will battle it out for the server market in 2019. Each one of them offering completely managed services.
AppSync, Amplify, App Services, App Engine and other services that do a lot for you out of the box will continue to evolve, but none of them will really take off since programmers have a hard time giving away so much control unless you are working on a small personal project.
In 2019, Azure will dominate the enterprise market, AWS the general developer market, and Google the machine learning specific market. Speaking of…
In 2019 you should learn and understand how you can use Machine Learning models through APIs like the ones below:
More than Platform as a Service or Backend as a Service taking off in the above section, the machine learning APIs and models provided by these big companies will be a more important trend in 2019. You should learn how to use some of these for your future projects (don’t worry, they make it simple and it’s like using most other APIs).
In 2019 we should see a bigger trend in Machine Learning API usage on the web instead of building your own machine learning models or starting from scratch. Most people or companies don’t have the resources or the data to do machine learning properly unlike the big tech giants above.
Web Assembly will continue to slowly improve but it will still be only used by a small portion of the developers that need it (i.e Gaming, Image processing). You will be fine just reading this article and knowing what it is at a basic level so you are ready for it when it becomes more mainstream in a few years time.
Don’t hate on me for the above. Remember that it is never a bad idea to learn something new. This is just my opinion, but I would love to see anyone give conclusive stats and data in the comments below telling me that these above items are not in decline in the overall job market. (Please share your thoughts in the comments kindly internet people)
Anything you disagree with? Anything I may have missed? Humans are notoriously terrible at predicting the future… So Let me know in the comments.
Thank you for reading this far. If you enjoyed this post and want to get more like it in the future, subscribe below. By joining the ZTM community of over 100,000 developers you’ll receive Web Developer Monthly (the fastest growing monthly newsletter for developers) and other exclusive ZTM posts, opportunities and offers.
By the way, my full time job is to teach people to code in the most efficient way possible as the Lead Instructor of Zero To Mastery Academy. You can see a few of my courses below or see all of my courses by visiting the courses page.