Buy me a book
Open Source Projects
This is a simple tool to help with copying the contents of a memcache cluster into a new one, helping with migrations.
is a high-throughput distributed publish-subscribe messaging system written by the LinkedIn Data Team. I contributed a Golang client providing both a Producer and a Consumer for v.0.5 - 0.7.x.
Layer-based scheduling algorithm for parallel tasks with dependencies. Determines which tasks can be executed in parallel, by evaluating dependencies.
Given a list of entries (each with its own dependency list), it can sort them in layers of execution, where all entries in the same layer can be executed in parallel, and have no other dependency than the previous layer.
* Start cli tasks automatically
* Maintain the desired number of worker processes for each task
* Handle automatic restarts when a worker dies or stalls
The task manager is be able to start any cli (shell) script from the chosen directory. For tasks that are long-running and meant to be monitored continuously, each worker process should send regular keep-alive messages via a ZeroMQ PUB-SUB channel to communicate its health, and should handle SIGTERM messages when asked to terminate. If the worker doesn't respond to a SIGTERM signal, it will be killed with SIGKILL after a (configurable) grace period. The number of workers stalled/stopped since the task manager was started is reported in the task status.
Golang client library for StatsD
. Contains a direct and a buffered client. The buffered version will hold and aggregate values for the same key in memory before flushing them at the defined frequency.
is a high-throughput distributed publish-subscribe messaging system written by the LinkedIn Data Team.
I contributed a PHP client providing both a Producer and a Consumer for v.0.5 - 0.7.x.
Experimental rewrite of libSVM and LibSVM-Plus.
Developed several Automatic Text Classifiers (with focus on opinion mining and sentiment analysis) and an Information Extraction system for a R&D job with a fund granted by the Research Consortium of Turin Polytechnic. Field: machine learning. Languages: C, C++, Java.
Seagull is a mature OOP framework/CMS for building web, command line and GUI applications.
The Web Application Component Toolkit is a PHP framework for creating web applications. WACT facilitates a modular approach where individual, independent or reusable components may be integrated into a larger web application. WACT assists in implementing the Model View Controller pattern and the related Domain Model, Template View, Front Controller and Application Controller patterns.
PEAR is a structured library of high quality open-source code for PHP users. PEAR's mission is to provide reusable components, lead innovation in PHP, provide best practices for PHP development and educate developers.
has been working with large enterprise UK companies
for the past 10+ years and is currently CTO
He's an international conference speaker
and a long-time contributor
to many open source projects
, Book Review
, Cheat Sheet
, Data structures
, Firebird SQL
, Message Queues
, SQL Server
, Zend Framework