Intuit hosted a Girl Geek Dinner at its Mountain View campus, featuring Intuit speakers Cheryl Ainoa, Amanda Linden, Manasa Murthy and Anu Tewary. The Girl Geek Dinner events are hosted in locations around the world and are designed to encourage women to be involved in technology, along with provide networking and recruiting opportunities.
Presentations include:
"Harmony: Design innovation in QuickBooks Online (QBO)"
"JavaScript at Scale in QuickBooks Online (QBO)"
"Why we need more girl geeks"
30. Functionality vs. complexity: our goal
Complexity
Upfront investment yields
dividends as functionality
grows
Functionality over time
30
31. Scaled to 100+ engineers with
~100K lines of client code.
Complexity is still manageable.
31
32. Use OO JavaScript
return declare([Stateful, Evented], {
constructor: function (args) {
this.dirty = false;
},
isDirty: function () {
return this.dirty || this.inherited();
}
…
});
32
33. Two-way binding
Definition: The ability to bind changes to an object’s properties to changes in the UI, and vice versa.
<div data-qbo-bind="visible: showDate">
<div>${nls.date}</div>
<input class="dateInput” data-qbobind="value: date"
data-dojo-type="qbo/widgets/DateTextBox”/>
</div>
Our homegrown two-way binding framework is inspired by
33
36. Asynchronous module definition
Definition: AMD is a JavaScript API that lets you define and manage modules and their dependencies.
define([
"dojo/_base/declare",
"libs/jquery",
"libs/highcharts",
"libs/underscore",
"libs/backbone"
], function(declare, $, Highcharts, _, Backbone) {
…
});
Provides a no-build (F5) dev experience. Also builds minified, optimized layers.
36
37. Unit test
define([
"intern!object”
], function (registerSuite) {
registerSuite({
Name: "sampleSuite",
Setup: function () {},
beforeEach: function () {},
afterEach: function () {},
teardown: function () {},
"test1”: function () {}
… //More tests
});
});
37
Services isolation allows you
to mock XHR calls.
intern
38. End results
Happy engineers
• Went from 2 months to 2 weeks to write a new form
• Build times went from 2 min to 0 min on client side
Maintainability
• ~100K lines of JavaScript
• Separation of concerns – JavaScript, Java, CSS, HTML
• Onboarding down to 1 week
Faster loading pages
• < 2 sec for top workflows
• Better performance across the globe
Better quality
• ~400 unit tests just on the client side
38
43. The challenges
CHALLENGE 1:
Not enough girls enter the field
of technology. Girls see
themselves as users, not
innovators, of technology.
CHALLENGE 2:
Once in the field, not enough
women stay. 56% of women
leave the field mid-career.
43
44. The Technovation Challenge
• Girls program mobile apps to
solve problems in their
community.
• Girls pitch business plans for
funding.
• Mentors use their deep technical
expertise while gaining
experience launching a new
venture.
44
45. Girls as innovators
• When girls participate in the
innovation process, the outcome
is diverse.
• We get ideas for apps such as
Uber and Pinterest ahead of their
time!
• AND we get apps such as
Arrive, StudiCafe, IOU, and
MASH
45
46. Why is it great to be a woman in tech?
• Sometimes it isn’t ... it’s lonely.
- There aren’t enough of us here ... but there should be.
• It’s changing and what we’re doing here is making it better.
- It’s fun to be part of the solution.
46
47. Trending in the right direction
Varsha R.
Level Up Analytics interns
47
48. Inspire and be inspired!
Sign up to be a mentor! Email Judy@Iridescentlearning.org
48