Some Node Skills to Explore

We are hiring a bunch of Node.js developers at the moment. You may be as well. I'm sure you have a good list of skills that you're looking for in developers that join your posse. Here are a few technical things I think about when getting the opportunity to sit down with a Node developer.

What might you add to the list?

Async Programming

  • What are options for async flow control? Favorites? Least? Pros? Cons?

  • Node event loop -- How does it work? What applications does it fit?

Error Handling

  • Limitations/advantages in handling async errors?

  • Handle errors in Promises?

  • Handle errors in callbacks?

  • What errors should be thrown?

Functional

  • What is immutability? Why want it?

  • Basic Array.prototype methods?

  • What does shared state give you?

  • Advantages to pure functions?

  • Applications of higher-order functions?

API

  • Specifically, how does CORS work?

  • Familiar with which request and response formats? Favorite? Worst? Why?

  • How does middleware work? When do you like to use it?

Ops

  • How can you use all CPUs on a server?

  • How to associate logs together with a single request path?

  • How to recover from fatal errors?

  • How do you load per-environment configuration?

  • How do you handle versioning of your apps and libs?

Modules

  • Why use modules?

  • How do you organize your API apps' modules?

  • Flavors of exports? When do use each?

ES Next

  • Which new features have you used? Like, not like?

  • async/await - Used instead of what?

  • Object literal extensions - How used?

  • Spread operator - Helpful usecases?

  • Arrow functions - What do they help with?