I have been engaged with the use and development of technology in one form or another since I was young, and am several decades into my career as a software developer. For the last 10+ years I've focused heavily on open source work, and have had the privilege of doing a fair bit of speaking on the conference circuit about specific technical topics as well as the philosophy of technology.
I consider myself a software engineering and design generalist and have worked in all kinds of programming languages and application development stacks. Here's a selected list of roles, and major technical or entrepreneurial projects!
I lead the Automation Technologies team at HeadSpin, the app UX intelligence platform. HeadSpin lets you run all kinds of automated, performance, and other UX validation against your mobile, web, or media app, leveraging real-world devices and locations, along with a good dose of AI/ML to give you awesome reports about your app's quality. Previously at HeadSpin, I founded and still lead HeadSpin University, where we feature an extensive web and mobile test automation course I produced called Appium and Selenium Fundamentals. Part of my responsibility at HeadSpin is to continue to maintain and support the Appium ecosystem.
I maintain Appium Pro, a (formerly) weekly blog and newsletter focused on mobile test automation topics. I started writing Appium Pro in early 2018 along with the founding of Cloud Grey, and it has become the definitive resource for Appium how-tos and tutorials on the Internet. HeadSpin acquired AppiumPro in 2020.
In 2018 I founded Cloud Grey, the Appium-focused consultancy, to meet the need of large companies trying to be successful with the tool. Especially in large and complex testsuites or organizational structures, it's easy to wind up with a sub-optimal Appium setup. Cloud Grey offered training, testsuite architecture, and a host of other services to enterprise clients. In my role as founding principle I also advised key companies in the industry.
I helped to start (with Daniel Conrad) this social recommendations company. Rather than giving people a list of business to try, we approached the recommendations problem with the idea that recommendations are highly relative to someone's needs and desires. So we built a mechanism for succinctly stating those desires in the form of a question which people answered---these answers were recommendations which were reused around the site.
I helped to start (with Brad Wolfe) this company designed to bring creativity and inspiration to online engagement. We encouraged people to add their own creations to the community; along with each creation was its "backlight", i.e., the story of what inspired that creation. We built an amazing community of people and a library of inspiring content. We were also a part of the 2008 fbFund REV accelerator class.
I've spoken at dozens of conferences, meetups, and webinars around the world on various topics, mainly to do with automated web and mobile app testing, or open source development. I'd be happy to consider speaking at your conference or internal company event! Here is a set of highlights from my speaking career so far, including video, audio, or slide links when possible. (If you're looking for information about me to add to an event, you can find my professional bio and headshot for event purposes at the About page).
I celebrated the official launch of Appium 2 with a set of webinars hosted by HeadSpin. This talk was presented in order to give a bit of the backstory behind Appium 2's development as well as showcase the set of new features and changes to be aware of when adoping Appium 2.
Here's the AppiumConf 2021 keynote, which happened during the Covid-19 pandemic, making it impossible for us to hold the conference in person. My secret demo for this talk was to produce an Appium 2 plugin for automating Unity-based games! Appium 2 was not yet released and so the rest of the talk was as discussion about the development process for it.
I was a guest on this StackOverflow Podcast, where we discussed open source community health, the philosophy of technology, and music. I played a bit of live music for the show, and the full version of the song I played is also available online: When There Was Still Code to Write (Ukulele Version).
As someone who works as a professional in the field of software automation and automation tools, I wanted to apply some critical philosophy of technology to the specific topic of automation. This SauceCon 2017 keynote talk was a perfect opportunity for such reflection! It culminated in a completely automated performance of a song I wrote with Appium driving various instruments including a text-to-speech synthesizer. Kind of spooky, actually!
This was my first opportunity to give a presentation at a tech conference that wasn't about a technical topic. Instead, I got to share some of my thoughts (and worries) about the place of technology in our broader lives. In this presentation I tried to elucidate the concept of the "Device Paradigm" and explain why it mattered to us as practitioners of technology. It was also fun to build a realtime demo where attendees could write how they're feeling and have it float across the screen, while I performed an original song written for the event!
Before there was
await in JS, we had a brief moment of freedom from callbacks using
generators! Here is my contribution to that syntactic conversation.
In this presentation, I showcased a pretty risky live demo, involving playing a song I'd written with a backup band consisting of mobile music apps automated by Appium.
This was Appium's formal debut on the world stage (not counting the demo of an early incarnation of the idea that became Appium, which was demoed at SeleniumConf 2012).
Philosophy of Technology
I enjoy thinking critically about the technological enterprise in the modern era, and write about this topic on my blog. In addition to a few of the talks above which relate to the philosophy of technology, here are some more examples of my work in this area.
With the recent and sharp rise in the adoption of AI assistants, particular in fields formerly related to creative work, I felt the need to put forward my thoughts on the consequences of AI usage for human creativity. I argue that while AI assistants embody a huge amount of promise in terms of making creative production easier, there are tradeoffs and dangers involved in their use, particularly for our human faculties that we prize most highly.
At the beginning of the Covid-19 pandemic there was a lot of discussion around the place of church in public life during quarantine. Online-only services started to pop up, prompting the question for many of when church would make the jump to a completely virtual reality. I wrote this article to explore some of the philosophical and theological foundations of VR and what "VR church" might even mean as a concept. Spoiler alert: I'm not bullish on VR church!
Together with Matt Germonprez and Sean Goggins, I published this paper in First Monday, a peer-reviewed journal devoted to the topic of the Internet. The abstract is as follows:
My first foray into the philosophy of technology was via the work of Albert Borgmann, and specifically his book Technology and the Character of Contemporary Life. His ideas were so powerful and fruitful for me that I wanted to get to know them more intimately as well as to make them more easily accessible to non-philosophers. And so I set out to blog through each chapter of his book, summarizing and explicating the important points. Ultimately, this work even opened up the possibility to meet the man himself, and to have the wonderful opportunity to interview Albert at his home in Montana.
In 2015 I attended the annual conference of the Society for Philosophy and Technology, in an attempt to learn more about the field of philosophy of technology. I gave this paper at the conference, discussing Albert Borgmann's "Device Paradigm" in conjunction with open source software.