Patrick McDavid

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

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

Monthly Hackathons at BombBomb

01 December 2017

Reblogged from developer.bombbomb.com

I’ve had the enormous fortune to lead an engineering organization comprised of women and men who delight in challenging one another every day. This camaraderie leads to better products, more creativity and a happier workplace. At BombBomb we often get to work on really cool stuff that pushes our ability and knowledge, but at the same time these tasks are often that: assigned work. It’s gotta be done, but how can we really lean to the other side and let engineers run wild?

Hack Week 2015

In the spirit of freedom and innovation BombBomb held it’s first hack week in the Spring of 2015. No sprint planning, nothing assigned, just five days of developer-driven creative expression. We didn’t go in completely blind, we’d read up on Spotify’s similar tradition. So the rules were simple:

  • Pick a team, or go alone
  • Work on anything that would be awesome at BombBomb
  • Be ready to show off on Friday

It was awesome. People played with ElasticSearch, WebSockets, and new ways to engage BombBomb staff with customers. Some of these projects were the seeds that became crucial everyday systems at BombBomb.

Years Pass

We knew this was a new staple: a week in spring to experiment and impress. We get the whole company together at the end of the week and show off what’s possible. We also learned to document these more thoroughly, and produced great round-ups on BombBomb Hackweek 2016 and Hackweek 2017. You should really explore those posts to get some deeper insights on some of my favorite projects, like:

  • “Hey Siri, send a BombBomb Video to Mom”
  • Android Wear shutter release
  • Machine Learning Experiments
  • Face, gender, attention and mood recognition
  • Automatic global application delivery and failover

Annual hack weeks are a hit, no doubt, and I’d recommend them as an innovation-rich, deep team-building exercise. You can really have them crescendo in an event for your whole company and its larger sphere. But, what happens the other 11 months of the year? On the positive side, hack week takes on a mystique, a real treat to look forward to in the spring. People link back to their presentations, or work in bits of time to polish their experiments into products. On the flip-side, we hired nearly ten new developers this year since the last hack week, so to them hack week is a little unreal yet.

Monthly Hack Day

We wanted a mechanism to allow our engineers to follow their passions more regularly. We read a bit: Google has their 20% time allowing about a day a week to experiment. LinkedIn has InDay where each month employees spend a day exploring themes such as: “giving back, relationships, learning, wellness and play.”

We liked a number of these approaches and so, starting September 2017, we broadened our hack culture to include a monthly Hack Day on the first Thursday of the month.

For the most part it’s been a success. With the limited time, projects have been far more prototypical than what comes out of a full week, having a little more of a what’s-possible flair. There’s a bit less planning and communication: two engineers happened to tackle speech transcription projects separately and unbeknownst to one another on the same day. Quite the surprise at demo-time the following morning. With the smaller time-box practicality is rearing its head: a pair of engineers went on a day-long documentation clean-up spree. Good, small works.

Having the single days is certainly less of an event than the week-long blow-outs, and the standing date ends up clashing with crucial deadlines. There’ve been a number of incidences of developers not being able to participate. They’re happily granted a rain-check, but something is lost. It’s not perfect. We’ll keep tinkering.

Carrying the flame

Making time for focused, professional play in the workplace is a real challenge. But I’m a believer. Deadlines are important, customers need you, and that production alarm doesn’t take a day off. We need to be flexible: in 2016, Spotify converted their Hack Week into Fix-It-Week.

Not everyone’s projects fly, sometimes people end up with just lessons. But that’s okay. We’re fortunate to have these opportunities, and an environment that’s sympathetic (if not downright enthusiastic). I’m looking forward to Hack Week 2018; the future is bright!

Read More

NASDAQ CTO Summit

30 November 2017

I’ve got a goal for 2018 to attend four tech and leadership conferences. But before we make it to 2018 I was excited to happen across the 2017 NASDAQ CTO Summit a few days before it ran. I hustled a ticket and am going to represent BombBomb in the big city.

Last year I had a really good time attending the inaugural Inman Hacker Connect. Hacker Connect was (and still is) a great opportunity to meet some other tech leaders in the real estate space specifically.

Watch this space for some takeaways next week.

Read More