Nicholas C. Zakas Profile Banner
Nicholas C. Zakas Profile
Nicholas C. Zakas

@slicknet

60,065
Followers
68
Following
527
Media
26,413
Statuses

Human who codes. Creator of @geteslint . Author. Speaker. Advisor. Coach. Real estate investor. Blog at @humanwhocodes . INFJ. @nzakas @fosstodon .org

Boston, MA
Joined November 2008
Don't wanna be here? Send us removal request.
Pinned Tweet
@slicknet
Nicholas C. Zakas
2 years
I'm excited to share my first new book (or e-book) in over five years! Understanding JavaScript Promises explains not just how promises work but also how to use them in the real world. And the best part? It's free. Grab yours now.
Tweet media one
33
308
1K
@slicknet
Nicholas C. Zakas
5 years
Mom: Dad said you invented a thing? ESLint? Me: Yes. Mom: What is it? Me: It finds and fixes problems in JavaScript. Mom: Huh. Do people use it? Me: Basically everyone writing JS. Mom: How much did you make on it? Me: Nothing. Mom: I don’t understand your industry. Me: Me either.
125
3K
15K
@slicknet
Nicholas C. Zakas
5 years
Confession: I am an introvert who does a convincingly accurate impression of an extrovert in social situations.
82
780
3K
@slicknet
Nicholas C. Zakas
5 years
Wait, why did I come to this site again?
Tweet media one
59
561
3K
@slicknet
Nicholas C. Zakas
5 years
Before creating ESLint I knew next to nothing about parsers. Today, I know slightly more than that. Don’t let what you don’t know stop you from trying.
25
561
2K
@slicknet
Nicholas C. Zakas
3 years
🧵 Hiring managers: there’s no reason to force people with 10+ years experience to take coding tests. You can’t last 10 years if you can’t ship code. Here are some better approaches.
76
397
2K
@slicknet
Nicholas C. Zakas
4 years
My favorite JavaScript debugger is console.log("HERE")
105
259
2K
@slicknet
Nicholas C. Zakas
6 years
I never considered myself a great programmer. Solidly above average for sure, but not great. I attribute my career success to two things: 1. Being a good communicator. 2. Caring about details. It’s amazing how far these two skills can get you.
31
451
2K
@slicknet
Nicholas C. Zakas
6 years
There are four things I’d like to encourage every software engineer to do: 1. Save your money, at least a year’s worth of expenses that you can get to quickly. 2. Take a week off *at least* every 3-4 months whether you think you need it or not. Trust me, you need it.
33
522
2K
@slicknet
Nicholas C. Zakas
6 years
My “Enough with the JavaScript already!” talk wasn’t about JS being bad, it was about HTML and CSS being good. If you can do something in just HTML, do it; if you can do something with just CSS, do it. Only when HTML+CSS fails you is it time for JS.
31
413
1K
@slicknet
Nicholas C. Zakas
5 years
Six years ago today I made the first public commit for what would become ESLint. Happy sixth birthday, @geteslint !
21
112
1K
@slicknet
Nicholas C. Zakas
8 months
As someone who was attacked online for days after saying that the ESLint rewrite would not be in TypeScript, I can verify that there is a fairly aggressive pro-TypeScript faction online. We need to stop attacking people for language or framework choices. It’s dumb.
62
107
1K
@slicknet
Nicholas C. Zakas
3 years
Writing code only you can understand is a failure, not a sign of how smart you are.
23
162
936
@slicknet
Nicholas C. Zakas
11 years
Instead of assuming that people are dumb, ignorant, and making mistakes, assume they are smart, doing their best, and that you lack context.
30
1K
862
@slicknet
Nicholas C. Zakas
8 years
"Don't be too clever," is one of my mantras.
Tweet media one
15
792
828
@slicknet
Nicholas C. Zakas
6 years
When asked what advice I would give young software engineers, I used to talk about learning and code. My advice now: save as much money as you can. All it takes is one serious health issue to derail your life and you can’t count on disability.
25
216
815
@slicknet
Nicholas C. Zakas
5 years
JavaScript is popular for the same reason PHP was popular: low barrier to entry for newcomers plus ubiquity (aka, easy to embed everywhere). JavaScript remains popular largely due to much better evolution than PHP, which couldn’t figure out which way to grow.
36
156
793
@slicknet
Nicholas C. Zakas
4 years
How I think about loading/executing scripts: Do it now: <script src> Do it later: <script defer src> I don’t care when you do it, just not now: <script async src>
4
165
767
@slicknet
Nicholas C. Zakas
5 years
My simple rules for social media: 1. Facebook friends are people I’d invite over for dinner. 2. LinkedIn connections are people I’ve met professionally. 3. Anyone can follow me on Twitter unless they are assholes. That’s why I haven’t accepted your invite. 😬
10
63
750
@slicknet
Nicholas C. Zakas
6 years
Reminder: everyone on the ESLint team is a volunteer. They are donating their time to the project and have spent most of today dealing with the compromised package in coordination with npm. I’m grateful for their dedication and how they’ve handled today.
7
145
744
@slicknet
Nicholas C. Zakas
6 years
3. Mind your health. If you are sick, stay home and rest. Don’t work from home, that’s not resting. 4. Get a hobby unrelated to tech. Learn a musical instrument, draw/paint, play a sport, etc. Give your tech brain time a rest and exercise your non-tech brain.
11
177
704
@slicknet
Nicholas C. Zakas
10 months
Repeat after me: Blocking paste on a form textbox is not a security feature.
23
110
703
@slicknet
Nicholas C. Zakas
5 years
I’m by no means done writing books. Once I’m healthy again, I have a long list of titles on my todo list: 1. OOP in JS (2nd Ed) 2. Async JS 3. Understanding ES2017-2020 4. Understanding GraphQL 5. Understanding the DOM 6. Understanding Workers in the Browser
42
50
649
@slicknet
Nicholas C. Zakas
3 years
This is a true story that isn’t about open source but makes sense in the context of open source. I repeat, this is a 100% true story that isn’t about open source but gives a good idea about what it’s like to maintain an open source project. Ready? Here we go.
14
186
647
@slicknet
Nicholas C. Zakas
7 years
Ok, this needs to be said: Prettier is not a replacement for ESLint. Prettier is a source code formatter. ESLint is a code quality tool.
20
262
643
@slicknet
Nicholas C. Zakas
4 years
I fear that “you don’t need a CS degree to succeed as a programmer” (true!) is getting mixed up into “CS degrees aren’t worth it” (false) and “programmers with CS degrees all code the same.” (false)
12
157
636
@slicknet
Nicholas C. Zakas
6 years
Periodic reminder: “Please try in another browser” is something your support team should never say to a user. If that's actually the “fix” it means your engineers are the problem.
50
230
606
@slicknet
Nicholas C. Zakas
10 years
Full video game engine with 3D rendering and real-world physics in a browser? Yes. Ability to style <select> dropdowns in a browser? No.
31
1K
596
@slicknet
Nicholas C. Zakas
2 years
Git tip: You can quickly switch to the last branch you were on via: git checkout -
22
54
555
@slicknet
Nicholas C. Zakas
5 years
How many potential open source projects die like this? 1. Think of project to start 2. Think up name for project 3. Search npm for that name 4. Find the name is already in use 5. Eat cookies instead
20
75
528
@slicknet
Nicholas C. Zakas
3 years
All codebases tend towards complexity. Your job as a software engineer is to reduce complexity whenever you can to offset this tendency.
7
110
526
@slicknet
Nicholas C. Zakas
5 years
Not sure when it happened, but the relationship between my parents and I has reversed. I’m the one nagging them to eat their vegetables and eat less sugar, and they’re the ones who say, “I can do what I want!”
19
38
526
@slicknet
Nicholas C. Zakas
5 years
When you say code is “readable,” you’re actually saying, “my brain interprets this code quickly.” Because not everyone shares the same brain, it’s easy to get into a “yes it is”, “no it isn’t” debate about readability. Problem is, both sides are correct.
18
125
514
@slicknet
Nicholas C. Zakas
3 years
First time I’ve tried coding a raw HTML form with vanilla JavaScript in years and I can’t get the damn thing to submit. 😂
18
24
499
@slicknet
Nicholas C. Zakas
5 years
I feel like Node.js core should now include fetch() and FormData as globals. They are too valuable to force everyone to search for npm packages.
12
41
476
@slicknet
Nicholas C. Zakas
1 year
Last week, the ESLint TSC agreed to move forward with our first complete rewrite to reimagine ESLint for the next ten years. If you’re a user, plugin developer, parser developer, or integrator, we want your feedback.
16
105
465
@slicknet
Nicholas C. Zakas
7 years
Every so often I get a random email that just says “thanks” for something I've done. It matters. It matters a lot.
18
72
463
@slicknet
Nicholas C. Zakas
8 years
Here's a time saver: If you ask, "any update on this?" on an open source issue, the answer is always, "no." Updates are on the issue.
19
187
463
@slicknet
Nicholas C. Zakas
5 years
This is pretty big. Palantir deprecating TSLint to join the effort to make ESLint the best linter for TypeScript!
@PalantirTech
Palantir
5 years
From TSLint to ESLint and beyond, learn how we're contributing to the future of TypeScript in the Web development ecosystem:
4
107
246
6
150
452
@slicknet
Nicholas C. Zakas
5 years
I was just looking at some code I wrote ten years ago. I hate that guy’s code style.
13
37
438
@slicknet
Nicholas C. Zakas
7 years
FWIW I recommend people use Vue.js these days. No license issues and I've just found it to be very well designed.
19
166
437
@slicknet
Nicholas C. Zakas
5 years
I don’t know about you, but the bugs I’ve spent the most time debugging in my career were most often caused by typos.
28
43
417
@slicknet
Nicholas C. Zakas
6 years
The gender pay gap isn't going to change unless we start talking about compensation. So, I'm sharing my salary history. Hoping that it helps at least one person.
@humanwhocodes
Human Who Codes
6 years
New blog post, My (somewhat) complete salary history as a software engineer:
4
30
168
21
117
396
@slicknet
Nicholas C. Zakas
5 years
I wish the larger tech companies would do something like open source fellowships, where they would provide salary, 401k, and health insurance to an OSS dev on a project they rely on for one year. Imagine the cool things you could build with a year’s runway.
19
90
387
@slicknet
Nicholas C. Zakas
5 years
One decision that made my life better was to stop disagreeing with people on Twitter. In real life, disagreements are a good way to learn about the other person, the topic, and even yourself. I haven’t found Twitter useful for any of those.
18
57
377
@slicknet
Nicholas C. Zakas
4 years
After more than three years of not working, I discovered the part I missed the most was mentoring and coaching. Thus, when I’m healthy enough, my plan is to offer coaching for devs. I know so many who don’t get the support and advice they need at work, and I think I can help.
14
25
377
@slicknet
Nicholas C. Zakas
6 years
JSLint complaint: not configurable enough JSHint complaint: still not configurable enough ESLint complaint: too configurable There is basically no level of configurability that makes everyone happy.
22
61
366
@slicknet
Nicholas C. Zakas
3 years
In short, give experienced devs the chance to show you what makes them great rather than putting them through a rather insulting coding challenge that is best suited for folks without much experience.
8
12
363
@slicknet
Nicholas C. Zakas
6 years
Brainstorming book topics. Would you be interested if I wrote a book on being an effective tech lead?
41
9
345
@slicknet
Nicholas C. Zakas
5 years
Point being: attitudes towards open source are still very fragmented. As an industry, we need to come together to figure out how we value OSS and how we will support it. And yes, this was an actual conversation between Mom and me. I only shortened the sentences to make it fit.
8
28
331
@slicknet
Nicholas C. Zakas
5 years
Missed the anniversary, but six years and two days ago I announced ESLint to the world:
8
44
330
@slicknet
Nicholas C. Zakas
3 years
In case you missed it, my entire seven-part series on creating JavaScript promises from scratch is now available. In it, I teach you about promises while showing you how to implement them according to ECMA-262. Thread 👇
3
84
321
@slicknet
Nicholas C. Zakas
8 years
In case you missed it: the print version of Understanding ECMAScript 6 is now available.
21
67
313
@slicknet
Nicholas C. Zakas
4 years
Please test in Firefox.
15
32
329
@slicknet
Nicholas C. Zakas
4 years
I just don’t get the run on toilet paper. Things you can use as toilet paper: napkins, paper towels, washcloths, cotton towels, baby wipes, sheets, t-shirts, hats, scarfs, IE6.
20
38
319
@slicknet
Nicholas C. Zakas
6 years
Open source project lifycle: 1. A few people use it (100% love it) 3. More people use it (80% love it, 20% know how to make it better) 4. Lots of people use it (60% love it, 40% tolerate it) 5. Ubiquitous usage (50% love it, 25% tolerate it, 25% think you are ruining the world)
4
83
316
@slicknet
Nicholas C. Zakas
3 years
1. Ask the candidate to present some work they’ve done. That could be a system design, some open source code, a home automation project, etc. Ask questions throughout.
9
11
317
@slicknet
Nicholas C. Zakas
5 years
If only non-techies could experience the utter joy of getting an OAuth flow working.
4
36
303
@slicknet
Nicholas C. Zakas
3 years
Just sent out emails to various ESLint contributors letting them know that the team has awarded them cash for their contributions. ESLint values all contributions and the team picks the top outside contributors each month to pay for their help. 💵🙏😀
5
29
301
@slicknet
Nicholas C. Zakas
2 years
The more JS tools that move to Rust, the more I think about how ESLint could do the same. The stumbling block: the plugin ecosystem is all JS, and I believe, that is a big reason for ESLint’s success. Asking JS devs to write rules in Rust seems a bridge too far. 🤔
42
14
298
@slicknet
Nicholas C. Zakas
4 years
“There's a reason you separate military and the police. One fights the enemies of the state, the other serves and protects the people. When the military becomes both, then the enemies of the state tend to become the people.” - Commander Adama, BSG
4
62
285
@slicknet
Nicholas C. Zakas
3 years
GitHub Copilot raises some interesting questions about code ownership. Who is the owner when the code is generated for you? This is important in open source, as CLAs and DCOs require you to give some guarantees that you are the owner, or at least, have permission from the owner.
20
57
287
@slicknet
Nicholas C. Zakas
5 years
The only thing the EU cookie disclosure regulation has done is ensure that every site requires you to dismiss at least one dialog before reading.
13
86
288
@slicknet
Nicholas C. Zakas
6 years
This month marks two years since I had to stop working for health reasons. I’ve learned more about myself during this time than any other period in my life. While I can’t say it’s been fun, I am grateful I got to know myself better.
15
8
287
@slicknet
Nicholas C. Zakas
6 years
I do want to mention that I’ve seen some solid, sustained progress in my health the last few months with fewer setbacks. It will still probably be a couple of years before I’m 100% but hopeful to return to some semblance of normalcy during 2018. Thanks for the well wishes.
22
5
285
@slicknet
Nicholas C. Zakas
5 years
It’s my birthday and all I’m asking is that you tweet thanks to someone who’s had a positive impact on your life. Let’s use Twitter to spread gratitude, at least for one day.
58
16
277
@slicknet
Nicholas C. Zakas
5 years
Five years ago this month I woke up and could barely get out of bed. Little did I know that I would rarely leave my home after that day. It’s been quite a journey and I’m hopeful that this year I’ll get back to some semblance of a normal life.
23
8
274
@slicknet
Nicholas C. Zakas
10 years
Keep in mind that when you send a pull request you're saying, "I wrote some code. I think you should maintain it."
18
338
266
@slicknet
Nicholas C. Zakas
6 years
The most difficult-to-solve programming errors I’ve made were caused by typos.
11
53
267
@slicknet
Nicholas C. Zakas
3 years
2. Actually call their references. It’s shocking how few companies do this these days. Talk to their former bosses and colleagues. Find out what it’s like to work with them.
15
4
267
@slicknet
Nicholas C. Zakas
3 years
3. Have them work with you for a day on a specific project. See how they mesh with the team. Watch what they bring to the work. Pay them for this time.
11
5
263
@slicknet
Nicholas C. Zakas
7 years
I am planning on writing blog posts and books again when I'm healthy. I just physically can't at the moment. Thanks for understanding. ❤️
45
3
258
@slicknet
Nicholas C. Zakas
5 years
This week’s good news: my brain has finally allowed me to read books again! 45 minutes each of the last three days. Of course, I have to take a nap immediately afterwards because it’s energy-intensive for me. But still, nice to get back to reading.
10
5
260
@slicknet
Nicholas C. Zakas
6 years
If you are using GitHub Pages or Amazon S3 to host your static site you should check out Netlify. Switched my site and loving it so far.
13
40
247
@slicknet
Nicholas C. Zakas
10 months
Ten years ago today I made the first commit to the public repo of JSCheck. I'd later rename the project to ESLint. Happy 10th birthday, @geteslint !
3
27
250
@slicknet
Nicholas C. Zakas
5 years
Thread: There’s a widespread belief that JavaScript became popular primarily due to its inclusion in web browsers. That is partly true, but JavaScript had a lot of competition a long the way and winning wasn’t a foregone conclusion.
4
83
248
@slicknet
Nicholas C. Zakas
3 years
Early in my career I was asked to create a popup that could get around pop up blockers. I succeeded. I told my boss I failed. You do not have to use code for things you know are wrong.
@jared_w_smith
Jared Smith
3 years
This is VERY alarming! Facebook has started using ARIA markup, HTML obfuscation, and “hidden” content to bypass ad blockers and block analysis of ad content - exploiting web standards and accessibility techniques as a weapon against transparency.
12
211
332
0
57
249
@slicknet
Nicholas C. Zakas
4 years
I didn’t see the improvement in my health that I hoped for in 2019, but I noticed two small changes: 1. This year I could concentrate enough to read books. 2. I have been able to talk on the phone with my parents most days. Small but powerful. 🙏
10
3
240
@slicknet
Nicholas C. Zakas
5 years
I love when people share the ESLint rules they wrote that enforce their personal, team, framework, or company best practices. This is EXACTLY the use case ESLint was created for.
3
34
237
@slicknet
Nicholas C. Zakas
1 year
AWS CodeWhisperer is a GitHub Copilot alternative that actually tracks the references used to generate code. 🎉 It will even tell you the license and GitHub repo so you can investigate further. Why GitHub Copilot doesn’t do this is beyond me.
Tweet media one
6
38
235
@slicknet
Nicholas C. Zakas
6 years
As part of my brain training, I’ve been writing with my left (non dominant) hand every day. In just four weeks, major improvement.
Tweet media one
Tweet media two
16
25
237
@slicknet
Nicholas C. Zakas
1 year
To learn Rust, I've been rewriting my JSON parser from JavaScript and compiling into WebAssembly. Finished tokenization and before moving forward, decide to do some benchmarking. Yes, Rust+WebAssembly is significantly faster. 🎉
Tweet media one
14
26
237
@slicknet
Nicholas C. Zakas
29 days
The top three most depended on npm packages are: 1. TypeScript 2. React 3. ESLint One of these things is not like the other. Can you spot the difference?
8
37
237
@slicknet
Nicholas C. Zakas
3 years
Even though @left_pad didn't create Babel, he made Babel what it is today, and he did so by effectively giving up the opportunity to make more money in private industry. We can't keep asking maintainers to work for the same or less than new college grads get year one.
2
18
233
@slicknet
Nicholas C. Zakas
5 years
Confession: I have never bought an e-book. I still prefer print books for everything but especially for coding books.
22
15
224
@slicknet
Nicholas C. Zakas
8 years
Nobody respects JavaScript more than me, believe me.
13
67
224
@slicknet
Nicholas C. Zakas
5 years
And as a result of this thread, the ESLint team is now discussing using @opencollect . Stay tuned!
5
6
217
@slicknet
Nicholas C. Zakas
6 years
Companies who pay engineers to work on OSS projects that the company created and maintains control over is very different than companies who pay engineers to work on OSS projects they did not create or control. The latter deserves more praise.
9
51
222
@slicknet
Nicholas C. Zakas
3 years
Seven years ago this week I woke up feeling sicker than I'd ever felt. I thought it was a bad flu and I'd miss a week of work. Little did I know I'd barely leave the house again. Life can change in a hurry. Don't take the gifts of today for granted.
6
16
218
@slicknet
Nicholas C. Zakas
4 years
Six years ago this week I woke up feeling so sick I could barely move. Little did I know I wouldn’t get much better and I’d basically stop leaving the house. Life can change quickly, don’t take things for granted.
10
23
220
@slicknet
Nicholas C. Zakas
5 years
I will never understand why some people get so upset over the *existence* of a certain ESLint rule. If you disagree, don’t use it.
16
29
209
@slicknet
Nicholas C. Zakas
5 years
How I think about CSS layouts now: 1. If I find myself wanting to use floats, use flexbox instead. 2. If I find myself wanting to use a table for layout, use a grid instead.
5
33
211
@slicknet
Nicholas C. Zakas
6 years
I don’t think a GitHub profile can or should replace a resume. However, if a candidate has an active profile, I think evaluating that code is a better indicator of technical skills than any take-home or on-site coding exercise.
10
41
213
@slicknet
Nicholas C. Zakas
7 years
Don't know how to help a project? Here are some ideas:
2
112
209
@slicknet
Nicholas C. Zakas
4 years
Is it just me, or has text selection in iOS gotten much worse recently?
32
14
213
@slicknet
Nicholas C. Zakas
5 years
TIL You can set the default password autofill app in iOS to 1Password! 🎉
Tweet media one
12
37
208
@slicknet
Nicholas C. Zakas
7 years
I'd like to ask a favor: please stop bullying open source maintainers on Twitter. The mob need not be invoked for every problem.
5
56
205
@slicknet
Nicholas C. Zakas
7 years
Every GitHub organization, project, and user should have a “Donate” button. Would go a long way towards changing perception that OSS = free.
3
55
204
@slicknet
Nicholas C. Zakas
6 years
A friend just sent me this. Sometimes I need to be reminded: So far, you've survived 100% of your worst days.
1
41
207
@slicknet
Nicholas C. Zakas
25 days
It's finally here! The first major release of ESLint in almost two years. This took a ton of work by a lot of people, and we couldn't have done it without the support of our sponsors. ❤️🙏
@geteslint
ESLint
25 days
ESLint v9.0.0 has been released! 🎉
4
131
492
5
18
207