When I arrived at Credit Karma I needed to find and connect with people from different teams across multiple projects and verticals.
The problem was that there was no good way to accomplish this except by talking to as many people at the company as possible to find out about the different roles and groups working on things. I decided I needed a way to search for people in order to speed up my workflow.
This resulted in the design and implementation of a pet project called Aura. This presentation is about the process of creating Aura and how it gathered a cult following of support at Credit Karma. I will be covering the problem space, the technology and the methods of winning mind share that led to the execution of the project. This includes React, Electron, Firebase and a host of other libraries and services that allowed Aura to be built over some weekends without the need of a server.
4. Who am I?
Canadian (from Toronto)
ex-Googler (6yrs - swe, devrel)
Head of DevRel at Credit Karma
LinkedIn: https://goo.gl/CQDEr2
Twitter: @_krispy_
5.
6. @Google I had tools to help me:
go/teams = quick company directory
cs/ = quick code search
go/easyokr = OKR tool
go/tldr = quick company news
...lots more
7.
8. Missing Tools of the trade
@Credit Karma the tools ...umm
Workday = org chart (sort of…)
News = emails / slack
Stash = code search (now in github)
OKRs = ?? patch work ??
I saw a lot of potential to improve
12. Aura - The initial plan
Create a tool that uses existing data to
help me find the people, projects and
company information I need.
13. SEARCH
Refinements
Refinements
Refinements
First Name Last Name - Other
First Name Last Name - Other
First Name Last Name - Other
Pagination
Pagination
First Name Last Name - Other
First Name Last Name - Other
First Name Last Name - Other
25. Pros & Cons
Pros:
- Single Browser
- Small Surface Area
- Multiple Versions
- OS Context Menu
- OS Function Access
Cons:
- OAuth2
- Unsigned (sec.)
- Pushing updates
37. Ok, so where are we...
We setup the tools and created service
accounts. We cloned the simple electron
boilerplate (and changed the origin to
our new git repo). We have a project
directory with a few files.
42. Side note: by the time I had a build
that I would classify as an Alpha release the
number of dependencies had grown quite a
bit.
The stand out dependencies:
- material-ui
- axios
- redux
- webpack
- firebase
43.
44. Oops… how do we fix this?
Oh ya, we need to build our react app first…
46. Set it on fire
$> firebase login
(follow instructions)
$> firebase init
(do this from the project root - not the react-app)
- Choose all options
- Pick your project to attach to
- Keep the defaults
50. Firebase Database - Rules with Bolt
Bolt helps you describe your rules.
$> firebase-bolt database.rules.bolt
Produces database.rules.json
Gets pushed when you firebase deploy
51. We should talk about REDUX now...
Application Store
Reducer A Reducer B Reducer X
Provider
Component
Action
connected
properties