in payments annually. ‣ In 2012, we grew our customer base from 1 million to 3 million. ‣ There are more than 250,000 businesses listed in the Square directory. ‣ Square readers are now available in nearly 40,000 retail locations nationwide. ‣ Square’s transaction volume makes it the equivalent of the 20th largest retailer in the United States. 8
EE 08, MS EE 09, MS Stats 10, PhD Dropout 10 ‣ Square Risk Team ‣ Machine learning system to assess and mitigate risk of entities and events in our network ‣ Visualization and workflow tools for operational specialists to review customer accounts 9
to make reliable those things we understand. 2. We can only consider a few things at a time. 3. Inte wined things must be considered together. 4. Complexity undermines understanding. http://www.infoq.com/presentations/Simple-Made-Easy 12
a code base interact with each other via simple inte aces. ‣ Loosely coupled, well-encapsulated services within a service oriented architecture interact with each other via simple inte aces. 18
have. ‣ “If you don’t test your code, your customers will” (Pragmatic Programmer). Prevents Regression ............................... Finished in 0.10664 seconds 66 examples, 0 failures 25
{ Factory(:card_refund, :status => refund_status, :review_comment => review_comment) } let(:review_comment) { nil } let(:refund_status) { :requested } describe “.approve” do it “should return true and leave the refund’s status if it is completed” do refund.status = :completed refund.should_not_receive(:process!) Risk::RefundProcessor.approve_and_process(admin_user, refund, nil).should be_true end end end ‣ Refactor with confidence ‣ Tests as documentation ‣ Tests as contracts 27
open source. ‣ Many developers are active contributors to open source software. ‣ Build what you need to deliver value. ‣ When you must, invent and open source. ‣ Build your brand. 34
testing framework. ‣ Cane (Ruby): Code quality threshold checking as pa of your build. ‣ Dagger (Java): A fast dependency injection framework for Android and Java. ‣ Cubism (JS): A JavaScript library for time series visualization. ‣ Squash (x-platform): A library for exception tracking and bug repo ing. Square’s Open Source Projects Sampling from github.com/square 35