Professional Portfolio Web Applications and Software I made for others
2011-2013: Watu - SaaS management suite for temporary staffing agencies
Ruby on Rails v3.2 and 4.0, HTML5, JavaScript, jQuery, PostgreSQL, SolrSummary
Watu is a full-suite SaaS product to manage all the business needs of temporary staffing agencies.
It's a multi-tenant service, serving hundreds of agencies from a centralized served, billing them monthly on a typical SaaS fashion.
I joined Watu in its very early days and, together with their CTO, helped take the product to a full set of features that could be sold to agencies.
My main responsibilities were the Job Scheduling and Shift Booking features, Expense Reporting for staff members, Payroll and integration with Payroll services.
Highlights
- Performance: Very fast execution and lots of database and queries optimization to have fast access for sophisticated reporting in a large database. Hundreds of agencies handled with just one server that ran quite cool.
- Messaging: Powerful messaging infrastructure including configurable templates with replacement variables, SMS sending (and billing), and allowing e-mail and SMS recipients to reply back, trace the original message and construct a coherent tree for the message thread (hand-coded, services to do this weren't available at the time).
- Payroll: The system calculates, at the click of a button and in a few seconds, a full payroll output detailing what each of thousands of employees needs to be paid each month, based on the shifts they worked, expense reimbursements, bonuses, fines and overtime. In the UK, this includes integration with a partner to get an output with full custom payslips and tax deductions. In the rest of the world, the output is compatible with several popular accounting packages, making it easy to get the payslips.
- Smart search: Smart natural language search in a fully customizable profile system using Solr (front-end to Apache Lucene), including geographical search, data ranges, complex composition operators, and automatic keyword extraction from profiles.
- Billing: Monthly billing of customer credit cards based on actual system usage (thus, variable amounts each month), fully-compliant with PCI-DSS requirements, and with a spotless track record of never charging an incorrect amount through thousands of invoices.
- HTML5 Features: Usage of webcam for expenses reporting (for fast scanning of receipts through getUserMedia API), or drag-and-drop uploading. Advanced (for the time) CSS3 features that achieved complex designs with minimal images. Responsive layout and complex print stylesheets that provided useful printed output very different from on-screen contents.
- Deployment: Fully automated "one-click" server configuration and deployment using Git, Puppet and Capistrano.
- Automated testing: Wide code coverage using TestUnit and browser-level automated tests using Capybara. Continuous integration done with Travis CI.
What my colleagues said about my work
"Daniel is a rare beast, understanding the big picture, technically and commercially, whilst being able to identify and define the minuscule detail that will make the wider vision achievable. Equally adept at designing features and writing complex code, he works at a pace unrivalled. Add to that a great sense of humour and deep knowledge on the weird and the wonderful, he was a great colleague and is now a good friend."
"I have worked with Daniel twice. We first did a part-time startup called Hear a Blog in 2010, working with .Net technologies, and then we collaborated again in 2012-2013 in my startup, Watu.
Daniel is brilliant and he’s one of the most productive people I know. He is very good at finding creative solutions that require minimal disruption to the code. At Watu he was able to iterate really fast on features and bug fixes following the demands of our customers, who were very happy to deal with Daniel.
As a disclaimer, we are friends, but I have many coder friends and Daniel is the one I chose to work with, twice."
Back to Professional Portfolio