I am Jay Phelps. Ask me anything.

Loves code, hates condiments. Jay is a Senior Front End Engineer at Netflix with over a decade of engineering experience. Lover of all things open source, his contributions span across numerous ecosystems.

Ask Jay Phelps about:

  • WebAssembly
  • JavaScript
  • Engineering at Netflix
  • RxJS
  • ECMAScript
  • Redux
  • OSS
  • General Advice

Hey everyone! I had fun your questions. Feel free to reach out to me with others or followups. You can find me on twitter: https://twitter.com/_jayphelps 🖖

Ask a Question

73 discussions

Hi Jay, I am trying to learn and understand Rxjs. What is the best way to learn it with Node.js?

Here are some my favorites:

There's not much specific to Node.js, but it will be helpful to learn how to create custom Observables so you can wrap more imperative APIs or make utilities. Ben's article above will definitely be the best resource for that.

While you're learning, keep an eye out for v4 vs v5 documentation and libraries as some things changed between those versions and people often get tripped up trying to use v4 code or APIs with rxjs v5. Hopefully this shakes out as time goes on. There are still some active efforts to mitigate this.

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

What tools (software) do you use to develop javascript?

I'm a MacOS guy, primary editor for JS is VS Code. Nearly all my projects use webpack, eslint, and Babel/Typescript in some form or another.

Reply to this…

What are the unique advantages of Observables over AsyncIterables?

Mostly comes down to push vs pull.

Observables are push-based, and perfect for modeling data in which you cannot (or don't want to) control the rate in which data is provided. Easiest example is a user's keyboard events, we can't control the user, they type when they want to. Most UI stuff is modelled best as push, but elsewhere backpressure can become an issue: data can flow faster than you can handle it, so you have to either buffer or drop it. Both backpressure strategies have issues that might make it impractical.

AysncIterables are pull-based, so they're great for things in which you can, and want to, control the rate. You ask for the next event and you get a Promise that will resolve when it's ready. It's important that you can actually control the producer, otherwise the producer will have to drop or buffer and then it's the same problem Observables would have. The cost of creating a new Promise every time (and the fact that they have to be async) is a potential thorn, but not usually an issue the average person will run into.

https://github.com/ReactiveX/RxJS (Observables) https://github.com/ReactiveX/IxJS (AsyncIterables)

Reply to this…

Hey Jay,

  1. Could you tell me a bit about Engineering at Netflix?
  2. Vue Js vs React? Which one would you prefer & why?
Show all replies

Thanks, jay.

Reply to this…

Will you ever cut your beard?

It's a tough call. I think it will happen inevitably 😢. tbh I'll probably just wake up one morning and buzz it off--then immediately regret it.

Reply to this…

Load more responses