John Yates has been a programmer since 1970. In 2010, he was working at Netezza where they needed a new data analytics architecture. He proposed using a family of statically typed acyclic data flow graph intermediate representations (IRs). This involved representing the query plan as a graph of operators with data flowing along edges. The graph could then be optimized and executed in parallel across cluster nodes. Yates provided an initial implementation of this approach to prove the concept, which helped convince Netezza to adopt it. He then led the development of the new Marlin architecture at Netezza based on this IR approach.