DEV Community

Cover image for I'm Tracy Lee, a RxJS Core Team member and Google Developer Expert, ask me anything![FINISHED]

I'm Tracy Lee, a RxJS Core Team member and Google Developer Expert, ask me anything![FINISHED]

Tracy Lee | ladyleet on March 21, 2018

My name is Tracy and I am a Google Developer Expert, RxJS Core Team member, a Women Techmakers Lead, and a frequent keynote speaker at conferences....
Collapse
 
somethiiing profile image
Wilson Yu

RxJS is definitely a very powerful tool. But in my every day usages of async related things, I've never felt that I need to use something as powerful as RxJS to do it (instead opting to use something like async/await, promises, etc). Other than very specific use cases like making drag and drop ridiculously easy, RxJS really just felt like it was just killing a fly with a bazooka.

Do you have other examples of when you would prefer to use RxJS instead of other async related libraries?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Yeah well honestly with RxJS the benefit is that you are moving your business logic into a domain specific language - so it's much easier to copy/paste code into new frameworks and libraries without large rewrites. You're also essentially future proofing your code two ways. The first is - RxJS provides an abstraction in the form of Observable for you so that you can easily change out the inputs at a later time. The second is - later on, it's much easier to add on functionality by just adding on another operator or chaining together a set of things, again, without having to rewrite your code much.

I'd say it's super smart to kill all the flies with a bazooka because later on you may be thankful you have that abstraction in place.

Also it's just more declarative and easier to read.

I always use RxJS so I don't have other recs on other libraries! :)

Collapse
 
biganth profile image
Anthony DeFreitas

One of the selling points of React is to just write JS, no need to decipher a DSL. Why doesn’t RxJS take this approach?

Collapse
 
nickytonline profile image
Nick Taylor

Depends what your working on. When I worked in FinTech you have a large stream of events coming down the pipe. Something like Rx works very well for this.

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Yes! For things like backpressure, multi plex web sockets, exponential backoff, cancellation - all these are great use cases for RxJS.

Collapse
 
addyosmani profile image
Addy Osmani

Hey Tracy! What do you feel is missing from web development today? Missing Web Platform features, libraries or tools?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Well ya know... I would say that a Chrome Contributor Days is definitely missing from web development today! 😉

But all in all wouldn't it be great to have a playground where developers can go and play around with new technologies? Or somehow make it easier to find information? A lot of what I hear in web development is that people don't know what they should learn and would like to be prescribed more the most important things. So I think that visibility into that is important.

I also think that adoption of certain APIs, let's say, would be cool because that would help surface some of the items that are necessary and important for web developers to take note of.

Collapse
 
ben profile image
Ben Halpern

I think Tracy is done for the day but this would make a great #discuss post for the community Addy 😄

Collapse
 
rkoutnik profile image
Randall Koutnik

Hey Tracy! Awesome to see you doing this AMA, despite you stealing Jay from us :P

A few questions:
What was the GDE process like? Did you reach out, or did they? Has it helped you in your career?

What do you think is the largest barrier for newcomers to RxJS? How can the community help out?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

The GDE process is different for everyone! They reached out and told me to apply. You can also be recommended by another GDE. I believe you can just apply as well but the rules change so often that I'm not confident if you can just apply these days. I think the benefit of being a GDE is being able to have access to new Google technologies! Being a GDE is just about doing what you already do and helping promote Google Technologies through community involvement.

Largest barriers for newcomers to RxJS would probably be knowing how on earth to do anything. We currently have the RxJS docs initiative and the new docs are hosted at rxjsdocs.com. These are beta but pretty easy to contribute to. I think also finding the time to take an hour out and pair with someone on Rx related things is always really nice and helpful too! :)

Collapse
 
ben profile image
Ben Halpern

What's the process of applying for GDE? And is it a status you need to re-up on or do anything to keep?

Thread Thread
 
ladyleet profile image
Tracy Lee | ladyleet

Well, I think for right now you have to be recommended by another GDE! Typically you become a GDE because you are already in the community and people already assume you are a GDE. That has been the case for myself and many others. :) I'm not sure if you ever "lose" your GDE status - but definitely the program expects you to track what you do as a GDE and those metrics are reported on. :)

Collapse
 
xgrommx profile image
Denis Stoyanov 🐜

Looks like as my idea with jsbin :D
xgrommx.github.io/rx-book/content/...

Collapse
 
ben profile image
Ben Halpern

Can you explain RXJS like I'm five?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Hahaha :) Observables are just functions in JS - they don't do anything until you subscribe to them, or call them. It's not that hard so if you're learning promises currently I say why not just learn RxJS bc it's basically the same thing but with more benefits? :) But, everyone has their own opinion! :)

Collapse
 
xgrommx profile image
Denis Stoyanov 🐜

Observables are right Kan extension (as is generalize of continuation process) in category theory :D

Collapse
 
bnb profile image
Tierney Cyren

Hey Tracy! 👋

Wanted to ask: How do you find the time to do SO MUCH community work, even though it's a part of your job?

You've done a tremendous job of connecting individuals who are from distinct parts of the community and weaving a fabric of awesomeness. I've seen others attempt and fail to do the same, so I'm curious about your thoughts on how to bring people together to discuss common goals and their differences.

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

I think I've just been good at doing this my entire life. Finding connections in people and suggesting things and just overall having the power of suggestion. :)

I also make sure to always follow up with the people I want to follow up on and make an impact. Those of us who are blessed with the ability to make connections and change the world, always should. You are one of those people too! <3

I was also lucky enough to make this a part of my "job" essentially, and that makes me so happy. Helping people just makes me happy. :P

Plus, I think I try to encourage niceness and am not afraid to call people out on their silly BS sometimes. ;)

Collapse
 
liana profile image
Liana Felt (she/her)

What's it like being a core team member on a major open source project?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

It's definitely fun! Definitely not as intimidating as it may seem. Working with people you really enjoy working with and doing projects that you find passion in is the best. I became a core team member because I put in effort into the community and at some point in time, that was recognized. :) And that was nice. :)

Collapse
 
annarankin profile image
Anna Rankin

Hello Tracy, thanks so much for taking the time to talk to us! ❤️ I'm super curious about how you got into programming (in general) and web development specifically - did one or the other draw you in first? I've only played around with RxJS a little bit, but I really enjoyed the pattern and the documentation. What made you decide to become a core team member?

I'm also interested in how you manage so many things! Is there anything you do to recharge/specific ways you like to stay organized?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Hi Anna! I just picked up the computer and learned HTML/CSS/JS one month and kept going! The community is what kept me going - being constantly surrounded by people who were awesome and as passionate. MENTORS as well - if I didn't have mentors around me I'd just sit there for hours at at time stuck. My mentors even now help me get unstuck and when they do I realize that I was only 1% away from a solution. When I do it by myself, I feel like I am 80% away from the solution.

RxJS core team - they were all friends and they needed a little bit of help with organization, the docs, and just some new energy so I was just there, helping out, and then a few months later, I became officially part of the RxJS core team!

I use evernote to stay organized. Religiously! I also have a very intense calendar. I plan out my year in Nov/Dec so I can very much tell you where I'll be in December. :)

And by plan everything out - I mean I plan out all my monthly social activities and put it on my calendar, as well as events, conferences, and where I'll be physically in the world! My calendar is usually booked out a month in advance.

I also make sure I have time for myself to code in that time. :) I meditate to stay recharged, cook, and go on walks. But sometimes I also just sit in bed and complain to my BFF @benlesh (jk but not really).

Collapse
 
annarankin profile image
Anna Rankin

Thank you so much for your answer! So cool to hear how you got into the crazy world of the internet. I hear you on mentorship - so awesome to have great people with unsticking powers around you :D

Collapse
 
ben profile image
Ben Halpern

What advice would you give a software developer who is thinking of starting their own business (high growth startup or otherwise)?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

I've started quite a few companies myself so... I would probably say know who you are getting into business with or know what value they are bringing to the table and make it very clear. Always have a 1 year cliff for all founders when starting - a lot can happen in a year. I would also say make sure to get a good lawyer and the paperwork done properly because then it's way easier to get cofounders and investors interested and involved. Until then there is nothing for them to do bc you're not ready.

Also, do NOT quit your job. If you can't work full time and do your startup and gain traction, you won't be able to full time. I don't care what you say bc you are also not driven enough if you can't handle both at the same time and gain some sort of traction. Once you have found product market fit or revenue or funding then quit your job.

Collapse
 
jess profile image
Jess Lee

What has your experience with fundraising been? Do you recommend accelerator programs?

Thread Thread
 
ladyleet profile image
Tracy Lee | ladyleet

I think accelerator programs are great potentially for the network or for money or for structure. It depends on how structured you need things. These accelerators will give you foundation. For me personally, I'm already pretty structured so I might consider accelerators and excel, but I am also able to do it myself and be successful since I've gone through the path. Some people also can't afford the time for accelerators and can only work nights and weekends which is how I started my first company.

Fundraising! Fundraising is a TON of fun once you gain traction. Your first investors will probably just be your advisors. And honestly, my first "real" investor was just a guy who went to a Dishcrawl (food event, my first company) with his wife, realized I did startup stuff. We got together because I just wanted to soft pitch him. When we chatted he fell in love with the idea, saw that I was coachable, and helped guide me.

One thing is - you are always in charge of your own destiny so don't "rely" on someone else or some investor or lawyer to make connections for you, etc.

Also, just be around startup stuff so you have more serendipitous encounters and ideas.

TALK about your idea ALL THE TIME. I hate it when people are so scared someone will steal their idea. Your idea is not that great, and your execution is zero. So... literally... just talk about it so you can improve it and so others can help you improve it.

Collapse
 
jspawgrammer profile image
Roger Dodger

Thanks for doing this AMA. For seemingly everyday there is a new framework or library. What kind of path would you recommend for someone wanting to be in the javascript arena, ie, learn JS first then move on and if so, how much JS should you learn before continuing onto frameworks. Thanks.

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

I mean honestly I'd poke around at all of them and ask questions on twitter and around your entire life. See who will be your mentors or willing to help, what is the easiest or most comfortable, or what you get most excited about, and go from there.

Some people say only learn vanilla JS. That's a great idea but I will also say it's not that bad to just learn a framework and JS along the way. The most gratifying and satisfying way to learn something new, at least for me, is to see immediate results. That is why using Ember-CLI after 2 weeks of JS was the best way for me to get stoked on staying on the JS path.

I literally would say just get on a framework while learning JS. It does not hurt.

Collapse
 
jess profile image
Jess Lee

How did you first get into public speaking?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Hi Jess! Well, someone invited me to speak, I felt special, spoke, and then decided that I should keep doing it! And so I did. :)

Collapse
 
andy profile image
Andy Zhao (he/him)

Hi Tracy! What's it like working with large corporations that have a lot of process?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

The key is understanding the process and figuring out how to scale those relationships in a way that does not kill your team! :) Sometimes it also requires a lot of patience because it can be slow. But, all in all it's so nice to help large corporations succeed and bring in new technologies and standards that they may not already know about!

Collapse
 
andy profile image
Andy Zhao (he/him)

That's a great point about bringing in new tech + standards for large corporations!

Collapse
 
edunham profile image
E. Dunham

I do a bunch of conference speaking myself, but I've only done 1 keynote so I'd love to pick your brain a little on how you do yours: What's your process look like for developing a keynote talk?

  • Do you generally reach out to a conference, or do they come to you?
  • How do you pick the best topic for you to speak on for a given conference?
  • How do you research the conference and audience to figure out what parts of your knowledge will be useful to them, vs what they might already know or what might go over their heads?
  • How can you tell when a project or product is "good enough" to give a talk about?
  • Got any favorite heuristics for balancing time spent on speaking with time spent on doing stuff to speak about? I kind of struggle with this personally :)
Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Hi E! :)

I usually work on my keynote talks with the organizers but make sure it's a big enough idea that is relevant to the entire conference.

I used to reach out to conferences but now they just reach out to me.

I choose my topics based on what I'm excited about - the only way to choose talks.

Well... I go to very targeted confs so I usually apply what I'm talking about to the actual technology.

If I find a product or project amazing, then I'll talk about it! :)

I try to spend about 20-30% of my time on learning new tech or working on talks and speaking. I just block it off bc it's important to me - though I should do this with working out too dangit !:)

Collapse
 
dineshbabu153 profile image
Dineshbabu Thoota

hi Tracy!. First off, thank you so much for doing this Ask me Anything!

A very important question.
All these latest trends in front end engineering sometimes seems so overwhelming and many developers like me feel it a bit difficult to catch up on these. What advice would you like to give for developers in this vastly expanding javascript ecosystem ?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Honestly, just pick what you're passionate about. Learn what you want, and spend some time after hours to hone in on what you get excited about and become an expert. Then move on to the next project. I think the problem with JS is that it moves so fast and you always feel like you know nothing but the truth is that we all know something - it may just be in a different area of expertise than another. :)

Collapse
 
edunham profile image
E. Dunham

Wow, you've made so many neat things I hardly know where to begin! Since you say to ask you "anything", the first question to cross my mind is about one of the hardest problems in computer science: What're your thoughts on and techniques for naming things, especially businesses and projects? Got any favorite stories about how picking the right name and scope for a project helped it out down the line?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Hhahaah.

Well, one of my first products was a gift app. And we could NOT for the life of us agree on what to name it.

Me and my cofounder at the time were eating in Mountain View at a restaurant called Sushi Tomi. So we thought - Gift Tomi and named it Giftomi. We kept trying to call it Gift something. And then another person a few months later was like yeah you named it Gift to me! like Giftomi! And my mind was BLOWN.

Another one - I wanted to create an umbrella corporation and I was at an event explaining this to someone. He said yes, like an evil umbrella corporation. Then I thought, OMG EVIL is LIVE spelled backwards! So one of the names of one of my first companies was LiveUmbrella :)

Collapse
 
petivagyok16 profile image
Peter Palocz • Edited

Hey Tracy!

Learning RxJs is quite difficult, especially if i want to become an expert. I used it mostly in my angular apps and i feel like i'm stuck using it at the basic-mid levels for example passing data through services in subjects and behavior subjects (i almost never used async subject and reply subject) i don't even know when should i use them. And also stuck at the basic operators like: filter, map, distinctUntilChanged, switchMap, mergeMap, take, takeUntil, pluck.. There are lots of other operators which are look powerful but cannot figure out when to use them. Can you give me some hint how can i upgrade my knowledge to be able to use rxjs as widely as it possible?

Thanks!

Collapse
 
ben profile image
Ben Halpern

What's the origin story of your BFF status with Ben Lesh?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Well once upon a time I used to host pot lucks and Ben and Jay used to come, of course, since I am basically their social life. ;) <3

And we used to talk and hang out and Ben was so nice and he would pair with me on things and just be such a great mentor and I felt like he was always willing and up for all the ridiculous things I wanted to do.

And then somehow our entire lives overlapped and we were speaking at all the same conferences and then we cofounded a company together and then I started getting involved in RxJS because I saw the team needed a little bit of Tracy love and at some point in time you just get attached at the hip and life is never the same... :P

It's pretty special having great friends in life and I consider Ben and Jay to be some of my top favorite peeps.

Collapse
 
oskarhelling profile image
oskarhelling • Edited

Hi Tracy,

A quick one: Can you point me at a what you consider a good example/pattern/best practice of how to set up a central injectable DataService -service/singleton in an Angular 5 / RxJS application that caches the information and handles the back-end communication? The use case would be a normal application that has 10% volatile data and 90% static data (databound dropdowsn and other stuff that does not change on a daily basis). CRUD operations are, naturally, a must.

For some reason, I have not found a good example for this. Can you help?

Oskar

Collapse
 
jspawgrammer profile image
Roger Dodger

Thanks for answering my previous question Tracy, awesome advice, this is if you have no other questions to answer. I've been doing frontend for about 2.5 years and even today I hear all these terms and names and I feel sometimes lost in what any of it means.Google to the rescue most times. What was your journey like to the point you felt comfortable with all the terms and names of the zillions of things that exist in programming. Thanks again.

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Haha yeah I'm still not super comfortable with all the terms - just like everyone else. But I just talk a lot of programming and hang around a lot of people that do and at some point it becomes very natural! :)

Collapse
 
andy profile image
Andy Zhao (he/him)

Do you feel like Javascript is a language that you can focus on for your entire development career? Or do you think that's doable with other languages, too?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Oh yes absolutely 100%! Plus once you learn JS or any other language, it's super easy to go back and forth and learn other languages. :) There is PLENTY of JS jobs and JS need these days. Node, for example, React Native for mobile, and just general front end too.

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

JS is the easiest to me IMO but maybe I have chosen the wrong path! I also believe it's who you are surrounded by and what you're talking about on a daily!

Collapse
 
andy profile image
Andy Zhao (he/him)

Seems like you've chosen the right one! Any advice on finding the right people to surround yourself with?

Thread Thread
 
ladyleet profile image
Tracy Lee | ladyleet

stalk and talk to people on twitter! :) find the nice ones! make friends! go to confs and find your base of friends! :)

Collapse
 
evebanigo profile image
nemi.js

Hey Tracy! I think you're awesome :). Please I'd like to know what learning tips and methods you'd recommend for a person learning javascript. Thanks!

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Get into what you're passionate about and start pounding on code! Also build something you're excited about! No use wasting your life on things that do not make you excited!

Collapse
 
peter profile image
Peter Kim Frank

Hi Tracy!

How did you first get involved in software development?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

As I was selling my first company I decided to learn how to code. I learned JavaScript, fell in love with the challenge, and never looked back! :)

Collapse
 
n3rio profile image
Nerio Rincon

Hi Tracy, what i have to do to be consider a full stack python dev?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

Haha honestly I have no idea. I think that is like asking what you have to do to be considered as a senior dev or even a dev in general - depending on who you talk to you will get very different answers! :)

Collapse
 
n3rio profile image
Nerio Rincon

hehe thanks, well, any good book in oop fundamentals for a junior dev?

Collapse
 
maestromac profile image
Mac Siri

Hello Tracy! What's your secret to staying sane with so much going on?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

A very organized calendar! And knowing when I need a break is very important! You have to know your body, know your mind, challenge yourself enough to succeed and stretch further than what your current goals are while balancing life and priorities. I am constantly re-evaluating my priorities.

Also, make sure you are doing things that you LOVE and are passionate about. If you don't, you just wont be able to go as far as you'd like or expect in life. And make sure you have people cheering you on! :)

Collapse
 
maestromac profile image
Mac Siri

thank you for such an inspiring answer

Thread Thread
 
ladyleet profile image
Tracy Lee | ladyleet

Haha you're welcome!

Collapse
 
liana profile image
Liana Felt (she/her)

What's the best software conference you go to?

Collapse
 
ladyleet profile image
Tracy Lee | ladyleet

I love so many of them! I love the smaller ones because you develop closer relationships with people, and I like the larger ones because you get more swag and they are more grand and there are more speakers! I love ng-conf, angular connect, fluent conf, ng-nl, angular up, ng-poland... and so many more. This year I will be going to quite a few React conferences and I must say I'm pretty sure I'm going to fall in love with React Amsterdam and Chain React! :)

Collapse
 
kapilgorve profile image
Kapil Gorve

Hi Tracy, I am not sure if this ama is finished or not. So I will just post it anyway. Where do you think RxJs will help at backend with nodejs? Which scenarios would be RxJs would be more useful to use at backend?

Collapse
 
deanius profile image
Dean Radcliffe

If you can, Tracy, what are your thoughts on this- did RXJS get error handling wrong? dev.to/deanius/error-handling-in-r...

Collapse
 
spaceoso profile image
Miguel Rico

Do you listen to music while you code? If so, can you list some of the artists you listen to?