Nov 5, 2014

Advice from Tony Lam on How to Design Great Services

After a great keynote session at the Intuit Tech Forum, 300 engineers packed the Building 6 conference room for a talk by Tony Lam, CEO of Reverb Technologies. Tony shared best practices and advice on how to design great API’s to empower large development teams-- great advice indeed for us at Intuit as we are well underway on a company-wide services journey.  Here are my takeaways from Tony’s great talk.

Great developers are lazy and want to avoid doing the same things over and over. If you build great API’s and do the right things, your development teams can be more efficient. Hammock-driven development: do the right things upfront so the downstream things are easier. Service-based software is the new normal for development. Clean interfaces allow you to integrate systems developed with different languages.

But great API’s must (1) be easy to understand, (2) easy to try, and (3) easy to build against.
  • Façade: build a beautiful, simple interface to your system. Tony stresses the importance of having a great façade, even if the underlying system is complicated and not well decomposed.
  • Describe every aspect of your API’s interface, and get feedback from the consumers early. Swagger— just do it.
  • Build your client and server simultaneously with Swagger codegen. JSON + Mustache Templates generates working code that can serve as the foundation for your code.
  • Documentation is a must-have. And you should update the documentation at the same time as the code. Annotations in Java will get picked up automatically in swagger.
  • Client SDK’s are the fastest way to integrate with your service.

Jay Kreps Shares Lessons He Learned at LinkedIn


Jay Kreps, Principal Staff Engineer, shared lessons he learned during his past seven years at LinkedIn.

Scaling the Site: Started with standard Oracle DB and separate systems for search and social graph. Moved to key-value store (Voldemort) and Hadoop, which augmented the Oracle DB’s. Now added kafka on top of Hadoop and separated newsfeed and espresso.

  • Few simple cheap primitives: Like OpenGL which has triangles as basic primitive, think about high-performance basic primitives like key-value store. Picked on an anti-pattern from alums with centralized user table. 
  • Ops first: Teams with most operational focus spent the least amount of time on operations. Keep production designs simple and do them well—maybe at the expense of newer, fancier designs.
  • Do hard things later: Use asynchronous and offline/batch when possible instead of request-response patterns. 

Scaling the code base: How do you scale as you grow the size of the Engineering team? Started with a monolithic application and decomposed the application into services. Originally was not a very disciplined decomposition. 
  • Services (may) scale development. Bad services are worse than no services. 300-400 services without appropriate tools to diagnose and debug services. Dependencies not well understood. Treat the service as a product, with a team that owns the service and provides appropriate documentation and artifacts. Service layer evolution: Moved from Spring-RPC to REST + JSON.
  • The service contract is binary: Instead of just exposing existing code as a service, develop the service contract first and then write the appropriate code.
  • Isolation vs Utilization: Develop services with the right granularity. How many services should you have? He recommends having a team of 5 develop each service as a rule-of-thumb to ensure that services have the right granularity. He recommends against a model where a single engineer is responsible for several services. 

Scaling software engineering: Cutting up the codebase.
  • Build your process: They moved from using wiki pages that track lifecycle to tools and services that manage the life cycle: from review, to check-in, to build, to rollout.
  • Governance: Need a balance between central planning (communist) and free-for-all every team does their own thing (capitalist).
  • Treat code as property. Someone is responsible for the code— functionality, hygiene. That eliminated a lot of bureaucracy. 
  • But you need effective government. Don’t duplicate integration layers. Standardize where you can: monitoring.
Great stuff! I always enjoy learning about best practices and lessons from other companies. It's a great way to compare notes and also accelerate your own Engineering practices and technology.



Oct 23, 2014

More Insights from the Afternoon Keynotes

As I settled into my seat for the afternoon keynotes (are they called plenaries?), I ran into my colleague, John Shapiro, Group Product Manager for QuickBooks Online. The dude came prepared for the show-- with trail mix, an ice cream sandwich, and a drink. Now, why didn’t I think of that?

As the lights dimmed, Bill Rancic once again took the stage as our MC and host for the afternoon ceremonies. His wife, Giuliana Rancic, a fellow entrepreneur and TV personality, joined him on stage and also shared her own story. Not to be outdone by the morning’s speakers, the afternoon featured another star-studded cast of speakers.

Martha Stewart shared the story of her success. After a career on Wall Street, she opted for a more leisurely pace in upstate New York. She started a catering company and grew that business. She turned her passion for cooking and decorating into a design business and personal brand—Martha Stewart Living. She turned this passion into an empire and became the first self-made woman billionaire. What a story!



Arianna Huffington, President of the Huffington Post, shared the story of her business success along with lessons learned along the way. Living in the hustle and bustle of New York City, she provided great advice on how to maintain perspective while focusing on your career and business growth.

Focus on the Critical Few. All too often we take on projects that we can’t finish. You can finish an unessential project by dropping it altogether. Focus on what really matters, and do a great job.

Be Present. Multi-tasking is too often confused with being more efficient. Unfortunately, there’s a lot you miss along the way. She shared a great story about New Yorkers who text and walk—it’s just what you do in the Big Apple. Recently, she put her smart phone away during her walk home, and she noticed a beautiful business next to her apartment building. When she asked her friend if the building is new, she was informed that it was built in 1890.

Pay Attention to the Details. The details in our work and lives do matter.

Take Care of Yourself. The stress of leadership can be all consuming. She shared a story from her own life where she actually collapsed at her desk late at night and fractured her jaw. Find balance in your life and take care of your health. Get into a regular regime of your favorite exercise and make sure you’re getting enough sleep to combat the stress and pressures in your life.

This last bit of advice resonates with me. My morning routine includes either a workout at the gym or a 4-mile run. Since I've been tracking my mileage with RunKeeper, I've improved my average mile time and increased my weekly distance. And a quiet morning run helps me think about the day ahead.

Scott Cook, Founder and Chairman of Intuit, shared the story of how he founded Intuit by observing his wife, Cigny, balance their checkbook. Looking for a better way to automate the mundane task of balancing your checkbook, Quicken was born. A few years later, QuickBooks, helped small businesses tackle accounting and book-keeping. Fast forward 30 years, and QuickBooks Online is helping small businesses and accountants around the world.

Scott later interviewed Marc Andreessen, the inventor of the web browser which ushered in the Internet age. Do you remember the early days of the Internet? I vaguely remember using Mosaic, the first web browser. I do remember using Netscape, the first commercial web browser, along with Eudora for my e-mail. We've come along way since then.

And once again, Sekou Andrews, took the stage and delivered a riveting close to the session. How can we take our business to the next, next level? How can we connect with each other and learn from each other? Great stuff. Hope to see you at next year's QuickBooks Connect!

My Take-Aways from QuickBooks Connect


On Oct 22, over four thousand small businesses, accountants, and developers descended on the San Jose Convention Center to attend QuickBooks Connect. Many engineers from my team— the QuickBooks Engineering team-- were staffing the booths and presenting at sessions. QuickBooks Online was the belle of the ball, along with new products and programs that we announced, such as QuickBooks Online Accountant and the new Intuit Developer Program. More details on those later. I do want you to stay with me to the end of the post.

I arrived early to get a prime seat for the opening keynotes, and you could feel the energy in the convention center. Small businesses were visiting the Intuit tech booth to ask questions about new product features and meet one-on-one with our awesome Customer Care team. Accountants were milling about, networking with their peers and talking about new compliance regulations no doubt, and also meeting new small businesses—potential future clients. Connections were happening. 

The Morning Keynotes

So how do you get a crowd of 4,000 attendees fired up at 9am on a Wednesday? Sekou Andrews rose to the challenge with a riveting and inspiring keynote speech about taking your business to the next level. Sekou fired up the crowd for the next speaker, 
Intuit CEO Brad Smith. As an Intuit exec, I see Brad regularly in operational reviews and meetings and at company-wide all hands. I learned some new things from Brad’s keynote. Small Businesses have created 60% of the jobs since the recession. I knew that small businesses are fueling the US economy, but I didn’t realize how critical and pivotal they have been. One more reason to love small businesses! They have one of the hardest jobs—going it alone to pursue a dream—and their collective drive and passion are helping this country get back on its feet. Thank you small businesses! You rock!

Bill Rancic hosted the morning’s proceedings, which included Debbie Sterling (Founder & CEO of GoldieBlox) and Tristan Walker (Founder & CEO of Walker & Company). Hats off to Debbie and GoldieBlox for encouraging girls to pursue math and science at an early age. The world needs more engineers, scientists, and doctors. Let’s level the playing field so that girls develop a love for math and science at an early age. Please encourage your daughters to study science, technology, engineering, and math (STEM) and pursue a career in those disciplines. Tristin had great advice for attendees. Embrace your setbacks and “trials” as he called them. They are blessings in disguise, and you can learn from them and grow from the experience. Great advice! Learning from your failures was a common theme from many of the speakers throughout the day— and it’s advice I’ve also given my team. We all have failures, but you have to pick yourself up, dust yourself off, and then move on—but take the time to reflect and learn from the event.

The morning concluded with a “fireside chat” between Bill Rancic and Magic Johnsonthe Magic Johnson. Everyone knows Magic the legendary NBA player, but I was pleasantly surprised to learn about Magic the astute and tremendously successful businessman. Before his NBA career was over, Magic had started to think about the next chapter in his career. Fast-forward to today. Magic is an owner and investor in movie theaters, 125 Starbucks stores, the LA Lakers, and the LA Dodgers. Magic had great advice for the QuickBooks Connect audience:

Get mentors. While he was a Laker, he asked about the season ticket holders who hold the most expensive seats—the floor seats behind the Laker bench. He cold-called these season ticket holders and invited them to lunch. Most of these were CEO’s, and he asked for advice on how to become an entrepreneur and run a business. 

Have a good team around you. Magic knows his strengths and his opportunities. He hires smart folks to round out his team, and he looks for folks who will say no to him. He wants the honesty and doesn’t want a bunch of “yes people” around him who will not question a bad decision.

Over-deliver for your customers. Magic’s catering company had won the contract for food and concessions in Disney Land. He knew that the larger Disney World contract would be up for bid in a few years. Magic over-delivered in Disney Land and made sure his customer was happy and a net promoter. A few years later, Magic bid on the contracts for both Magic kingdoms (pun slightly intended) and won both contracts. Delighted customers stay with you and become promoters for your business.
Great advice indeed for any business and any aspiring leader. And a great testament to having a second career as a successful business owner.  

Stay tuned for more posts from the afternoon keynotes and other sessions throughout the day. And you can always follow me on twitter @vinayspai to stay current.

Jul 27, 2009

I'm Back

Now that the dust has settled on the acquisition of PayCycle by Intuit (yeah baby!), I will resume activities on my personal blog-- the one you're reading right now. I still haven't decided whether or not to move the content from my PayCycle blog. There was some good stuff there, especially on agile development. I probably will, late some night.

Anyway, welcome back (or maybe I should welcome myself back)!

May 4, 2009

I've Moved (Actually, My Blog Has Moved)

At PayCycle, we just launched our company blog site. Going forward, I will continue blogging, but at the new PayCycle blog site. My new blog can be found at: http://blogs.paycycle.com/vinay/

Just bookmark your browser (or update your RSS feed) to the new location, and keep reading...

Nov 7, 2008

Shai Agassi Speaks at Web 2.0 Summit

Shai Agassi left SAP earlier this year to start Better Place.

"How do you take a country off oil?" is the business problem he's trying to solve. In his model, you are charged for the miles driven and not the battery. The price of a battery and electricity is $0.06/mile for an automobile. In his startup's model, the battery is not part of the purchase price of the car. He will build the network and will purchase electricity to charge batteries. Israel and Denmark are introducing significant taxes (60% - 180%) of the purchase price of gasoline-powered cars as an incentive to drive the adoption of electric cars.

Renault-Nissan will manufacture the initial eletric cars that will be used on Shai's electric network. The cars will arrive between 2010 and 2014.