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?