Supporting Millions of Pretty URL Rewrites in Nginx with Lua and Redis

by on October 13, 2014 · 0 comments

About a year ago, I was tasked with greatly expanding our url rewrite capabilities. Our file based, nginx rewrites were becoming a performance bottleneck and we needed to make an architectural leap that would take us to the next level of SEO wizardry.

In comparison to the total number of product categories in our database, Stylight supports a handful of “pretty URLs” – those understandable by a human being. With http://www.stylight.com/Sandals/Women/ you have a good idea what’s going to be on that page.
[Read more…]

3 Reasons Why Your Team Needs Rituals

by on July 10, 2014 · 1 comment

It’s the same every morning: you get up and grab your morning coffee. No matter whether you brew it at home or fetch it on the road, your morning coffee is a ritual you never want to miss.

A ritual is a practice everyone knows how to do. It’s conducted regularly or on well defined occasions. Rituals help to create an identity for a group of people: nations, sports clubs or teams. How can rituals help form a high performing team?
[Read more…]

How Hubot Automation Crystallized Trust within our Development Team

by on February 20, 2014 · 0 comments


“Hey Dan, could you deploy the coolPics branch to test? Sorry for the bother :(”

“No problem, man. Tell me the SHA and I’ll deploy it.”

I had been having this conversation 4-5 times a day for a couple of weeks now. Being a huge fan of continuous integration, I wondered how to automate this. Why shouldn’t the developers be able to push whatever they wanted to test?

A colleague, overreading this back-and-forth in our HipChat room, told me to take a look at Hubot. It was custom made for automating rote tasks like webapp deployments. One weekend later, I was hooked. Here’s how I took the first step in transforming our abstract sense of team trust to tangible ownership.
[Read more…]

Test Driven Chef Cookbooks With Meez

by on February 6, 2014 · 0 comments

When cooking a new dish, things get out of control if you try to manage too many things at once

You might face a similar situation when trying to write a new Chef cookbook.

Getting your arms around all those tools and frameworks needed to write solid, tested cookbooks gets you spinning. You need to install Food Critic, Chef Spec, Berkshelf – and the list goes on. This set up can easily take up to half a day or more.

French Chefs arrange all the ingredients which they’ll need well before they start cooking. They call this set up procedure „Mise en place“, or in short „Meez“.

And you should do the same

That’s what Meez is all about. It’s a Ruby Gem which creates a cookbook for you which has puts all these tools in place before you start cooking. Now you can work like a professional Chef concentrating on the recipe at hand instead of juggling new tools.
[Read more…]

Why you need to customize your agile methods

by on September 19, 2013 · 0 comments

You’re starting off with a new laptop. The OS is installed, but using it feels awkward. Nothing looks like it used to on your previous one. You’re really frustrated how slow you move around just because you’re missing your beloved customizations.

A few days later you feel the flow again. You’ve tweaked your OS and apps to best fit your workflow.

Your agile process also needs to fit your workflow

[Read more…]

If Devs Own Testing, Ops Owns the Environment

by on July 25, 2013 · 0 comments

The devs are all writing automated tests and some are even experimenting with TDD. Congrats! But what happens when the build server breaks? Who’s taking care that Continuous Integration is running smoothly? Seems to be an awful lot of red in there…

Unlike writing the first basic tests, CI is hard. Did the test fail due to an application bug or is it the environment? Once again, the dreaded chant of “it works locally” is taken up. What most people fail to understand is that the failing test is the first sign of a communication breakdown between developers and sysadmins.
[Read more…]

Leadership In the Online Age: A Reflection On Team-Building

by on July 18, 2013 · 0 comments

In the last decade of my career, I’ve been extremely fortunate to have worked with some of the best people I’ve ever known. A big contributing factor to this is the tech-savvy, expatriate culture that exists here in Munich as well as the type of people you typically find abroad who have left their home countries to pursue their dreams. It’s a dynamic that provides an immediate and powerful bond: we have to learn an a lot of things in a short timeframe and sometimes we’re terribly homesick, but we’re not alone. When we combine our strengths and help each other, we achieve something great.

For as many teams as I’ve had the privilege of leading, I’ve often been asked how I did it? How did I take six or seven individuals from different countries and turn them into a team? The question always catches me a bit off-guard because I don’t consciously do this – and I think that’s key. You can’t force anyone to work together as a real team and the harder you try the faster you’ll push them apart. Plus, it’s currently a developers’ market. They can work wherever they want to and they know it! How do you walk this tight-rope and successfully lead a team of rockstar developers?
[Read more…]

Why Teaching Developers To Test Is A Good Investment

by on July 11, 2013 · 1 comment

Test a developer’s software and you’ll find bugs.
Teach a developer to test and they can release their software.

A bit of a twist on the old fish and eating maxim, but the same idea: teaching a skill enables self-reliance and self-confidence. And, while it’s harder than quickly doing someone a big favor, teaching is scaleable in a way that quickly refutes another old adage: we have so many bugs because we don’t have enough testers!
[Read more…]