
The State of JavaScript 2018 - WA
https://2018.stateofjs.com
======
ksec
People are generally happy with the development of JS the trends of always
improving languages along with frameworks makes developing with JS makes
developer increase in happiness for the third time in a row.

ES6 is good, TypeScript is gaining ground, people are moving away from Flow.

Angular is dead? Most don't even want to touch it again ( Great ). Ember
hasn't moved a bit in three years with a declining of interest. I am also
surprised no one is using preact. The Choice is now either React or Vue.js, I
think Vue.js 3.0 will continue to move vue forward.

Given the amount of hype with GraphQL, I am surprised only 20% are actually
using it. And nearly 50% are using Redux!

Backend is dominated by Express only, and Testing framework doesn't have a
clear winner either.

And my biggest surprise is how Javascript turned from one of the most hated
programming language ( besides PHP ? ) into being acceptable and loved.

I really wish other languages communities do a similar survey, Python, PHP,
Ruby, Java, Rust etc... It will be interesting to see the trend and big
picture.

~~~
pjmlp
> Angular is dead? Most don't even want to touch it again ( Great ).

Yet what I see around me is enterprise customers on our projects adopting
Angular as the official internal Framework, as React is seem as too advanced.

~~~
rpwverheij
as someone who tried Angular and was so relieved with the simplicity of React,
I have no idea how they can come to that conclusion. But then again, I'm not
very well know with the field of enterprise customers

~~~
pjmlp
React requires too much FP concepts for the typical average enterprise
developer.

It feels like doing Haskell with JavaScript.

~~~
srgpqt
You can write haskell style in any language. but you don’t have to.

function MyComponent(props) { return <p>Hello {props.name}</p> }

~~~
tracker1

        import React from 'react';
    
        export default ({name}) => <p>Hello {name}</p>;
    

So much nicer than Angular.

------
kojoru
One important data point there is Visual Studio Code.

It used to be really popular in 2017 (double the popularity of
Atom/Sublime/Webstorm), now it's just eating everyone's lunch (triple the
popularity of Sublime/Vim/Webstorm/Atom, almost equal to all of them
combined).

Also Atom is declining sharply.

Compare [https://2018.stateofjs.com/other-
tools/](https://2018.stateofjs.com/other-tools/) to
[https://2017.stateofjs.com/2017/other-
tools/](https://2017.stateofjs.com/2017/other-tools/)

~~~
SnowingXIV
This makes total sense too. I was so hesitant to use something besides Sublime
forever, then I tested out Atom and it was slow (this has probably since been
improved) and didn't offer much more so the trade off wasn't worth it for
looking pretty. Bounced around a few others and then thought I'll try out the
VSCode thing, hooked right away and it seems to keep getting better.

~~~
minor3rd
Same experience as you. Thought I would always use sublime but my coworkers
were so adamant about VSCode that I finally gave it a try. I don't even know
that I can point to any single reason for it being better than Sublime --
feels like everything just works a little more seamlessly.

------
LandR
> JavaScript is always changing. New libraries, new frameworks, new languages…
> It's part of the fun,

No.. NO, it isn't.

~~~
bryanrasmussen
I'm reminded of back in 1997 (maybe 98, anyway long time ago), I had been on a
JavaScript course with a British guy, and went over to his house. He showed me
the little cv site he'd been working on, it had quite a nice design, much
better than I would ever do if asked to design something. I looked at the code
- it was all tables, so I decided to show him CSS at the end of which he
thunderously proclaimed "That's what's wrong with this industry, there's
always something new to learn!"

I think he's doing something with Sitecore now, make of that what you will.

~~~
gagege
I think he kind of had a good point. It would be nice to have a single set of
tools that can always get the job done no matter what.

~~~
userbinator
Not long ago I had to write some JS (had to, not wanted to) to do something on
a site, and got something working based on what I knew, only to be derided by
a "real JS developer" that my code was "deprecated", "not following best
practices", "not modern", etc.

He gave me his version which was around 10x more code and only worked in a
subset of the latest browsers, while mine not only did but would probably work
in everything since maybe IE5 or so...

Maybe that's considered a bug, but I don't want any of this trend-chasing. I
write code to get things done. My users don't care, and they want to get
things done too.

~~~
dentemple
If his ES6 required 10x more code than your ES5, then he doesn't actually know
ES6.

~~~
bryanrasmussen
I think he probably doesn't know JavaScript at that point. I remember I got
invited to an interview one time and they were impressed by my code for their
coding assignment partially because it could print out in less than a page (no
minification), and they referred to another applicant whose code had taken 6
pages. And I was just like - how could it take that much code?

------
nepeckman
The weirdest part of this survey is in many categories, the most experienced
developers (and by extension, the highest paid) were using a less popular
technology. Over 50% of people surveyed had heard of ClojureScript and were
not interested, but the developers who used it and liked it had the highest
average years of experience and highest average salary. Same goes for Ember
and Polymer for frameworks, and Relay for data store. I'm really curious what
the reasons for this are.

~~~
eat_veggies
Could it be that only the most experienced developers have actual production
experience with the more niche tech?

A junior dev is going to learn ES6, and Vue and/or React because they want a
job, but learning Polymer/Ember/Relay/ClojureScript isn't worth the time
because there are fewer jobs for it. But a more senior dev has probably
maintained a few projects using that tech, maybe surveyed it for use in a new
project, etc.

------
sgdesign
Co-author of the survey here, thanks for posting! Happy to answer any
questions :)

(As long as the question is not something along the lines of "My favorite
library Foo.js is doing pretty poorly in your survey, surely there must be an
issue with your methodology?")

~~~
Digit-Al
Not a question but a suggestion. I live in England and am very aware that the
residents of Scotland and Wales don't like to be classed as "English". You
might want to change the title to the more neutral (and correct) Britain,
Great Britain, GB, United Kingdom, or UK.

~~~
sgdesign
Oh I didn't even see that, thanks for the feedback!

~~~
Stoo
To be absolutely correct it should be United Kingdom, not Great Britain, as
you also have Northern Ireland marked as England.

------
paraditedc
A bit sad that d3.js is not even mentioned here. To me it's a solid
replacement for any MVC/MVVM framework.

I guess it deserves its own category, maybe data model library?

~~~
jrumbut
I think it's a real shame that D3 was never broadly recognized as such back
when it first came out.

I knew about it then, and made some small uses of it for SVG, but thought it
was just an SVG generating library that could technically be used for HTML.

I did a deep dive into D3 last year and it is amazing for generating HTML. I
think in 2018 I prefer the model that React provides, but I didn't like
approaches that required the sort of infrastructure React and Angular require
back in ~2010.

D3's use of vanilla javascript would have made it a top choice, and maybe
would have promoted more D3 development.

~~~
jordache
no built-in routing, DI, templating, components..

No it's a poor tool for what you are suggesting.

------
bigiain
I guess people with javascript turned off are not the target market for this
site, but I found this humorous:

[http://tinypic.com/view.php?pic=2v31s94&s=9#.W_KD0idx2Rs](http://tinypic.com/view.php?pic=2v31s94&s=9#.W_KD0idx2Rs)

~~~
pferde
I find it amusing that your post links to a page which itself doesn't work
without javascript. :)

~~~
userbinator
Fortunately there is a direct link to the image there.
[http://i64.tinypic.com/2v31s94.jpg](http://i64.tinypic.com/2v31s94.jpg)

~~~
scrollaway
Don't start thinking you can link to that directly. They redirect you to their
js-enabled page which doesn't work with adblockers/analytics blockers.

------
no_gravity
It is interesting to compare the popular front end frameworks year over year.
The percentages for 'Used it, would use it again':

2017:

    
    
        React: 58%
        Vue  : 20%
    

2018:

    
    
        React: 65%
        Vue  : 29%
    

So both have been growing at a similar pace.

Not sure about Angular, as in 2017 they listed 'Angular 1' and 'Angular 2'.
This year only 'Angular'. Is that the combined number for both versions?

~~~
intothemild
I would have broken Angular into two categories.. 'Angular 1' and 'Angular 2+'

From what I've seen, if there's an Angular project it's still Angular 1

~~~
pjmlp
Only Angular 5 around here.

------
WA
Good work Sacha! The data now gets more interesting, since it can be compared
to previous years and trends become more clear.

What I find most interesting is "All JavaScript development is considered
clumsy" – kidding.

What I find most interesting is the geographic distribution of tech. On HN,
you mostly find positive comments on React + Vue, because they're super
popular in the US. Other frameworks are popular in other countries. So while
it probably makes sense to use React and/or Vue, if you're in a country that
has a strong focus on, say, Angular, it might make more sense to improve the
skills.

------
billdybas
Ah, it's that time of the year again – always enjoy seeing where the JS
ecosystem is moving.

I would like to see two categories added for next year's survey:

1\. Auth – would be interested to see if Passport is still the tool of choice

2\. ORM – curious how Sequelize, Knex/Bookshelf, Objection, etc. compare in
usage.

I understand this survey will obviously skew towards frontend tools, but some
of the categorization just feels off to me:

For example, I wouldn't consider Next.js a backend framework. Sure, it's a
server-side-rendering framework, but you wouldn't typically be using it for
traditional backend things like accessing a database. Perhaps consider adding
a SSR sub-section on frontend frameworks.

The data layer section seems a bit confused – it's mix between client-side
stores and server-side persistence which have very different use cases. I'd
probably move out the databases into their own category - would be interesting
to see which JS devs prefer (eg. Postgres, MySQL, Mongo).

And trying to draw conclusions from the testing category seems odd when both
frontend- and backend-specific tools are bunched together.

~~~
tracker1
1\. working on some of that now, going to hand-roll multi auth combined with
password logins. I don't want to outsource my actual users' authentication
beyond oauth to FB/Twitter etc.

2\. I don't. If it's SQL, I use a tagged template string library, and just
project from the response of the given library. If it's mono or similar, I
don't see the point so much. I understand you can use type checking, but you
can still do that at the API layer.

As to the data layer, I agree... client side libraries and abstractions should
be different from server-side tech... though there's some overlap (libraries
that sync client-server for you).

------
s_kilk
Ouch, the ratio of "would use again" to "would not use again" on AngularJS
stunning, if not surprising: [https://2018.stateofjs.com/front-end-
frameworks/overview/](https://2018.stateofjs.com/front-end-
frameworks/overview/)

~~~
stock_toaster
Wasn't there some kind of huge upgrade pain between versions (v1 to v2 I think
it was) for people?

I vaguely remember talking with some folks at work who were trying to upgrade
at one point, and they ended up changing frameworks entirely (to react)
because the effort to upgrade was considered "about the same as a rewrite".

~~~
gldalmaso
That is certainly the case. Google's decision for Angular have made millions
of lines of code legacy over night.

The real reason it ever got traction in my opinion was the built in dependency
injection. It solved a real problem at the time, but ES6 modules make it a lot
less appealing now.

------
arxpoetica
> Finally, keep an eye out for Svelte. By using a radical new approach to
> front-end frameworks, it's managed to generate quite a lot of interest and
> was by far the most mentioned option in our "Other Tools" category. [1]

Glad to see Svelte [2] starting to get some attention. It’s a true little
wunderkind.

[1] [https://2018.stateofjs.com/front-end-
frameworks/conclusion/](https://2018.stateofjs.com/front-end-
frameworks/conclusion/) [2]
[https://svelte.technology](https://svelte.technology)

------
leeman2016
Really used to hate JS in the years before 2012/13\. I struggled on moving
away from desktop development to web app development.

Then in later years found React/JSX/Redux, Typescript and VSCode ... and
started loving it.

------
matthewmacleod
Really interesting to see what the trends are!

I have to say that Typescript in particular has made me like the JS ecosystem
a lot more again. Especially in combination with React – type-checked JSX
quite often feels like magic. Of course, the downside remains that there is
still a large number of JS libraries without type information.

------
bobince
The State of JavaScript 2018 is inaccessible in IE.

That seems about right.

~~~
fybe
It's hilarious. Doesn't work in IE, in Edge the button to start doesn't show
and if you go directly to
[https://2018.stateofjs.com/introduction/](https://2018.stateofjs.com/introduction/)
the navigation and styling is broken.

And in 10 the floating squares don't even show up. And it doesn't have fall-
back for browsers with no SVG support - really nitpicky but it is an actual
problem.

~~~
rehemiau
Works just fine in Edge. And TBH that's good enough for me, I don't think
supporting IE is necessary for a tech-enthusiast targeted site.

------
nailer
As a survey completer, they still don't include ES8 as an option:
[https://2018.stateofjs.com/javascript-
flavors/overview/](https://2018.stateofjs.com/javascript-flavors/overview/)

'await' is a game changer for JavaScript: major libraries like Stripe and Hapi
are rebuilding their docs too be ES8 based.

~~~
daxterspeed
I believe the survey uses ES6 (which officially is named ES2015) to refer to
the "current version" of ECMAScript (which I suppose is ES2017).

I don't know if the solution is to include each yearly release of ECMAScript
since ES6, or to simply add an "ES.Current" option, which would just be the
latest proper release.

~~~
sgdesign
Next time I think we'll just drop the ES* item altogether and instead ask
developers which JS language features they use directly.

------
tommyjepsen
Is "Angular's Popularity Over Time"'s bad stats based on combining Angularjs
and Angular2 into one?

~~~
sgdesign
In previous surveys we had both Angularjs and Angular, but starting this year
we stopped making the distinction. So yes, the "bad" stats include both
versions. It's not perfect but we thought it was best to just bite the bullet
and combine both going forward.

~~~
ghego1
I think that mixing up AngularJS and Angular (>= 2.x.x) is misleading. They
are two different frameworks, so little knowledge can be inferred by combining
the data about the two. As an Angular Dev the most frustrating thing when v. 2
came out was precisely the fact that I had to re-study from scratch all the
documentation. As a matter of fact I've used AngularJS since v. 1.1.x (2013)
and I then switched to Angular (latest release) as soon as v. 2 came out, and
I would definitely answer I'd use it again, but then if you asked me if I
would use AngularJS, I would say definitely not.

------
dkaigorodov
I don't understand what is "Native Apps"? No links are provided.

The description is "tools_descriptions.native-apps", on the page
[https://2018.stateofjs.com/mobile-and-desktop/native-
apps](https://2018.stateofjs.com/mobile-and-desktop/native-apps), which is
probably, a bug.

My guesses are:

1) Non-JS mobile native apps built on Java and Swift.

2) Native script
[https://www.nativescript.org/](https://www.nativescript.org/)

3) Smth idk about.

~~~
rpeden
I'm guessing it was a bug, because now the page you linked to says: _The
majority of mobile and desktop apps are still built with native languages like
Java, Kotlin, Objective-C, or Swift._

NativeScript has its own separate page.

------
k_
I hope Haxe[0] will make its way into this survey for next years, it's a solid
JS (amongst other targets) transpiler alternative (better results than others,
but less known).

Also, seems like a translation string is missing for vim (displayed as
"tools.vim" in Other Tools > Text Editors)

[0]: [https://haxe.org/](https://haxe.org/)

~~~
sgdesign
Thanks, I'll fix that. Regarding Haxe, sadly it didn't get many mentions this
year so we probably won't include it as an "official" answer next year. Maybe
in 2020 though!

------
jypepin
Is it just me or the website is very hard to read?

~~~
idoubtit
With uBlock, I added a local rule that forbids access to fonts.googleapis.com
from this site. Now it is much more readable with fallback fonts.

It is part of the sad state of the web that I often have to hack fonts and CSS
of websites just to make them readable.

------
yread
A great state of js survey. Hmm where do I click to see the results? Maybe
it's on the homepage. click. ooh fancy. Start - sounds good. click. View
results yes that's what I want. click. But I'm back at the start?! That
actually sums state of js in 2018 quite well!

On Android 8.0

------
reichardt
As a student currently studying and working in Berlin I wonder why Vue and
specifically Angular are way more popular than React. Looking at local job
posting Java and Angular seem to be king for almost everything. How come?

~~~
WA
Did you look for jobs in Germany only? Because Angular is quite popular in
Germany. I guess this is because in Germany, freelance devs mostly do
"enterprise stuff" (for car manufacturers) and Angular is "the enterprise
framework".

~~~
reichardt
Yeah, that's my guess as well. Angular leaves you with fewer choices on how to
structure your application. In comparison React only provides you with the
view layer and even for routing you have to rely on third party packages. I
personally enjoy working with a lean library like React but I can see why
enterprises tend to prefere Angular.

------
georgecalm
No surprises here this year: es6 & typescript, react & vue. I think I’d put
redux and graphql in different categories as they’re not mutually exclusive.
Nevertheless, I’m happy to see excitement for the latter.

------
mynegation
For connection between technologies, this wheel chart type is not very
helpful, things would be much clearer on confusion matrix[1]. It is a (ha!)
confusing name, so it is better to call it coincidence matrix, but "confusion"
is a traditional name for this already.

The authors actually use thix matrix type viz many times in the report e.g.
for correlating salary information to other categories.

[1]
[https://en.wikipedia.org/wiki/Confusion_matrix](https://en.wikipedia.org/wiki/Confusion_matrix)

------
faitswulff
I get these surveys every year and every year I find myself unable to complete
them because the choices you can select are awful - I forget what, exactly,
but none of the choices apply.

------
liquidcool
It seems to me that like last year, several countries with very large
developer bases are underrepresented. I'm thinking of India and the
Philippines in particular, where English is not an issue. I'm an American, but
I'd like to get a good global picture.

In addition, it would be good to see other indicators such as downloads, jobs
(admittedly hard to measure accurately), BuiltWith trends, etc. Considering
the millions of front end developers, this _seems_ a very small sample size.

~~~
gymshoes
I felt that the average salary for India was very high. I was hoping to see
somewhere near $20000 but it was $30600

------
yhoiseth
Great work! I especially liked the quadrant charts in the conclusions, such as
[https://2018.stateofjs.com/front-end-
frameworks/conclusion/](https://2018.stateofjs.com/front-end-
frameworks/conclusion/) because they provide a quick way to see the opinions
from the survey.

------
Bahamut
I can’t remember prior years, but browsing this site on mobile has been the
most painful web browsing experience for me in years (iOS Safari).

Consider the design of the site in the future and mobile browser behavior -
for example, tapping the bottom right button to navigate to the next view
brings up the toolbar on Safari instead of navigating to the next page.

------
Raphmedia
It is really awesome that they are using colorblind-friendly colors for the
charts.

------
yuchi
Props to Sacha Greif, another work of art in design and visualization.

------
majortennis
2 data vis recommendations and neither are d3js

------
milkers
C'mon, is it that time of year again!!

------
vyking
budding dev here! I'm so impressed with the :onhover action of 'Start' button
of [https://2018.stateofjs.com/](https://2018.stateofjs.com/) Can anyone
provide me a direction how to achieve that?

~~~
rpeden
First, see if you can figure out how to animate the boxes the way they are
when you're not hovering over start: they're moving around the screen in a
straight line until they reach the edge of the screen.

The animation we're looking at is moving SVG boxes around the screen, so if
you search for tutorials about how to animate SVG with JavaScript, you'll
quickly figure out how to make the animation happen. Although the technique
isn't really specific to SVG; it'll work the same if you're moving divs around
instead.

Once you've figure out how to animate DOM elements, to recreate what you saw
on the start page of the survey, you'll want to keep track of each box's x and
y velocity to know where to move them when you render each frame. If a box
hits the top or bottom of the screen, reverse its y velocity, i.e. if its y
velocity was 2, when it hits the top or bottom edge, it'll be -2. If it hits
the left or right edge, reverse its x velocity.

Next, let's look at what's happening when you hover over the start button:
each of the boxes has an assigned position, and when you hover over the start
button, each box rapidly moves itself back to its assigned position. And it is
timed so that each box reaches its assigned position at the same time.

To make that happen, you'll first need to figure out how far each box will
have to move horizontally and vertically to get back it its assigned position.
To get this, you just do (assigned y - current y) and (assigned x - current
x). This will tell you how far each box needs to move in both directions to
get to where it it needs to be. Based on this, you can calculate new x and y
velocities for the boxes. Each box will have to move at a different velocity,
because they'll all be at different distances from their assigned locations.

I've deliberately been a bit vague here, I know. I was going to put together
an example on Codepen, but decided against it because it is so, so easy to
take a look at someone else's code example and think you know what's going on
without really understanding it. Whereas if you learn how to animate elements
yourself, and then follow the thought process I laid out, you're a lot more
likely to learn this deeply and remember it.

I hope this all helps, but if any of it seemed unclear, let me know and I'll
do my best to clarify.

~~~
vyking
@rpeden: Thanks a lot for such detailed explanation! This is exactly what I
wanted. I didn't even think that when I hover on 'Start' each box will have to
come back with different velocities! Stupid me :P

And I really liked the idea of not putting a codepen -'think you know what's
going on without really understanding it' \- I totally agree and that has been
happening quite a lot to me!

Just one more question - if I may! In the 'Connections' page, the graph looks
a lot like D3js interactive 'Chord Diagram'. But I don't see d3js mentioned in
<script> tags. Is this due to the webpack that it's possible to hide the
underlying dependencies? I'm sorry if this is a dumb question - I've never
used webpack.

~~~
beefalo
Yes, d3 is loaded by webpack and you can find it in the webpack sources where
it is loaded from node_modules.

------
Yuioup
OK. So it looks like my love of Angular is misplaced. Great now I have to
migrate to React.

------
AngeloAnolin
Website looks crisp and nice. Wondering if the source code for the site is
available?

~~~
supermdguy
[https://github.com/StateOfJS/StateOfJS](https://github.com/StateOfJS/StateOfJS).
It's in the surveys/2018 folder

------
dkaigorodov
Great content and great visual presentation, thank you!

------
jordache
that salary breakdown must be for world wide, including third world
countries... $10K-$30K category?

------
imdsm
Missing description for Storyboard.

------
tonetheman
TL;DR

The state of javascript in 2018 is a dumpster fire. It was a dumpster fire in
2017... it will be a dumpster fire in 2019.

------
bhengaij
I think the site is broken on my phone. I'm going to plug in scala-Js because
nobody I have told it about has resisted saying wow

------
jgalvez
No mention of Nuxt.js. This survey is biased/flawed.

~~~
jgalvez
Ok, that was premature :) So it seems we're really not quite there yet -- fair
enough. Was just surprised given there's a vibrant Nuxt.js community. Let's
see next year!

------
js4ever
I believe JS will be the universal language in the next 5 to 10 years. Other
languages will continue to exist but 90% of developers will do JS... I can't
wait to quote myself in the future :p

~~~
hu3
With the advent of WASM I'd be inclined to think otherwise: better languages
eating javascript's lunch.

One can hope.

------
veegez
Been Waiting For this since Sascha was on the FreeCodeCamp Podcast

------
madmax14141
18000 respondents are men vs only 900 women

The State of What Men Think about Javascript

but seriously how was this survey distributed and is there any explanation for
the gender discrepancy?

~~~
wild_preference
Maybe that's actual representation of the genders in the web development
field.

If so, then it's still "What JS users think of JS."

~~~
madmax14141
[https://www.ncwit.org/blog/did-you-know-demographics-
technic...](https://www.ncwit.org/blog/did-you-know-demographics-technical-
women)

According to this woman make up around 30% of web developers in the US. The
highest amount of respondents are from the US so I would expect the woman
respondents to be more than a measly 5%.

~~~
eropple
Eh. You raise a good and reasonable point but in this particular case I think
you're comparing pomes to apples. "Web developer" is a pretty broad term, and
was even moreso in 2012 when your statistic was generated. As an example: I'm
a "web developer". But if I was surveyed about CSS (as a particular technology
I barely understand, avoid using, and don't care about) I wouldn't respond. I
would expect a number of my backend-focused colleagues to do similarly for
other topics.

Being aware of sampling bias is good and useful; I'd just worry a bit about
pulling too hard on that ripcord here.

------
Shamar
This is very interesting: [https://2018.stateofjs.com/javascript-
flavors/overview/#tool...](https://2018.stateofjs.com/javascript-
flavors/overview/#tools-years-of-experience)

Nearly 70% of JavaScript developers have less than 10 years of experience
(with an average of 8.3 years).

This means they have never seen a Web where JavaScript was optional and Web
developers were used to test their projects without it.

This in turn explains their outraged reactions to anybody that dare to point
out its severe vulnerabilities.

See

[https://bugzilla.mozilla.org/show_bug.cgi?id=1487081](https://bugzilla.mozilla.org/show_bug.cgi?id=1487081)

[https://dev.to/shamar/the-meltdown-of-the-
web-4p1m](https://dev.to/shamar/the-meltdown-of-the-web-4p1m)

[https://dev.to/shamar/i-have-been-banned-from-lobsters-
ask-m...](https://dev.to/shamar/i-have-been-banned-from-lobsters-ask-me-
anything-5041)

[https://www.reddit.com/r/firefox/comments/9v5qst/1487081_und...](https://www.reddit.com/r/firefox/comments/9v5qst/1487081_undetectable_remote_arbitrary_code/)

~~~
Nimelrian
I think your link regarding experience should be this:
[https://2018.stateofjs.com/demographics/years-of-
experience](https://2018.stateofjs.com/demographics/years-of-experience)

