OLC attended Prince Building Tech Talks' March Tech Talks this Thursday, March 21, 2013. Cormac Driver from Temboo and Nick Ganju, CTO of ZocDocs presented in front of an enthusiastic crowd.
Cormac Driver is the Head of Product at Temboo. His presentation briefly described the problem with APIs and Temboo's solution. "It's time to develop more and code less," Driver said. Driver has a PhD in mobile app management—a PhD that was previously not offered. "I hate APIs," he said. "It's weird to say that when I work with APIs, but it's that I like individual APIs. An API is great—it's ready access to powerful data. It's the plural APIs that are the problem," he said.
Driver warned to not mix APIs. "Don't do it," he said. "It ends up clashing. An app using multiple APIs is hazardous," he said. He said that there was a big missed opportunity in the API space. "There was an explosion of amazing APIs on the web, but most APIs only connect to single API. It's that developers are limited by time and patience," Driver said.
Regarding API learning curves, Driver asked two questions: How do I connect? and How do I get what I want? "Surprisingly true for fundamentals—not just unique bits. For every API, you need to ask these questions," he said. "Question calling methods, data formats (JSON or XML), authentication, language support, dates, boolean values, pagination, versioning and so on."
Driver presented a case study on versioning and used Facebook as an example. "Facebook recently removed versioning from their platform," he said. "It resulted in a lot of frustration for developers. In turn, frustration scales with the number of APIs. Temboo normalized APIs, databases and more to give you one consistent interface. It's all with the power of one API," Driver said.
"Temboo has over a hundred APIs in its cloud library and helps developers be exposed to APIs that they might otherwise not have thought to use. Keyword filters help developers peruse categories," Driver said. "Temboo uses a SDK to give developers access to the code and the APIs. They can switch APIs very easily. It gives you live interactive code to play with and gives easy ways to store credentials. The code is given to users to copy and paste—it's slick and helpful. You can also seamlessly switch between languages," he said.
Temboo is normalized, centralized documentation. It's focused on making coding easy and focused on users so that they can build their platforms without fuss. "Using one API is painless," Driver said. "And with it, ultimately, anything is possible. Temboo gives endless opportunities for novel apps and you can focus on building what you want," he said.
Nick Ganju took the stage and introduced himself as the CTO of ZocDocs. His presentation revolved around platform and scalability.
ZocDocs scales in two ways: user traffic and developers/codebase. User traffic displays compound growth every month and there are 55 developers growing rapidly this year.
Ganju's solution to scaling is to recognize the need to make scalable, robust self-aware systems.
Ganju said, "We operate using a master branch, which has features per branch." He referred to Github and explained that ZocDocs used the platform for source control.
ZocDocs is in continuous build. For it to work in continuous build, there are features per branch. In other words, there are automated rule-based code reviews that merge with the master. The build system auto-detects master controls and there are QA suite of tests. There are unit tests, selenium botnet, rollback/old schema testing, image compare and running the code on your own before you commit. "Image compare does pixel by pixel comparison. The screenshots can catch rendering erros," Ganju said. "The codes run in 17-18 minute intervals and we haven't broken anything yet," he added.
The ZocDocs' daily deploy was listed by Ganju as: Code freeze at 9PM, manual QA, which is finished by 8AM. The code is deployed at 11AM, usually done by 12:30PM. An experimental server first tests it with 5 percent traffic and if there are errors, the code is patched. "It's very scripted, very automatic and many precautions are built in," he said.
"We do A/B testing and feature flags," Ganju said. "There's speedtraps because we noticed that our sites were slow, so we wrote speedtraps. Basically, it takes the total time of the load and if it exceeds a certain number, it's all reported, and developers take a look at what went wrong," he said. "ZocMon Monitoring measures whether or not we're where we should be. It slices data to three categories: Browsers, Markets and Servers. It's very good at solving problems. Database Monitoring is when we aggregate database through callstack. The value is the aggregation of all the calls and responses made. You can add that list up to see the stack," he said. "All of these are tools to help the code stay alive," Ganju concluded.