Recent

Kudos to @gauravkumar for driving the calendar invite issues fix and bringing it to a closure. This was a very tricky issue to track and involved a lot of back and forth with the customers. He took the initiative to setup call with one of the customers and went through each flow in great detail.

Edit Permalink

Vinod is now induction friendly ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚

Edit Permalink

Slack for iOS Upload

We've increased thinking zones for our CTO in the new office ๐Ÿ˜

Edit Permalink

@rajesh on his sugar free diet today ๐Ÿ˜œ๐Ÿ˜œ >

Edit Permalink

โ€‹

We finally moved to React v15 today. These are something that went well, and what are the loose ends that we need to tie up before the next update.

What went well

  • Removing dependencies one by one instead of a big bang change
  • Changes had a small area of impact
  • Faster testing.

What could have gone better

Choosing a third party library

We need to get better at picking UI libraries. For instance react-bootstrap doesn't follow any standards, and has breaking changes for every minor bump. They say this in their homepage and still we picked it. For some reason we're ok with sticking with existing solutions even when they clearly don't suit our needs. The time we spent on hacking react-select(still not merged, even after a year - https://github.com/JedWatson/react-select/pull/660 :P) we could've built one.

Not running multiple versions of React/ Locking library versions

Ideally we should've done the upgrade before introducing libraries that were dependent on React 15. We're not enforcing this, and this leads to a lot of script errors. Check this (https://github.com/facebook/react/issues/1939) for some context. Looks like the solution is to lock the dependencies and have npm/yarn scream at us when we add a library that doesn't comply with the package requirements.

Loose ends, and what next

Throw react-select

React select covers a lot of scenarios, but it breaks for a lot of our UI requirements

  • creating new option
  • extending the menu renderer and so on

Plus the library is very slow in accepting PR's. We may have to start looking out for another library, or better yet, write one ourselves and open source it :D

โ€‹

Sortable js

SortableJS is unmaintained for quite some time and is using a lot of non standard code. Someone has written a wrapper over it(https://github.com/cheton/react-sortable/) and seems to be popular. We need to evaluate it and close it before the next major react upgrade.

react-bootstrap

react-bootstrap is a non standard library and very slow moving. They moved from 0.27 to 0.30 in the last year and a half, with so many breaking changes. They don't seem to have a clear path for a stable release.

We need to evaluate other options like blueprint.js or build our standard components soon. This will hit us in the next react upgrade.

Other minor changes

  • We're moving to yarn. Yarn is much faster when compared to npm and warns us when a library is outdated or is incompatible with other dependencies
  • enzyme is in for writing component tests. Even facebook's document recommends it. We need to slowly move all skindeep tests to enzyme and remove that as a dependency
  • the current version of hot-reloader is incompatible with react v15. So I've removed it for now.
  • React is now more particular about the props that we pass. We can no longer pass a random argument to our component. For instance <input minWidth="100"/> will throw a warning. For more information read https://fb.me/react-unknown-prop.
Edit Permalink

Kudos to @gauravkumar for driving the react-bootstrap upgrade and taking it to completion.

Edit Permalink

Kudos to @kundankumar for doing a great job with testing the complex upgrade. He has quickly automated some critical paths of the app for this.

Edit Permalink

Screen Shot 2016-11-07 at 2.42.38 PM

@ashwin ๐Ÿ˜‚

Edit Permalink

After :boss: sees the post ๐Ÿ˜‚ >

Edit Permalink

This is so thoughtful ๐Ÿ˜€Thanks @nivedita

Edit Permalink

Screen Shot 2016-08-19 at 2.25.18 pm.png

Tip: When working with react components, especially deeply nested ones like candidate list, enable paint flashing in your Chrome. It will highlight any dom changes on the browser. This will help identify if youโ€™re unintentionally re-rendering some other part of your UI.

Edit Permalink

Kudos to the @happiness team for such amazing questions. It was great talking to you guys

Edit Permalink

New hedwig looks great. Failure notices are really helpful ๐Ÿ™‚ kudos to @ashwin

Edit Permalink

JS Best Practices : (https://github.com/Aplopio/recruiterbox/wiki/JS-Best-Practices> . Itโ€™s still a work in progress. Will keep updating when I have time. Need help from everyone to keep this doc updated and following it in practice. <!channel)

Edit Permalink

JS Best Practices : (https://github.com/Aplopio/recruiterbox/wiki/JS-Best-Practices> . Itโ€™s still a work in progress. Will keep updating when I have time. Need help from everyone to keep this doc updated and following it in practice. <!channel)

Edit Permalink

JS Best Practices : https://github.com/Aplopio/recruiterbox/wiki/JS-Best-Practices . Itโ€™s still a work in progress. Will keep updating when I have time. Need help from everyone to keep this doc updated and following it in practice. <!channel>

Edit Permalink