1,865 karma · joined October 13, 2010
Isn't your Transduction the same as doing premap (or lmap from Profunctor)?
My advice would be: don't compare yourself to external measures or compare your skill with other people. Focus on and enjoy the process of learning (because there's always more to learn).
JPM/BAML/GS have fallen down due in large part to their choice of language in my view. A graph database written in a hurry in C++ then glued together with tens of millions of lines of hacked up python is not the way to build a bank wide platform in my book!
1) you'll need less people (better more reusable code) 2) the best people will speak you out.
This was very much my experience when I put a Haskell team together, and everyone I've spoken to who has done the same has said the same.
It's an opportunity for a young company, not a problem.
note I'm being deliberately provocative with the above statement to promote discussion, not argument. :-)
However I note in the book that most organizations covered had a visionary leader who at some point stepped back and allowed the company to become what it did. Essentially embracing chaos and allowing the culture to emerge. Tony seems to be trying to impose this evolution from above, which I'm less sure about. (At least this is how it seems many of the zappos employees feel about it).
I would love to hear anyone's experience who is working for a company that's embraced holocracy.
I love it when there's a nugget of rigor behind things like this that can be pulled out and applied elsewhere!
In my experience Haskell also neatly address the other two points of people and architecture: the average [0] level of skill of developers in the Haskell community is higher, as is their average level of grit and determination (because of the learning curve). Haskell almost encourages constructing your applications as operations over streams of events (a la event sourcing, unified log etc), which for my money is the best way to think about designing most platform type apps right now.
[0] Note: I'm not claiming that all Haskell developers are coding ubermensch, just that the average level of the pool of talent is higher.
At the scale of Uber and given that there would be a lot of legacy hanging around, I would probably chose to build on top of the kind of scala libraries that twitter has been putting out (which it sounds like from the other article about uber's micro services currently on HN they are doing).
The serious statement behind my slightly tongue in cheek remark earlier, was that I don't think either python or node are suitable for building infrastructure type applications that will form the backbone of a constelation of SOA type applications. Round the edges, it's slightly more defensible. However for central infrastructure, I'd rather have rather more foot-bullet barriers than those offer.