Dave Haeffner has had a varied career that began with a degree in networking engineering. He worked various roles in IT operations, eventually stumbling into QA and test automation without a background in programming. This started him on a path that ultimately lead him to author ‘The Selenium Guidebook‘. Along the way, he’s helped various companies implement automated acceptance testing (The Motley Fool, ManTech International, Sittercity, and Animoto), spoken at numerous conferences and meetups around the world about how to use Selenium successfully, and is an active contributor to the open source Selenium project.
In June 2018 he moved to Tel Aviv from the US to join Applitools as the second member of our open-source Selenium IDE team, working closely with Tomer Steinfeld. We sat down with Dave to talk us through his career path and the work he currently does to improve Selenium IDE.
Hi Dave! Thank for joining us! To begin with, could you tell us a little about your background and how you ended up becoming a Selenium expert?
I actually went to college for network engineering at a small state school in upstate New York, which is a business school. I chose this program because, at the time, I was really into computer networking and gaming. When I discovered that there was a degree that meant I could do the things I love for a living I was sold!
After qualifying, I began working as a network engineer in a state hospital. It was a very specific role. I quickly realized I needed more opportunities for career growth. With this in mind, I moved to DC to work as a support engineer for a boutique consulting firm. Eventually, I got burnt out on the work and became intrigued by the startup culture that was beginning to flourish in the tech industry.
A friend of mine worked at The Motley Fool. The concept of a flat organizational structure, working with great people and learning more about software testing drew me in. I joined The Motley Fool as part of their desktop support team and used this platform to learn more about their software development team. After a couple of years in that position, there was an opportunity to transition into a role in QA. I wasn’t really sure what that entailed, but I was up for a new challenge.
How Was Your Transition to QA?
As it turns out, test automation was a hard thing in 2009. My new team had invested quite a lot of effort into test scripts with Selenium IDE and were having loads of issues with maintaining them. Like me, none of my teammates had a background in programming. This is really where my software testing story began.
I was fortunate to be in complete ignorance of how much I didn’t know. I dug in and started to look for ways to make the Selenium IDE scripts more maintainable and reliable. The wisdom of the crowd suggested that you needed to export your tests to a programming language and mold this code into something reasonable (e.g., a test harness). Unsure if we were on the right track, we gave it a shot. It seemed to help, but it was difficult as we were all fairly new to programming. That same year I had the opportunity to attend the annual Agile conference. While there, I got to meet the creator of Selenium, Jason Huggins. I told him about our trials and tribulations with Selenium IDE and code export. He said ‘It’s really hard, but you’re on the right track, kid.”
Filled with props from Selenium’s creator, I returned from the conference eager to keep going. Along with the help of some of my developer colleagues, we were able to make significant improvements in our automated testing practice. The following year, I returned to Agile as a speaker to share our story and lessons learned. As a result, Selenium became such a big part of my life that it afforded me the opportunity to branch out on my own and move into the world of consulting.
What was it like branching out on your own into consulting?
I’d always wanted to be an entrepreneur and the consulting thing naturally grew from my interest in Selenium. Working with a group of customers I gained insight into the limitations that teams encountered when trying to adopt practices using Selenium and how difficult it can be for teams to use test automation. I quickly realized that a lot of the problems around the tooling were the same — the same impediments, the same questions, even in the same order. It was like a Power Law! So I began writing them down and decided to organize a local Meetup to connect and learn from other practitioners.
I kept getting a lot of the same questions over email about Selenium and realized that it would be a lot easier to answer the question once, publish the solution online, and refer people to it. This is how I started my weekly Selenium tip newsletter (Elemental Selenium). Eventually, my work with Selenium started to become a known quantity, and my book (The Selenium Guidebook) evolved from this.
What convinced you to move your family to Tel Aviv and work for Applitools?
Back when I was applying for college, I had the opportunity to look at computer science. At that point, after being homeschooled I wasn’t confident in my math abilities, which put me off applying. I guess, I always wondered what it would be like. So, while I was consulting I tried to fill that void through self-teaching — starting with some of the fundamental programming books (e.g., The Gang of Four book, Working Effectively with Legacy Code, and Refactoring) and applying them to projects as I went along.
To be honest, I was hesitant to work with a company. After being self-employed for the better part of a decade I thought it would be a tough transition. Also, I wasn’t sure if a company would be open to hiring someone who is an expert in one area but mediocre in others. But Adam Carmi (CTO at Applitools) saw an opportunity for my expertise that would also allow me to work on my software development skills. Applitools is making an impressive investment in the IDE, with two people to working full-time on its development (me & Tomer Steinfeld). It was a unique and rare opportunity that I couldn’t pass up. Plus, I’d always wanted to live in another country.
Right now, I’m working with Doron Zavelevsky and Tomer Steinfeld. Their depth of knowledge is impressive, as is their willingness for knowledge sharing. As I work on Selenium IDE, I often reflect back to my early days with the tool and think — I’ve come full circle.
Sounds like it’s working out to be a great match! Could you tell us a little about your role?
Working in open source is great, but it’s not without challenges. We have a lot of constraints, both technical limitations and a large backlog of development and feature requests. Selenium IDE is built as a web extension which also presents some unique challenges. As does writing record and playback functionality in the browser (hello edge cases!). But it’s a lot of fun, and we learn something new every day.
You Must Have A Lot On Your Plate!
Absolutely, but that’s what makes it interesting. Selenium IDE has a history of neglect. It’s been good enough for some, but terrible for others. The amount of interest to push the tool forward often peters out. Here, it’s our job to make it into a robust tool that helps people with end-to-end testing in the browser. We’re working to make the tool more reliable, more powerful, and more intuitive. Ultimately my goal in this role is to remove the stigma attached to Selenium IDE and record-and-playback. I continue to learn good software development practices along the way (and also improve my Hebrew!).
What Else Do You Want Readers to Know About Applitools?
Our engineering team is hiring! Take a look at our job openings and get in contact to find out more: www.applitools.com/careers