Patrick McDavid

I'm a technology leader in Colorado speaking about serverless computing, team building, devops, and leadership development.

My Thesis

05 November 2018

I’ve been trying to spend a little more time reflecting on where I am, where I want to go, and where I’ve been. One of the largest single-product projects I’ve ever undertaken was my philosophy thesis, Spoken Worlds. Five months of writing to produce about 9000 words on the subject of linguistic relativism.

Linguistic relativism is an idea in linguistic philosophy whose thrust is that people’s thoughts are very much structured and confined by the language that they grow up in.

Read More

Working for the Best Company

03 November 2018

What’s important to you about where you work? Is it the people, the technologies, the processes? Is it success or fortune?

I’ve been interviewing technologists for the last several years and this is a conversation I’ve had time and again. As you’d expect, answers vary a lot, though there are certainly themes centered around where people are in their careers:

  • High performers earlier in their careers want learning and new technologies.
  • High performers in the middle of their careers want stability and good people around them.
  • Those same folks later in their careers tend to assume the former, but instead seek out hard problems.

I can now measure my career as being two decades old. I was 16 in 1998, and in lieu of pursuing my drivers licenses, I was instead trying to start a web development company. A number of now lifelong friends and I called ourselves X over Zero web technologies. A testament to our youthful idealism, we were charmed with the idea of the result of the equation X/0 being positive infinity. We had the now-defunct xoverzero.com and thought ourselves young entrepreneurs.

I remember turning out some bare-html table-designed corporate sites for a local telecom, a boutique sporting goods company, an electronics manufacturer, and something called CadetNet, a prototypical online forum for United States Air Force Academy cadets who were just getting computers in their dormitories.

A series of wonderful twists and turns, and a ensemble of wonderful and educationally sketchy people filled the ensuing professional years, and by some determination and luck I’ve found myself now with nearly half my career having been spent with a wonderful group that calls itself BombBomb.

You’d think I’d have exactly the right thing to say by now when people ask me to explain what this strangely named company is.

  • We make it easy to send simple videos.
  • We make software that lets you be there in person when you can’t be there in person.
  • We make video email.

Those are all wanting in different ways, but they’re all kinda right.

I joined BombBomb as a coder. They needed someone to lash together ideas as a software product that the very talented salespeople that had founded the company wanted to use for themselves to reach out to new and past clients. I was well suited for this, as a programmer I move very quickly, and that worked well for a few years to get exciting ne w features in front of users and prospects. Then we needed to do more: between 2012 and 2015 I hired half a dozen folks who matured and broadened our technical offering.

Then, in 2016, BombBomb started really growing in earnest, and my job changed: coaching, recruiting, product management, strategy. These were all challenges I’d faced in their infant stages, this was next level. Those around me faced similar new tests. Bruises and glory. New records and fights.

This job’s been everything I could want it to be: education, people, hard problems. I’ve known for a while this has been the best of my professional career. What’s BombBomb? Last night Colorado heard the same thing: BombBomb is the best company to work for in 2018.

Read More

Beyond full stack

29 June 2018

This is reblogged from my interview on BuiltIn Colorado

BombBomb’s video messaging app helps businesses drive sales and convert leads by building trust and engaging customers face to face — even when they can’t be physically present with a client. It’s a smooth, simple user experience that makes capturing, encoding and sending videos in real time seem easy.

The technology that makes all that possible, though, is far from simple.

Behind the scenes, BombBomb’s engineering team must go beyond full-stack development to create complex systems that work in the cloud, in bad connectivity and within single-digit seconds. We asked VP of Technology Patrick McDavid to dive into the details of BombBomb’s robust tech stack and explain both the opportunities and challenges he and his team face.

Tell us a little bit about BombBomb’s tech stack and why you chose those technologies.

BombBomb makes it easy to build relationships with simple videos. This seemingly straightforward endeavor requires a lot of investment on all sides of just-in-time video delivery. We work very hard to make sure no time is wasted in our users’ workflows. We’re both transferring and transcoding video in the cloud as people are filming — not after. This allows videos to be ready for delivery within single-digit seconds of the user pressing stop.

To accomplish this, we end up having to go further than using pre-built video SDKs in the browser and mobile platforms. BombBomb has to reliably and quickly capture video streams from laptops and cell phones in sketchy network environments. This involves choosing between WebRTC solutions and lower-level H.264 byte buffers, depending on the software and network environment.

On the cloud side, we employ a serverless NodeJS and FFmpeg pairing to enable parallelized same-job encoding work. This frees us from having to maintain a standing fleet of cost-heavy encoding servers. All encoding work is treated as burst work which scales seamlessly when we hit load peaks.

Outside of video delivery, we have a PHP7 monolith from which we’ve been extracting services as needed, usually to NodeJS. We blend serverless and containerized deployment as the case requires. New major efforts are usually deployed with Node and DynamoDB and Redis in small, independent services. After a brief Angular period in 2015, we’ve standardized on ReactJS for our front-end.

What are some of the challenges of working with such a robust and complex stack? How have you overcome those challenges?

We’ve had mixed success leveraging write-once-run-everywhere tools like Xamarin and hybrid mobile applications. Speed is always a major goal for us, and often we’ve struggled to get what we need out of web views on phones.

In the last couple years, we’ve gone all-in on native mobile development. This has meant some duplication of effort between our Android and iOS projects. We’ve mitigated some of this by finding useful cross-platform libraries that allow us to re-use knowledge and patterns between the platforms.

We rely heavily on our CI/CD pipelines, linting and a well-loved code review process. We also invest strongly in one another. We try to over-communicate every time; we work to level-up one another’s abilities; we host regular lunch-and-learns on patterns and technologies and book clubs on best practices to make sure everyone is well equipped for tomorrow.

What soft skills does someone need to be successful on your team?

Curiosity, humility, perseverance and excitement.

What is the most rewarding aspect of working on BombBomb’s product?

BombBomb’s been a very rewarding environment to work in, primarily because our software can have such a profound, positive effect on people’s lives and businesses. Despite our highly connected world, there’s an epidemic of facelessness in our online connections. Human beings have deep biological needs to be seen and heard, and to look into the eyes of another to help build trust.

Too often people are left trying to convey enthusiasm, opportunity and possibility with the written word when there’s no reason today to limit oneself that way.

Is there anything special about the processes this team uses?

BombBomb was early to the CI/CD revolution, which has always enabled us to move very quickly. One sticking point of this has been that agile sprints have felt slow to us. We’re very proud that we can deliver value to customers in very short order. We’ve successfully and enthusiastically matched our process to our continuous delivery ethos with a Kanban development methodology.

Primarily, Kanban enables BombBomb to pivot quickly without having to alter or abandon sprints. No work is promised until it is undertaken, and stakeholders can re-prioritize the backlog at any time. Team members work together to share knowledge and not over-specialize, so work becomes less coupled to particular team members.

How do you encourage developers — at any level — to innovate or think creatively about the problems you solve?

I often ask, “What are three ways we could do this?” It’s crucial to bat the challenge around a few times before taking a crack at it. I encourage my team to whiteboard, talk, take the problem to lunch, search and read, or go for a walk. Then we need to ask ourselves, “What about this can be thrown away? Is this really the problem to solve?”

Read More

A look back at 2017

11 January 2018

2017 was a year of upheaval and growth by necessity.

At Home

It’s a girl!

Our daughter, Wren, came in May. The second child is multiplicative rather than additive, for sure. Our son was two, so we’d seen a bit of parenthood, but the new effect started on day one with our son having brought a little impetigo infection to the recovery room. Ok, so our one-hour-old has to contend with the germ warfare going on at daycare from the start? That’s new.

She’s 7 months old now and wonderful. There’s a special kind of bliss seeing she and her brother being sweet to one another. We’ve found new routines, recipes and reactions that are keeping everyone fairly sane. The double-daycare-dropoff in the morning feels like a real fatherhood rite.

Why not buy a house too?

My wife and my relationship began around gardening. In 2012 we bought a small house with a huge yard, and proceeded to install four huge garden beds, a chicken coop, a pair of dogs, and generally fancied ourselves to be mediocre, though enthusiastic urban farmers.

With the second baby, our needs turned a little more practical, and our futures towards school districts and play dates. We toured about a dozen houses on the west side of Colorado Springs over the course of four months or so and worked Zillow like a job. Then one day we found the one, it was listed and we had an offer written on in within about eight hours. We really love it: cars in the garage, awesome great-room on the kitchen, 3/2 upstairs and another 1/1 down. Across the street from one of the biggest parks in town.

It all happened a little fast, and we haven’t officially sold our old place just yet, but it’s getting close now. I’d like to think the personal upheaval might abate through 2018, but I guess we’ll have to wait and see.

At BombBomb

BombBomb had a phenomenal year: revenue and staff headcount both grew in the ballpark of 60% over 2016. Our new prompt tools were a breakout success and promise to be a foundational element of how we build software at BombBomb for the next few years.

7 Technology Teams, sliced thin

2017 started with me having 16 direct reports across two teams: IT and Software Engineering. Over the course of 2017 I hired about 15 people, mostly software engineers. To make this at all sustainable, I had to graduate some exceptional engineering leads into formal team leaders.

This was the first time any of these six team leads had formally had direct reports. There was a fair bit of growing pains:

  • Moving people’s success cycles from engineering delivery to team member empowerment
  • Confidence in their position.
  • Rapport with team members and larger organization

We all read through The Five Levels of Leadership to gain a baseline shared language for our first few steps into this new responsibility step. We also set up a regular lunch with that group to share stories and troubles.

Elsewhere

Inman Hacker Connect

I hopped out to NYC in January to attend the inaugural Hacker Connect. This event is a Real Estate technology get-together for people pushing standards and innovations in that space. I especially enjoyed the talks on Blockchain for Real Estate and AR and VR for home tours.

DVLP Denver, DenverDevs

DVLP Denver is an awesome little conference put on by some technologists in Denver that had an eclectic mix of speakers touching on all things internet technology. The venue was especially delightful: four small art galleries in Denver’s Santa Fe arts district. BombBomb sent a contingent of four of us.

The best long-term takeaway for me was getting into the DenverDevs slack community. This is one of the best virtual professional technology communities I’ve ever encountered. There’re a number very helpful channels on specific technologies, and a playful community in general. Check it out!

coloradoSprings.js

Colorado Springs’ long term javascript meetup lost its organizer this year and I volunteered to take it over. We hosted two meetups in October and December: Serverless Applications and GatsbyJS. These have been going great, and I’m excited to host one every month in 2018.

CTO Summit

I learned about the NYC CTO Summit on a Wednesday and the next Monday I was on a plane. It was a wild hair, but it worked out great! My favorite presentation was by Yvette Pasqua titled, “Tackling technical debt at scale”. We’re putting a Continuous Application Health program together at BombBomb in Q1-2018 and we’re all very excited about the prospect.

Themes

2017 was about change and growth for me. Kids, houses, and starting to become a leader of leaders added up to a lot of gnashing and learning by failure. I intend for 2018 to be more about refinement and polishing the new world I inhabit.

Read More