Fork me on GitHub

Ahad Bokhari

What I'll be Looking at in 2019, and So Should You

Edit   ·   1,135 words

It’s been a good year for us in the modern JavaScript world, the market is inundated with jobs for front-end developers, engineers and javascript ninjas alike. At the top of the chain are full-stack developers, who come in at high demand. This would be a great time for you to find that job you’ve wanted or at least aspire to find a better job. What you’ll need is to know what’s hot and what’s not, especially where the trends are headed and what you’ll need to do to take your skills to the next level.

Let’s take a look at what we’ll need to impress future employers and to stay up to date with technology going forward in 2019 and beyond.

Fundamentals

For me this will always be at the core of any good engineer, especially if they run up and down the full stack. Knowing the language intimately and understanding it’s nuances aren’t the only things you should know well, but also having a good understanding of patterns from a development and architectural perspective will help you consolidate on your next position. Furthermore demonstrating that you’re a good problem solver will subdue your critics as well as give you plenty of
credit with your peers, coworkers and future employers (both in the interview and job phases)

Tooling

Tooling can be a double edged sword, hard to learn and somewhat tedious but necessary for the build phase, development and production. Currently Webpack and Parcel lead the pack, so you should definitely know how they work under the hood from both a syntactical and conceptual perspective. Also you should acquaint yourself with Rollup because many concepts where brought over from this project to others like tree shaking. Historically Node’s module system CommonJS and then Browserify gave rise modern build systems.
Understanding some of the older tooling libraries such as Grunt, Bower and Gulp will also help, because you never know when you will run into them in your next gig - i’m sure many employers have older build and tooling systems and are looking to modernize and rewrite. Of course knowing the NPM ecosystem, SEMVER and publishing goes without saying.

Testing

Over 50% of UI developers don’t test their code. Testing can be tedious business and often confusing with a lot of cognitive overload, but that shouldn’t deter you from focusing. You should know how to test your code at the fundamental levels as well as know about Jest, Jasmine, Karma, Mocha, Chai, Tape just to name a few.
Also an understanding of BDD, TDD, unit testing vs regression testing will be of value to you for many years to come and not just in 2019 - believe me while testing you’ll learn a hell of a lot about JavaScript too, this is a great way to consolidate your core language skills as well.

React / Components

This year React will be releasing many new features into the ecosystem which change the way we might write components. You need to know about these changes and how the impact they cause:

Understanding how component hierarchies are built and the flow of data in different stacks is important. Moreover keep an eye out for web components as we see the the web moving towards that direction with React, Vue, Angular.

Node.js

Node.js is very important and often overlooked by developers who use third party tools like Express, Mongoose and NPM for the MERN, MEAN stack. Learning and knowing about the fundamentals of Node, like writing and API with routes from scratch or creating a CLI without Commander or Yargs will give you a much better understanding of the back-end. I’m not saying don’t look at Express or Hapi, but it will be fruitful to look at Node from the ground up, after all it provides us with a stable API with tons of goodness out of the box.
Learn the fundamental Node.js API’s and try to use what you have out of the box as opposed to bloating your front-end with numerous unnecessary libraries.

Performance

Performant apps are the apps of today and the future, this is a great topic for discussion whether with your peers or in an interview. In 2019 be ready for the following where performance is concerned.
JavaScript is a very expensive resource to send as it can block or delay interactivity.

  • Tree Shaking
  • Lazy Loading
  • Code Splitting
  • Caching using Service Workers
  • Lighthouse
  • PRPL Pattern
  • PWA

Redux, GraphQL & REST

2018 saw a huge rise in the GraphQL community, with many developers and companies at the cutting edge adopting early. Going into 2019 understanding GraphQL and what problems it solves will be one of the most important trends. GraphQL has alot of hype around it now, but will it take over and replace RESTFUL APIs - I don’t think so, at least not for the foreseeable future. Understanding REST, it’s standards and best practices will still be the dominant force in the market.

Redux is still heavily used throughout the market and industry, but we see hints of GraphQL and Apollo replacing Redux for the first time. I feel job seekers are still looking for the holy trinity in Node, React and Redux.

Angular

The Angular and TypeScript community remains strong especially in the enterprise where you see a lot of backend developers migrate or at least start working on front-end applications. Angular will continue to use RXJS for it’s state management and store.

Data Stores

Both the SQL and noSQL communites are thriving as well as managed infrastructure like AWS and friends. Learning SQL will definitely add value, and understanding how to scale a backend architecture by not querying the
same database over and over will give others confidence in your architectural prowess.

You should be able to put together a basic CRUD application from the backend to wiring up the front-end with relative ease

Evolving JavaScript

JavaScript itself is evolving quickly and eating the world - it’s one of the most used languages by developers and spurs quite the controversy debate. Having an understanding of asynchronous, reactive, declarative and functional paradigms as well as ES6/7/8 will help you grow with the future.
Also you should know these modules and alternate static typing libraries, just to name a few.

  • Lodash
  • Rambda
  • TypeScript
  • Elm
  • Flow
  • Express
  • Moment
  • Rxjs
  • Axios
  • Prettier

Here are some other trends that we have been hearing about throughout 2018 and some that are newer which you would want to stay abreast of.

  • HTTP2 / HTTP3
  • Containers. Docker, AWS
  • Severless
  • Redis
  • Web Assembly
  • Progressive Web Apps
  • Server Side Components

I feel i am missing a couple of minor things here and there, will revisit this and review one more time at a later stage.