Sometimes it's very enlightening to look back at the beginning of a project to see how things got set up and how we started down the path that led to where we are today. In this post, I'm going to talk about the first ten tickets we created at World Singles as we kicked off our green field rewrite project five years ago.
Entries Tagged as worldsingles
June 03, 2014 ·
December 23, 2013 ·
If you've seen my tweets over the last couple of days, you'll know that I've been taking a look at TestBox, the new testing framework from the ColdBox team.
You might be thinking "Do we really need a new testing framework?" and it's a reasonable question. CFML has had a number of testing frameworks over the years but mostly we've seen each one come and go as maintainers have moved onto other things: cfUnit, then cfcUnit, then a brief resurrection of cfUnit, then MXUnit. Does anyone remember cfSpec? I liked that a lot - I like the Behavior-Driven Development style of writing tests. That's why, at World Singles, we use the Expectations library for almost all of our Clojure-based tests.
So why the interest in TestBox? My initial interest was spurred by the inclusion of the BDD style of tests which I find both more natural to read and a better fit for expressing requirements for software that is yet to be written. Then I read that TestBox has MXUnit compatibility which intrigued me - we have been using MXUnit for several years at World Singles and I don't relish having to rewrite all those tests. If TestBox could allow us to run our existing "xUnit" tests as-is while we write new tests in the BDD style, I'd be very happy.
Adam Cameron has been blogging about Test-Driven Development recently and has also picked up on TestBox. He just blogged about trying TestBox on his extensive MXUnit test suite and you can see he ran into a number of issues, all of which he has reported, and which I expect we'll see fixes for. My experience was more fruitful than his - as I mentioned in my comment on his blog post: just two small changes got the whole of our suite running flawlessly!
My next challenge was integrating TestBox into our automated build / test script, which uses Ant. TestBox provides a runner-template that shows how to do basic Ant integration. I followed that recipe but discovered there was no way for Ant to see that any tests failed and so I couldn't "fail the build" if TestBox found errors or failures. After studying the source code briefly, I realized I could extend the TestBox CFC and provide a way for the runner CFM template to access the details of the TestResult object, and write a property file that Ant could read and fail if a certain property was set. Time to fork the ColdBox Platform Github repo and send a Pull Request to add build failing functionality which Luis merged in within a few hours! Nice!
With that in place, I was able to delete MXUnit from the World Singles repo and rely entirely on TestBox for all our testing needs!
Whether you prefer the "xUnit" style of tests, with assertions, or the "BDD" style with expectations, TestBox can support you, and even if you have a lot invested in MXUnit, migration to TestBox should be straightforward (especially once they address the issues Adam has raised). I think we can be sure of ongoing support and maintenance - based on the well-established track record of the ColdBox Team. I think TestBox is a safe bet. Now you just need to start actually doing some automated testing :)
January 20, 2013 ·
[UPDATED] Welcome to 2013 and at World Singles we are expanding our development team! We're looking for self-motivated people in two very different roles, working remotely from their home office.
August 10, 2012 ·
We're expanding our Clojure / CFML development team and looking for our next "Senior Web Applications Developer". You'll get to work from home full-time, with myself, Charlie Griefer and the rest of our small (but growing) development team spread out across the USA. You'll work on our Internet dating platform in both CFML and Clojure. We're all-Mac for development and all-Linux for deployment so you'll need to have some *nix chops and we'd prefer folks with MySQL and MongoDB experience. Yes, I know that's a pretty specific set of skills but we can be flexible if you're the right person for the team.
I've been with World Singles full-time for two years now (and about a year of consulting before that) and I think they're a great bunch of people, solving an interesting set of problems, with millions of customers all around the world - so you get real world feedback about what you produce! I love working here and I'm looking forward to growing our team.
You can read the official job listing on Craigslist (and that's how you apply - send your resume and cover letter to the address listed there). Feel free to ask me questions about the role, either in comments here or directly via the contact me page.
April 10, 2012 ·
Yesterday I posted that we're looking for a back end / data-centric developer, today we've posted a new req for a front end developer!
As before: World Singles is looking for a smart, motivated developer to join our small, fully distributed team of engineers, working on our multi-lingual, multi-tenant Internet dating platform.
For more details, and to apply, see our Craig's List post: http://bit.ly/worldsinglesuijob
April 09, 2012 ·
World Singles is looking for a smart, motivated developer to join our small, fully distributed team of engineers, working on our multi-lingual, multi-tenant Internet dating platform. We're after someone with strong data management skills who can help us mine and analyze data in both MySQL and MongoDB, as well as help us leverage both more effectively. For more details: http://bit.ly/worldsinglesjob
The World Singles code base is a blend of CFML and Clojure - this role would be mainly on the Clojure side of the house but the primary skills needed are MySQL / MongoDB.
January 25, 2012 ·
I was very pleased today to get confirmation that my team are all going to Clojure/West in San Jose in March!
We've been a CFML house for a decade but we're using Clojure more and more on the back end to provide a high-performance, concurrency-safe foundation for our application. Back in December a couple of us attended Clojure/conj, with three days of Clojure training for one of our team. Now we're training up another team member on Clojure, and in March three of us will attend the Clojure conference, with training on Cascalog (big data analysis) for one of our team.
It's an exciting time to be a developer!