Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Articles Q&A with Intuit's Alex Balazs

Q&A with Intuit's Alex Balazs

Key takeaways

  • Technology moves incredibly fast and it’s important to remain focused on changes that will ultimately benefit your customers in the end and make their lives easier.
  • Adopting “Everything as a Service” has enabled Intuit to move faster than ever before to quickly create amazing, frictionless experiences for customers.
  • Two important things to remember when going through a technological transformation, 1) get executive support and buy-in early on and 2) over communicate to the team to ensure understanding and alignment around the changes.
  • The world of technology is changing, and so are consumer expectations. Intuit’s replatforming journey will boost innovation and deliver great customer benefits.
  • In just one year, Intuit TurboTax was able to transform its enterprise architecture to deliver a full, native version of its tax filing software to more than 30 million customers regardless of the device they use.

In this Q&A, Alex Balazs, VP Fellow Architect of Turbo Tax at Intuit tells us how they used Node.js to start to break apart the monolithic architecture of their legacy platform. Balazs talks about getting the people involved, what challenges they faced, and tells how other large enterprises can benefit from their experience.

InfoQ: So there’s been new technology going into TurboTax. Can you tell me more about this journey?

Alex Balazs: The Intuit TurboTax story is a really interesting one. TurboTax became a household name after its success as a desktop software product in the 90s featuring what was actually very innovative technology to convert paper forms into software to make it easier to file taxes.

As technology moved into the mobile and cloud computing era, we had to change too. How do you reinvent a thriving business for the new era – with a product built on legacy technology? It’s like rebuilding an airplane while you’re flying it. We realized that if we wanted to continue creating amazing products built to last, the technology and innovation needed to continue to transform.

We've been on a journey over the past two years to modernize our technology stack and create a technology strategy that allows us to not just create the best tax software but to also solve a variety of different complex problems for our customers. We created a knowledge engine first, which encodes tax law, logic and calculations. It not only improves developer speed and innovation, but also makes it easier for the average person to better understand how the tax calculations work. It has gone phenomenally well.

The second part of the journey has focused on building a services platform. We know that we needed to build our product of the future on a platform of the future; we also knew that solving for something as complex as tax would be a difficult task; and we have two failed replatforming experiences supporting this fact.

Gall’s Law: “A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.”

InfoQ: How did you do it?

Alex Balazs: By adopting Everything as a Service – we learned early from some of the best in the business that our technology must empower us and others to quickly create amazing, frictionless experiences. Services deliver efficiencies when teams can work at their own speed allowing our people to build, test and release services and product experiences independently without having to convene a meeting.

Services are built for others as they have a standard contract, they are scalable and secure and they are discoverable and easy to use. 

Existing technology limitations make it very difficult (and often impossible) for us to deliver high-quality, innovative, and responsive products at scale so we can build a durable advantage.

Our objective is to lead a technology stack refresh that delivers breakthrough experiences and explosive growth by enabling our workforce to deliver the best work of their lives – and make tax prep obsolete.

Node.js has played a role in our technology replatforming initiative. When we started our replatforming journey, we had a monolithic architecture built on legacy technology with 10 million lines of old code. Our approach has been to build enterprise-grade services to transition from siloed monolithic code base into smaller, simpler service components. This way we can accelerate innovation without upending the experiences that millions of customers rely on every year.

Based on a careful analysis of the available technologies, we decided that Node.js would help us in our journey to build “Everything as a Service.” But we knew if we wanted to implement Node at scale, we couldn’t just talk about the benefits. The proof is in the code. So, we ran an experiment. We built the narrowest slice of tech stack. In two months, we built an end-to-end experience, leveraging expertise from product management, product development, user experience and engineering. The experiment proved it would work on a larger scale.

Now, we’re scaling our use of services (including Node.js) to break up the monolith. Think of the monolithic codebase as an iceberg and we’re drilling in vertical slices of Node.js. Over time, the legacy codebase breaks away and all that’s left is the new platform built on many components, including Node.js.

InfoQ: In a large company like Intuit, how did you get people on board?

Alex Balazs: We assumed that employees would all jump on the opportunity to use new technology, but that wasn’t actually the case. Oftentimes people enjoy working with what they know. We learned that it was critical to describe the burning platform – the compelling reason why change was necessary. If employees at every level aren’t bought in, it doesn’t matter how good the idea is. Executive support is also crucial; leaders are sometimes afraid to undergo a technology transformation for a product that makes money. It’s our job to ensure buy in across the organization, at every level.

InfoQ: Why did Intuit embark on this re-platforming initiative?

Alex Balazs: The world of technology is changing, and so are consumer expectations. We work in an industry where businesses constantly get disrupted, and we need to be agile and think like a startup. Companies and applications are transforming and moving from the desktop to the cloud. Delivering “Everything as a Service” is a key Intuit-wide priority, and Node is a standard runtime for application services. Our scale and data alone demand enterprise grade infrastructure, which Node enables.

We aren’t replatforming just for the sake of using a new programming technology or to tidy up our code base. The fundamental reason is to boost innovation and deliver great customer benefits—and we’ve seen meaningful results. Over the past two years, Intuit has saved nearly 120 years of developer hours by transitioning from monolithic code bases to modular service-oriented development. Our native mobile development technology has improved developer productivity by 10 times. All of that means a better experience for developers, and more time spent on solving the important problems that will improve our customers’ lives.

InfoQ: How did your development process change (agile, etc.)?

Alex Balazs: Intuit built a service platform; the core idea is that the platform team figures out the solutions to the infrastructure problems--hosting, monitoring, managing, upstart, clustering, and updating—in effort to support many services. In turn, developer teams across the company can focus on solving their customer problem and their services’ business logic.

InfoQ: What kinds of challenges did you face?

Alex Balazs: One of the challenges we faced as an organization was that we weren’t structured in the most efficient way to deliver on mobile first. Our historic strategy was to create completely separate teams to solve for iOS, for Android, for Windows, for Mac and for the web--not to mention supporting other devices. We went through a reorganization, and brought all of our mobile development teams together, aligned on the same goals focused on winning together.

InfoQ: What advice would you give other large shops who may are looking at a similar situation?

Alex Balazs: Here’s some advice based on our experience at Intuit:

  • Everything as a Service – Identify and prepare for the slow moving tasks at your company.
  • Divide and conquer – harness the expertise of all the different resources throughout your company.
  • Service developers have a tradeoff between control and conformity in a platform. Make the conformity pleasant and easy to use with open collaboration modules. People like to adopt easy-to-use things.

InfoQ: What’s next?

Alex Balazs: We’re still in the midst of our technology transformation journey, but we’re seeing the fruits of our labor. In just one year, Intuit TurboTax transformed its enterprise architecture to deliver a full, native version of its tax filing software to more than 30 million customers regardless of the device they use. The next phase will be scaling the services using Node.js and other technologies to make it more efficient and easier for our developers to innovate.

We’re not the only ones using JavaScript technologies like Node.js at an enterprise scale. PayPal, Netflix, and Walmart Labs are among others developing with these technologies. But we all recognize that enterprises with lots of customers and big revenue properties have a lot to learn. That’s why Intuit has been leading efforts to start up the EnterpriseJS coalition. We hold monthly meetings where we get together to share best practices. We’re in the beginning of the process of collaborating and open sourcing parts of technology to make sure that the industry can move faster together than we could apart. I invite others to join us by visiting our site.

About the Interviewee

Alex Balazs is the vice president and Fellow chief architect for product and engineering for Intuit’s consumer tax group. In this role, he is responsible for leading technology innovation, engineering excellence, and technology strategy for Intuit’s TurboTax product offering portfolio. Balazs is an accomplished leader and engineer who effectively accelerates business outcomes through pragmatic architecture that declares a bold vision for the future but constantly validates the vision through rapid experimentation.  A 16 year Intuit employee, Alex has held a variety of roles since joining Intuit over 16 years ago, including Distinguished Architect - Chief Architect Consumer Tax Group, Chief Architect for Identity and Software Architect.

Rate this Article