An Engineer’s Approach to Marketing

Philipp Spiess
3 min readJul 15, 2018

This article was originally published in March 2014. The original version is no longer online.

Several years ago, I was working on a platform for photographers to schedule the publication of their best shots on different platforms. You may think of it as Buffer for photographers. To drive more traffic to the website, I was struggling with finding ways to attract potential customers.

The Perfect Customer

We specialized on three major photography platforms at that time: 500px, Flickr and Facebook. All of them are heavily used by photographers, and we knew that our target customer would use two or more of those platforms to share her beloved photos.

The photographers we wanted to reach were on 500px, Flickr, and Facebook.

We searched for photographers who were publishing on two or more of those platforms, because we thought that those would benefit the most. When we finally found one who matched our requirements, we wrote a very personal email to them. We never wanted to use predefined emails because adding a personal touch was very important to us. This manual approach worked well but it required way too much effort.

Scaling it up

We liked to use 500px’s “Popular”, “Editor’s Pick” or “Upcoming” channels for picking photographers. Those pages are regularly updated and cover a wide variety of photographers. To make things faster, I started to write a small bookmarklet which reduces the opacity of photos, if the photographers didn’t match our requirements. The bookmarklet injects JavaScript and asynchronously loads every photographer’s profile, to see if she is also active on Facebook and Flickr (the source code is still on GitHub).

The script identified potential customers by increasing the contrast.

Idempotent Requests

The script worked like a charm. My colleague and I used it to send acquisition emails as often as we could. It didn’t take long until we realized that we’ve been sending emails to the same photographers 😱.

To solve that problem, I created a web app that let us enter the email addresses and run a uniqueness check first. To speed things up, we added predefined email messages, which we just needed to enhance with a personal paragraph. We used basic HTML mailto: links to send emails as quickly as possible. We even kept track about reply- and sign up rates and had ambitious plans to enable A/B testing as well.

The web app was a basic Ruby on Rails application with one table.

Making It a Challenge

We contacted about 150 photographers with this method and had a sign up rate of about 15% and a reply rate of about 7%. To keep things fun, we decided to make this a challenge and tracked who of us sent the most emails. In the end, my colleague unfortunately won with a total of 67% of all emails sent.

All of that was a fun experiment that helped us find great customers.



Philipp Spiess

Lead Engineer at PSPDFKit for Web and React DOM team member. Curator of This Week In React. I love learning and building usable interaction designs.