Continuous Integration Process

Continuous Integration Process

Was at a wonderful conference hosted by one of Tubular’s investors (FirstMark) where VPE’s, CTOs and key technical leads got together from a bunch of their investments to listen to speakers and have some good round table discussions.  I spent my time participating in a round table on development processes, which evolved quickly from “life is good” to “here is a rough spot we’re having’. It’s really refreshing to have honest communication about your problems rather than having to wear…

Read More Read More

Principles of Microservices

Principles of Microservices

Some principles that should be followed when designing micro services. Accuracy – Fail hard or show full accurate results, never in between. Our goal is to provide precise numbers customers trust. Sending incomplete numbers because our systems aren’t healthy can’t be an excuse, we should follow the rule of “all or nothing”. Scalability – Predictable way to increase capacity. Growing only the components that are over loaded. It’s easier to identify bottlenecks when it’s components that are fully instrumented and provide an accurate view…

Read More Read More

Golang Impala Client

Golang Impala Client

Yesterday’s post where I figured out what it took to build thrift interfaces to attach to Cloudera Impala got a big improvement today. I combined my work with the hivething project that Derek Greentree wrote. It’s of course called impalathing over on github, it really does clean up the API. The big thing is that since this behind the scenes uses the ImpalaServer Thrift API everything is marshaled back from the server as TAB delimitated strings.  No helping that, but it gets…

Read More Read More

Golang and Hive/Impala – Thrift

Golang and Hive/Impala – Thrift

This started out as a quick project to see about taking a component of our service and migrating it from Python to Go. We’ve been talking about migrating services from the semi-monolithic version to more loosely coupled – the general idea is to move to Thrift oriented services. We have a core component of our system that uses Impala as a key backend, it’s a very stable service that could be logically broken out. As an exercise for the weekend,…

Read More Read More

NPS for Support Feedback

NPS for Support Feedback

Quick observation: At the end of any support email thread NPS rank it.  NPS is based on the key question “How likely is it you would recommend us to a friend?”  However, when dealing with support it’s never a “recommend”.  Could the question be one of these: How satisfied were you with the handling of your issue? How likely would support be a reason for continuing to use our service? Just thinking that I want to rate a current interaction with a…

Read More Read More

ioloop as a core concept

ioloop as a core concept

In the begininning there was main() and that was good.  But under the surface that has changed, it’s still main() but what really happens is dynamic linking, exit handling resources…  We’re even throwing garbage collection in for good luck.  But, it’s still main(). Why? If you do anything that’s isn’t linear programming you see that ioloop() is really main and you have boilerplate to set up everything for your call to the ioloop().  So, now main isn’t really important we’re…

Read More Read More