Couchbase Vancouver Dev Day

couchbase-logoLast Friday I travelled down to Vancouver for the Couchbase Vancouver Developer Day. Just having joined the PayrollHero dev team, I was keen to learn about the NoSQL style of database, and Couchbase in particular since we currently use it in PayrollHero.

The goal of the day was to introduce developers to Couchbase 2.0, give them a basic understanding of how to set it up and use it, and then tackle some tougher areas such as how to query the data using views. The seminar was run by 3 developers from Couchbase – Technical Evangelists Tugdual Grall & Jasdeep Jaitla, and .NET Developer Advocate John Zablocki.  It was interesting to see the mix of developers attending the seminar – most mainstream programming languages were represented including Java, .NET, Ruby, PHP, Python and even node.js and Go. Amazingly there was some form of SDK for each of these languages, whether official or community created, proving just how much open source community support Couchbase has.

#Couchbase Developer Day Vancouver lab

from John Zablocki’s Twitter:

The morning was spent going through the features found in Couchbase 2.0 with Tugdual. He ran us through the core principles of Couchbase Server – easy scalability, consistent high performance, no downtime and a flexible data model, before discussing the new architecture and features of Couchbase 2.0.

One of the features I found particularly impressive was how Couchbase handles server faults by replicating across nodes in a server cluster.  The Couchbase client library detects when requests to a server within your cluster are failing, automatically promotes replicas of the requested documents on the remaining servers in the cluster to be active documents, and then rebalances the documents across the remaining servers.  Added to this is the ease in which you can replicate your data across data centers using Cross Data Center Replication (XDCR), meaning if your data center on the west coast of the country goes down entirely, you can ramp up your clusters on the east coast of the country without losing any data whatsoever.  An extension of XDCR is the ability to set up an Elastic Search cluster for providing scalable, real-time searching of documents.  You can see that a lot of work has gone into making this as painless to set up as possible.

Installing Couchbase 2.0 was just as painless – well at least for us Ruby guys.  The PHP guys seemed to have a fair bit more trouble (the price paid for still using PHP!) and any guys running 32-bit Windows were pretty much out of luck.  WIth Rails, its as simple as downloading and running the server, installing the libcouchbase library, and installing the couchbase gem. Done.

After everyone had Couchbase 2.0 installed and set up for their various environments,  we started to run through some labs to teach us the basics of Couchbase – connecting to the database, setting and retrieving documents, using atomic counters and optimistic locking, and observing when data has been pushed to disk and replicated.

jasdeepJasdeep – definitely the most vocal and opinionated of the three – used some of this time to proclaim the virtues of a NoSQL solution vs a Relational Database solution.  A line that stuck in my head was “I don’t care about duplicate data – I have 10 times the performance!”.  And he is definitely right about that.  Couchbase, like other NoSQL databases, is blindingly fast compared to MySQL or MS SQL.  By caching as many documents as it can in memory, and only caching to disk those that are the least requested, it can maintain request throughput at amazing rates.  “No need to write migrations, I can change the schema at anytime through my models since there is no schema”, he proclaims, before following with, “And no more joins! I hate joins.”


from Tugdual Grall’s Twitter:

After lunch, John stepped up to take us through the most difficult area of the day – views.  By using Map-Reduce views, Couchbase can create indexes of documents for quick querying.  He used the ASP .NET MVC framework to take us a through a fairly standard scenario, explaining how to construct views on Couchbase server to pull back subsets of data based on ranges, groupings, counts and more.  This was definitely the most brain-intensive part of the seminar, and late in the day few people had made it through the labs unscathed.  For most people who are heavily experienced in relational databases, it does take a while to shift your mind into thinking the NoSQL way.

All up it was a very well run and interesting day.  I particularly enjoyed hearing how the NoSQL movement evolved and how passionate the Couchbase guys are about their product.  PayrollHero already has Couchbase implemented as part of our clocking capture process, and will be looking to use it in other places where we require fast performance due to heavy traffic.  I look forward to using Couchbase more and further learning what makes NoSQL such a popular movement.

New Feature: Enable/Disable Email Notifications

Now within PayrollHero you can enable and disable the email notifications that go out from the system.  While you have always had the control to edit the emails, the ability to pick and choose which ones you wanted did not exist – until today.  Under “settings” and “email templates” you can edit, enable and disable each individual email that PayrollHero sends out.

Screen shot 2013-01-29 at 4.13.12 PM

PayrollHero Welcomes its First Engineer in Residence!

Screen shot 2013-01-23 at 6.41.10 PMDane Natoli is the newest member to join the Payroll Hero team here in Whistler! Dane grew up in Melbourne, Australia but experienced the Whistler lifestyle for the first time in the 09/10 season during the craziness of the Winter Olympics. After the Whistler Olympics he returned home to Melbourne, Australia and re joined his job as the Software Team Lead for the Agile development shop, Lambda Software. This was all made possible by his Computer Science Degree that he received from RMIT 2007. To add to his extensive resume he also has created a website called Yaktracker, which follows his adventurous friends on their journey to drive from London, England to Ulaanbataar, Mongolia.

It’s not all work and no play for Dane! He is a huge fan of the slopes when he’s not found having a brew or enjoying some couch time with his Xbox. Lucky for Dane he is now able to put all his passions to use.

Dane joins us as apart of EIR, Engineers in Residence program. Designed to further the cultivation of one of our Engineering Core Values “Thirst for Learning”. We’ve experience that rotating engineers from different cultural backgrounds and experiences brings more to the table and enables us to continue to be agile and introduces us to different lines of thinking.

We are overjoyed to welcome Dane to our team, he is going to be a huge help. We look forward to having Dane be apart of our team and bring his personal ‘land from down under’ approach to his work life.

Oh.. what’s the deal with boots? We thought it was funny that it is common form in Whistler to leave your winter boots at the door and swap into slippers just like Mr. Rogers – no one wants a puddle at their desk.

Wanna explore a fit with the Whistler Engineering Team? We are always looking for new teammates to learn, explore and adventure with; be it at one of our offices and when playing outside! Just drop me a line and let’s chat.

PayrollHero: Philippine Feature Set

I was asked the other day for a list of features that PayrollHero has for Philippine companies.  Here are the main features of PayrollHero for clients in the Philippines looking for Philippine payroll.

If you have questions or want to chat further about how PayrollHero can help your business – feel free to fill in the form at and we will be in touch right away.

Clock In/Out
Break In/Out
Grace Period for Lates

Review attendance
Resolve Attendance
Edit Attendance
Export Employee Attendance Report
Resolves Lates and Absences
Resolves Undertime
Resolves Overtime

Create Shifts
Create Multiple Shifts
Schedule Calendar
Weekly Scheduler
Paid Day Off
Unpaid Day off
Scheduling Worksites (location)
Non-scheduled clock ins
Calendar Notes/Events

Gross and Net Pay Calculations
Tax Computation
Government Mandated Contributions
13th month pay calculation
Calculates Pay for Special Holidays
Calculates Pay for Regular Holidays
Calculates Payroll for all kinds of Holidays
SSS, Philhealth, PagIbig reports (monthly and quarterly hardcopies)
Paysheet reports, payslip reports (Detailed and summary)
Payroll Register ( Breakdown of Payroll, this report allows to specify an arbitrary date range to report)
Bank reports (electronic and hardcopies) PH integrate to your bank own payroll program.
BIR reports (1601C, 2316, 1700, Alphalist (soon)
Employees ID Card Template with company Logo
“Various employment documents
– Government Certificate of Contribution
– Certificate of Employment”
Various Forms ( for employees application in various Government agencies) BIR 1902 ( TIN application, SSSE1 ( SSS application), Philhealth M1A ( Philhealth application), Pag-Ibig FPF090 MDF ( Pag-Ibig application).

Philippine Payroll File Support:

Weather vs Attendance
Home Location vs Attendance