The Most Important Algorithm with Steve O'Hara and Matt Gardner

Hey, everybody. Welcome to the Noob Show, a podcast about humanizing technology. I'm

your host, Matt Gardner. In this episode, we chat with Steve O'Hara, the VP of Engineering

at 8x8. We talk about everything from uptime and software to helicopters and the world's

most important algorithm. Stay tuned to find out what that is.

It's not like rated PG or anything. Anyway, you're nervous. Always nervous. Cheers. Cheers.

The viewers at home. These are... It's the fuel we run on.

All right, so I'm here. I'm joined here with Steve O'Hara. Steve is phone all the way in

from London just for this podcast. Thank you for coming here, Steve. We're here at the

8x8 offices. As you can see the logo back there. Thanks for coming. Yeah, no problem

at all. In fact, I managed to fit in a load of other meetings. Oh, that's good. Just as

a sign. Yeah. I'm leaving the podcast, but... Yeah, yeah. I managed to fit in with speaking

to my boss, board. Okay, that's good. Yeah, multiple birds one stone here. That's good.

Okay, we've got good levels. Everything seems to be good. All right, Steve, I'm going to

dive right into it. So for people who don't know, Steve is VP of engineering at 8x8.

Safe to say your focus is primarily contact center. It is. Okay. Forget contact center

for a second. What was your first job? Well, first professional job. People will be surprised

really when they look at me and they think, well, he's a young looking guy. Hey, it can't

possibly be that old. But I graduated in 1986 with a degree in electrical and electronic

engineering. Right. So not software at all. In fact, actually, I had a knowledge, great

love affair of software. I worked for a company in the graduate training scheme called Hawkes

Sidley Dynamics Engineering, which is part of the whole Hawkes Sidley Group, about 35,000

people. They made everything from, well, in the previous life, aeroplanes, warships, mining

equipment, all kinds of interesting, right across the whole group. And the bit that I

worked in is basically London. And we specialized in critical control systems, things like mining

control systems by, you know, controls of cold washers and cold, cold crushes and conveyors

and that kind of underground helicopter engine control systems. So it's important. Yeah, the

black box is that basically control the engines on a helicopter. Right. That's why when people

talk to me about uptime, I have a very clear vision of what uptime looks like. Yeah, no pun intended

with the helicopter. Well, you know, if you, we took, we took a lot about five nines, you know,

99.999% uptime. If a helicopter pilot were to sort of shout out to you when you're in a

helicopter and say, don't worry, we've got five nines on this, you know, you're unlikely to get

into the most dangerous form of transport ever invented. Yeah. But the bit I worked on was

marine side. And they were controls for everything on a ship to do with anything like engines,

clutches, control systems, okay, the compressors that anything, right, I mean, literally

anything, you know, one of the stories I tell people is one of the first bits of software I got

to write after I'd moved through electronics in the place was an algorithm to help control the

compressors that blow air and draw water through the toilets.

Okay. So also very important.

Well, yeah. And the funny thing is, because I was a thrust in young Turk, and I thought, you

know, this is beneath my skills. And I had been told, you know, my skills were particularly

mediocre. In fact, obviously, very old fashioned in many respects, and very harshly treat the new

engineers. And I was told in no uncertain terms that, you know, the best thing to do for my first

year or first year is try not to kill anybody, but then I wrote or made. But the, I remember

complaining or sort of gently sort of saying to one of the senior engineers, all I've got is this

algorithm to work out how to control the toilets. And he took me aside, and he said, you don't

understand. And the funny thing is, I'll be doing it right now. He said, you are working on the most

fabulous thing. It's tiny. It's, you know, thing. He said, no, but if it goes wrong, the shit really

will hit the fan. And you'll be telling the story in 30 years on. And here I am.

Yeah, on a podcast. No, no doubt. Check that out. I just, I'm kind of curious. How do you test

that sort of system? Oh, wow. When you took, when you are a supplier to the DoD or in our case,

CMOD testing is, well, let me give you an example. If you're working on a flight control system or

an engine control system for flight, right? So my colleagues who worked on that side of the aisle,

most of that code was written in assembler stroke C. Now C wasn't a recognized safe language

in those days, because you can subvert it, you can cast the, you know, muck around with memory.

So it meant that the 32 kilobytes of code, right, took six years of testing. They attempted to test

every single branch that you that the control system could take through the code. Six years of

flight flight trials. So you are testing statically, you're testing dynamically, you're testing on

rigs. And the same for marine. Now we didn't have quite the same scrutiny, but similar.

You know, if you're on a ship, and you're going through a nuclear cloud, you need to wash the

ship down. Right. You can't be mucking around with that stuff, you know, it's life and death.

Right. So the testing involved in that is extensive, every single possible scenario.

And this is pre, this predates, you know, auto testing and inline testing inside the

code itself. Right. This is manual testing, right, massive, great test rigs of just buttons and lights

and dials to turn things up and down. And page off the page on the page, you know, the test

procedures for a ship control system would be this high from the ground, from the ground,

that's about four feet of a page. Yeah. And signatures, you know, many, many

signatures, manual signatures on everything to make sure that it was covered. Wow. So yeah,

I mean, it's, I mean, that system was controlled was a fiber connected controls of machinery in

place, scarter system, supervisory control and data acquisition systems. 120 kilobytes of code

120 kilobytes code. And the most important job was obviously making sure the shit didn't hit the

fan. Right. Make sure the bogs flushed. Yeah. And don't make a seal with your, with your bum

around the bog. Because this is the reason why it's like, well, toilets and aircraft and toilets

on on ships have a similar, they're scary, but they have a similar sort of thing. They work on

the Venturi effect. They're passing in water underneath and it's sucking this stuff out.

Yeah. It's not flushing it. Yeah. The water that is to cleanse the bowl really is not to

flush it away. It's it sucked. Yeah. Now we used to joke. It's quiet and it's quite a

big sucking force. Okay. Never be, not that it would be, never be tempted to lift the lid up

and sit on the actual, and if you make a perfect seal with that, yeah, you might live to regret

that. I don't even want to know. Okay. All right, changing subjects. So using what you've known then,

I guess, applying that to where you are now, what does the VP of engineering actually do?

What do you do? Well, I'm really where the buck stops for R&D for contact center,

eight by eight. I'm a developer. I still develop code. There's about 160 people,

engineers on contact center, developers front end and back end, but also support engineers,

QE especially. They're the people in my orbit, not so much support, but the, the manufacturing

of the actual code itself, the application. And my job is really to feed and water everybody,

make sure everyone's happy, make sure we're making the right strategic decisions. You know,

every day we're making tactical decisions about how to solve this problem or that problem,

how we feed products with the features and functionality they want. But how do we write

the code? Right. First thing I did when I got away by eight, five years ago, was to write the

coding standards for the Java applications. You know, we have a mishmash of lots of different

languages and paradigms and processes and policies. And it's not a matter of consolidating that so

that everyone has the warm comfort blanket of knowing that they're writing the stuff in the

right way that's going to end up with a good result. Right. And the VP's role is to current and

stick is make sure we're all pulling on the same bit of rope and we're all going in the same

direction and we all feel like we're being vital to the output. Right. Right. So what is the,

I don't know, the trickiest part about building a context center on the software side of things?

Well, a contact center for everybody else's benefit, you know, traditionally people used to call

call centers because it implied that with voice, it's a phone call. And there's two types of

traditional call centers, they're outbound and inbound. Okay. And, you know, and we generally

deal with inbound, but a blend of those. And outbound is your traditional cold calling,

robo caller, based in some horrendous place. Yeah, very, very high turnover of staff because

nobody can take the attrition. Right. I mean, it's really tough in this place. It's your

judged on the amount of time it takes for you to make a call, create a lead, do something. Right.

Those outbound places are horrendous. Inbound is generally much higher value types of contact

centers whereby people are phoning you out of their own volition, they want help,

and they want to buy something they want, they've made the conscious effort to contact you.

And generally, the requirement there is that the person that's answering that interaction

knows a lot more about the product is there to help them, right, help sell something,

help fix something, right, take a complaint, it's going to think much higher value.

When it's outbound, it's bash, bash, bash, almost like spam. It is. And in the Western world,

robo calling is almost outlawed. Okay. It's very hard now. I mean, the compliance and everything

else associated with calling people is so tough in UK, US, Western World, Canada, Australia,

New Zealand, these places, that it's becoming a really tough business. Right. You can't really

call somebody if you haven't been invited to call them in the first place. That's like the rule of

thumb. Yeah. Yeah. And even when you're doing that, even when you're robo calling, you know,

very efficient, outbound call center, contact center is over dialing. So

you get a list of numbers that you're calling. You don't dial them sequentially. You dial four

at a time for one agent. On the basis there, three people are going to knock them down.

So is that why when you get one of those like spam calls, it takes a second for them to realize,

oh, pick up on that one they've picked up, try to get them. Yeah. And that's when you know that

you're being, it's the start of a robo call because there's a bit of a delay. Right. Now,

that delay, interestingly, is one of the most irritating things. And that is one of the things

that legislated for. So compliance in the US and UK dictates that there cannot be more than two

seconds before that call is connected to the person and an agent. Okay. And when you think about

that, when you're overdone it at four times a rate, and it's the other thing, and some people

are on some others on, right, creates for a very dynamic algorithm that's going to manage that.

Interesting. Because you've got to be quite fast. Very fast. Or maybe you have some sort of, I don't

know, audio clip that plays and then you catch up. You can't do that. You can't do that. No,

you're not allowed to do that. Okay. You're not allowed to do any of that. Okay. So this has all

been done before clearly. Oh, yeah, yeah. And the fines for this kind of stuff are horrendous.

You know, you get if you contravene any of these regulations associated with that. Yeah.

It's a proportion of you, the value of the company, that kind of thing. Oh, like,

like the GDPR fines or percentage, right? Yeah, it's similar. It's written really seriously. Oh,

wow. Yeah. Okay. And that's the reason why, you know, in context senses, we invent things like

persistent connection. So an agent will come in in the morning. If they're in these kinds of

environments, even if they're not, there's some advantages to doing it this way. Because context

sense is all about driving efficiency, right? How many calls you've made, right? You know,

there's some rules of thumb that say, you know, in a million calls, one second per call is a million

dollars wasted. It's kind of thing. I see. Persistent connection. We used to call it off hook.

An agent comes in the morning, connects, dials up, the system calls them, they're connected,

they never disconnect. Their phone is now live. So they they're never just they never disconnect,

but they talk to a whole bunch of people. Yeah. Because that would waste time if you had a disconnect.

Exactly. So, you know, when a call comes in, it's got to be connected to an agent. And so that

means phoning their phone. Right. Don't want to waste that time, even when, you know, we're on

VoIP, obviously, our whole system is VoIP. Right. That's still a delay. So cut that delay out,

permanently connected. Okay. And what they hear is a beep to tell them, right, you're on the next

call. You're on. Interesting. Okay, so for, for, for the people who don't know, I want to sort of

go through some of the nomenclature. You mentioned agent, call, outbound inbound, which I think

you've explained, eight byte focuses mostly on outbound inbound, sorry, got that backwards.

Checking to make sure your pay attention. Mostly on inbound, so not the spam stuff, which is good.

We do have customers that do outbound, but they're probably not spammers, right?

Of course not. Absolutely not. We couldn't. Okay. What are some of the other terms? So

what is an agent agents, the person that answers the calls? Yeah. So the agent is the person sitting

in the contact center or sitting at home. Because one of the great things about A by A is it's

cloud based. Okay. There's nothing to install on your laptop. Okay. It is all coming through the

browser. Absolutely everything, including the voice. Our software is embedded actually in the

browser itself. Okay. So you don't need anything. You can have a headset. You don't have to have a

headset. You could use the mic and the speakers on your laptop if you want. Right. So everything is

delivered by the browser to wherever the agent is. Generally, they're in, they used to be in

offices, but now they're in, they're in homes. But fundamentally, it's really about connecting

a customer with somebody who can handle the customer's inquiry. Right. And the person that

does that is an agent. And obviously the customer is the person that's phoning in. Right. Now,

increasingly, they're not phoning in. They're texting or they're using the web chat on, you

see it everywhere now. Right. The little thing in the bottom right corner of the website. Yeah.

Do you want to chat with an agent? Of course, the first thing you find is you're not chatting with

an agent. You're chatting with a bot. So you've got to get past the bot. And they're deflecting.

They're trying to find ways in which they can answer your call. Right. Much cheaper than sending it

to an agent to speak to you. Right. So they're there to try and deflect those calls. But eventually,

you get to a point where you either type in some trigger words that alert the system to say,

oh, hang on a minute, no more of this. Let's push it through to a person. Right. Or you get to the

point where the bot can't help and they need to talk to an agent. Right. And what happens there is

you don't get directly connected to an agent straight away. You get put in a queue. Okay.

And then you might get some in queue treatment, which is some feedback about what, you know,

where you are in the queue, how I got away and this kind of thing. And the queue is emptied by

agents that become available to feed the queue. Okay. So that happens, whether that's a voice

interaction. So you phone in here on hold music, whether you're sending in a web chat,

so you're chatting, you send in an SMS text, you're on WhatsApp, send in or Twitter,

or via email, all of these channels are cope with. And that's called an omni channel experience.

Right. Meet them where they are. Yeah, exactly. Right. And sometimes it's the same interaction

on different media types. So you start with the chat and you transfer to voice, this kind of thing.

I see. So that's what a, you know, first class contact center does. Right. It's truly omni

channel covers multiple different channels. Right. Okay. So obviously that's the difference

between call center and contact center. And I imagine all that information about, you know,

the history of your, you know, maybe support requests is sort of tracked no matter which

well that's where it crosses over into being a CRM. So that's why contact centers generally,

unless it's a low cost contact center or a pop up contact center, where you don't have your own CRM,

customer relationship management system, we integrate and all contact centers with your

incumbent CRM. Right. So it might be, you know, that it's Microsoft Dynamics or Salesforce. Right.

So the call comes in, it's in our queuing system and everything else. And the moment the agent

actually decides they're going to take the call, there's a screen pop. Right. And that's come from

the CRM. Right. It's come from Salesforce. Okay. And it tells you everything about the customer,

the history of the customer, everything else. Right. But the contact center software itself

has handled how that interaction actually got to the agent in the first place. Okay. So I imagine

it's trying to figure out who's the right person to answer this. This person's an expert on X, Y,

and Z. And that's schools based routing. Okay. We're covering all the things here. We are. I mean,

this is the difference between just having, you know, a receptionist, right, and a contact center.

Right. Because you could say, well, a lot of this stuff is covered by just having a VoIP

to avoid phone system. You know, you phone in and it says press two to speak to

Matt, press three to speak to Steve, this kind of thing. Yeah, that's great. But what separates a

contact center from a simple calling system like that is the, you don't know who you want to talk

to. Yeah. You know what your problem is that you want to speak about. Right. And that will inform

the system and the contact center takes a view as to who's the right person for you to talk to.

Right. And that's what used to be called skills based routines now called attribute based

routing. Right. And it's well, the call is coming on a Spanish line. Okay. Spanish. Yes.

And it's somebody who speaks Spanish, right. Somehow we figured out, hopefully by pressing

a few sort of buttons, but prior to the interaction, forming that it's about car servicing. Right. So

we want to send us that person. And then you want to say, okay, take some measurement of

agent performance. Uh huh. You know, who's really good at handling those and who's not so good.

Who's not doing it today. Right. Really up for it today. Right. And start feeding those.

So it's very dynamic, very sophisticated. Yeah. And that's really the differentiator between a

simple unified communications phone system and the contact center. Right. Okay. Wow. So there's a

lot there. Well, there's probably more goes in there's more work goes into that routing aspect

than any other part of the contact to itself, you know, recordings,

quality feedback. Right. You get a call and it says we're recording this. Yeah. This,

this call because for training purposes, they always say it may be recorded, but it's always

recorded. Yeah. Pretty much. Yeah. It depends really actually because you paid. So if they

run out of money, maybe not so much, maybe they turn off the recordings, but mostly what they're

really talking about is that what you're saying and what the customer is saying is being fed into

an AI engine to determine what the sentiment is. Okay. So then maybe feedback to the agent

whilst he's speaking, whispering, we call it. Maybe talk to them about this. Hang on,

the customer's getting angry. Yeah. Maybe, you know, let's try to steer them to this or

give some advice. Right. So the system starts whispering and they're based on the feedback

that it's analyzing from the content, whether it be text or voice. Right. So with voice,

it speaks to text real time and then feeding it back while you're on the interaction. I see. And

that's where the really high value contact centers are. Okay. Yeah. That's where that QML

policy manager product comes in. So you can train them, help them during the calls.

Yeah. Post call, a bit of training on the customer to say, look, you know, looking down

a history or feedback that you're getting here and what we're seeing with the way you're handing

some improvements. And that's what they mean by training. Yeah.

I feel like that would be a lot of fun just to know about

my, my calls with customer support agents, you know, flip the script at least for me, you know,

like when I'm trying to cancel, you know, something and they won't let me cancel, right?

Yeah. Yeah. I mean, you know, some, sometimes calls are directed to agents that are very good

at handling difficult customers. Or, you know, we've got, we've got mission critical contact

centers. And what we mean by that is we've got people that run suicide lines. Oh, yeah.

And so it's super important that, you know, the reliability of that line, you know, somebody

calls up, they're calling for a really specific reason that is they want some advice, they want

some help, they want some reassurance. Right. So you need trained people that can cancel,

you know, can, you know, have high empathy and all those sorts of things to be able to handle that.

So routing is really important in those circumstances. Yeah. For various reasons.

So when you're building all this stuff, you mentioned earlier there, when someone calls in

or messages in a screen pop comes up and it maybe pulls in information about maybe the customer,

or maybe you don't know anything and it says we don't know much about this person, etc.

New contact. New contact. What other sorts of integrations are there today besides pulling

in existing data just about the customer? Well, it's really interesting, actually, because

what it can be is that before the agent actually gets the call, it's been through what we call our

interactive voice response system. And that is, comes through, it says press one to talk to

somebody in service, press two. But it also might be, is your inquiry about parts? Is your inquiry

about a particular service? Could you type in your postcode using the telephone keyboard?

Or, you know, this kind of thing, maybe a part number, right? And of course, the part number,

that's a lookup. That's a dynamic lookup into the parts catalog for the company. Right. So that

by the time the agent does get to it, says, okay, now I can offer you this price or that price,

or how many do you want? I see. It's all about really trying to automate as much of that as

possible and get as much information before it becomes to comes to a human interaction.

So integrations with existing parts catalogs, not just CRMs, but also other systems that customers

have. And that's the reason why it's really important to have an open platform in this area.

Right. API is no very close to your heart. Because we don't actually really know what

customers are going to use it for. Right, right. Actually, some of the other

podcast episodes are entitled, or the subject is APIs and IPAs. So there you go.

Okay, very good. Very relevant. So I have so many questions. What are the

biggest engineering challenges you face when you're building a contact center?

Performance and reliability. Biggest ones? Yeah. I mean, at the end of the day,

the customer, he wants features, customer spawn features, they want this to pop up,

we're a global organization, making this one product as a sales product for everybody.

So to cover everybody's requirements for the features without that thing growing like an

octopus, and then not also being able to perform, these things sit on top of a microservices

architecture. And crucially, you know, we've still got quite a lot of the legacy code which

runs in data centers. Right. And the challenge there is getting at a scale up. Right. You know,

A by A contact center is 23 years old. Wow. It's based on a microservices architecture

from 2000. Yeah, written in 32 bit C code. Okay. I was way ahead of its time. Yeah. Fantastic thing.

But everything was proprietary. Right. The message bus, the event bus it was on,

it's pinned to certain versions of Linux, you know, this kind of thing. They take years to

overcome. Right. I don't really so much wrong with the architecture, just the implementations of

its sign. Right. And so bringing that all that forwards and make it still perform. Right. You

know, modernize the language, modernize the technology, modernize the scalability. That's

a challenge. Sort of moving this giant mountain that's been around for a long time.

Yeah. I mean, people call it, you know, breaking down the monolith, right, you know,

into microservices. But the thing was microservices before, it's just the wrong time

microservices and too tightly coupled and all this kind of thing. Yeah, that's pretty tough,

you know, you know, in IT. Yeah, this is not going to be your last job. It might not be my last job.

You know, when I started at Hawker Sidley in 1986, people got carriage clocks when they

retired after 40 years. I mean, loads of people doing that. You know, the business was so large,

you could move around it, work on different aspects of it and have a whole career just

inside that one business. Right. And it wasn't that unusual. That's I've heard of these days.

Yeah. Yeah. And especially in tech. Yes. Yeah. If you've been anywhere for five years, people

are saying, why are you staying there for five years? Why not? I love it. It's interesting.

It's paying well. It's, you know, it's kind of become the thing. It used to be that if you saw

CV and somebody jumped between jobs two or three times in the last five years, it was bad. Yeah.

Yeah. That guy, you know, yeah, he can't keep a job. Yeah. Nowadays, it's well, you can't get a new job.

Yeah. Yeah. You know, so, yeah. And you know, and hiring is you can make as many mistakes.

I've made as many mistakes hiring the wrong person as I do the right person.

Yeah. And I've been doing it for years and I'm still not getting it right.

How do you hire the right person? If you find that, if you find the solutions to that problem,

then, I mean, I was talking to somebody recently and they said, to get the right person, we put

them through nine interviews. Wow. Nine interviews. Can you find someone really good at interviewing?

Well, that's the other challenge is, you know, we ask our engineers and our peers to do the

interviewing. Yeah. Well, why are they experts in interviewing? They don't do it all day long.

We put them through a hacker rank and some other stuff. I mean, there's lots of different ways

and trying, but in the end, it comes down to, do you think they've got the right chops for this?

Right. You know, do you think they, they've demonstrated that they can communicate?

You know, sort of going counter-psychies world, are they, are they lonely boys, 64s who are going

to spend most of their time in their back bedroom cracking out code without speaking to anybody?

Right. You know, or are they going to be a proper team player?


You know, and also having the confidence that when you hire leaders as well, you want to hire

somebody into a management position in our game, in our world, you know, we're always promoting

people into positions of incompetence, you know, either because that's the only way

you can figure out how to pay them more money. We're going to make them a manager.

So we took this first-class lead developer and turned them into a crap manager.

Yeah. You see that everywhere in the software industry, everywhere.

And it's sometimes just simply the way to get around the pay structure.


You want to pay them more money because you want to keep them because they're brilliant.

Well, the pay structure means we've got to send them into a manager. They don't want it. You don't want it.


But we do it.


And then, you know, being, you know, I do a thing about leadership. Engineers are creatives.

They are not what people imagine. You know, boil a room,

overruled monkeys, you know, feeding coal into the furnace. They are creatives.


If you give them the right structure and guard rails, they invent stuff.


They make stuff. We make stuff. You know, you're a developer. I'm a developer.


That's the biggest thrill we get is writing code.


And the further up you, the food chain you go, the less code you write.

But I think it always feels that it's important that, you know, even at VP level,

I write code, not for production, maybe.

I'm allowed to do that.

But I won't tell anyone.

No, I'd stick a few lines in there.

Generally, I work on the stuff that other people don't want to work on.

So Steve, you know that legacy PHP app, you know, and I think,

ah, I hate PHP, you know, the first page of the how to do PHP is choose something else,

you know, hate it. But I know everybody else hates it.

And they, you know, and if I want to just kind of, a little bit of respite from being a VP,

I'll look at this stuff, because at least it is debuggable and it's, you know,

it's pretty straightforward to work out.


So it keeps you handed, you know, it keeps you, keeps you in touch with what,

you know, people in the org are doing.

Yeah, it's funny that you mentioned PHP because my next podcast guest is Mr. PHP,

the founder of PHP.

I'm kidding. I'm totally kidding.

I don't, it was my first language, if you will.

Well, I always thought hiring.

No, it's actually, do you know what the thing is?


Modern PHP development looks just like Java.

You know, it's not what it used to be.

You know, what's PHP used to stand for?

Pre-hypertex, preprocessor, something like that.

That was naughty when it first came out, but that was its joy.

Play it again, play it again, play it again, play it again.

Oh, I've got it right.



It's, it was so immediate.


And now you see PHP development and it's all object oriented.

It's, you know, it's more,


They've even got an injection framework.

They've got all the sort of stuff.

It's all caught up.

There's frameworks like Laravel, they're taking off.

The WordPress is all PHP.


And that's huge.

They had, they did some things really well though,

not to go on a huge tangent.

Their documentation had so many code samples from people just contributing.

That was, that's how I learned on the code samples before I ever, you know, bought a book.

And do you know what, that's one of the things that separates industrial programming from hacking.


You know, Hawkes and Sidley, I'm still using the same things that they taught me there,

the same mantras, the same, you know, there's no shortcuts to high qualities software development.


You know, evidence massively more aggregated, it's much more effective now,

you know, a few lines of code and you've created a website, you know,

but the pattern still remains, you know,

undocumented code is unmaintainable code.

And I'm not a subscriber to this, you know, I'm thinking code.


Well, if you think code, you're not thinking in my team, that's for sure.

Where you think is you draw stuff on your pad, you know, you draw it out, you think it out,

you know, and then you start typing up and you document it.

You know, you put comments in your code.

I know comments are regarded by some as overhead.

Yeah, they are.

They're a necessary overhead.

It's like saying, you know, I don't, I haven't got any tests in my, because they're an overhead.

I've got to maintain the tests.

Yeah, yeah, that's the job.

Anytime someone tells me that they don't write a test, I just look at them and I think like,

you don't want to be lazy.

Tests let you be lazy.

You know it's going to work.

You know that if you make another change later, your thing's probably not going to break.

It's a mystery otherwise.

And I think you do.

It's a fine line really, you know, like TDD, I'm not a great fan of, you know,

Paired Programming has its place, but there's no get around the good people doing good work

that are well led, motivated, curious, you know, these sorts of things.

But they're working from a standard that's been set by the team, you know.

This is the thing that we really suffer from in this industry now.

People come into it.

Where do you learn from?

The guy sitting next year has only got three years in the job, you know, for years.

Where do you find the guys with 40 years of experience and just retiring and tell you

all the shitty stuff that, you know, they've done?

So you don't do it, you know?

Because, you know, for the most part, functional program is new, you know, different styles

of programming come and go, but the fundamentals are still the same.

You write the coach, you document it, you test it.


And you make that process as simple and as easy and straightforward as possible.


Not to keep talking about PHP, but I have one more thing that I miss about the PHP days.

And that one thing is, one of the early podcasts on this.


No, no, no.

No, but that, you know what?

The best debugging tool in the world.

That's not terrible.

That's not terrible, right?

Like, you know, like print debugging.

No, was, there is, I mean, I think it's still what people do today.

It was, in my opinion, the easiest, if you want to build a website

and you need a programming language behind it, it's the easiest thing to deploy in the world.

Because every host, the $1.99 web host to the whatever,

they all have PHP, you just drag and drop and it's deployed.

You can't do that with 90% all.

No, that's true.


And, you know, and that's in some respects that, you know,

you see the sort of advances in things like, I mean, I'm a Java guy.

Used to be a C guy and before that was an assembly guy.


You know, Pascal.

And before that you just got.

So when I was talking about the algorithm that controlled the bugs, that was Pascal.


But I'm, you know, I fell in love with Java 20 years ago and I've never seen really

any reason to change that.

Partly because what the Java community does and the owners of Java, Oracle and others,

is they see the trends that are happening in others and they mimic them.


You know, Scala, languages are based on the JVM to catch up, I suppose,

with some of the trends.

You know, nowadays, you know, we're doing a lot of work with Java fibers,

which is virtual threads.

You know, it takes it right away back to Joe, Joe to keep one,

when everything was a virtual thread.

And then it took, it could take advantage of physical cause,

but threads are expensive.


So you put them in a pool and execute a pool and all this sort of thing.

The version 19 and version 21, when it's a full first class citizen,

he's going to turn that paradigm on its head because a standard JVM running on a

four core eight gig laptop can have a million threads.

Yeah. Wow.

Now you think about that.

That's a functional program.

That's, I don't need asynchronous programming.


I just have now, I'll run my application through, you know, this is the execution path.

I don't need to push an event and wait for a response, push another and wait for another


That async model that makes debugging so bloody hard.


Don't need that anymore.


I literally will go back to, I call this, I call that, I call that, I call that,

I call that and the operating system will, and I will run that on its own thread.

I've got a million of those.



So, speaking in the lesser bit about the future of all this stuff,

where do you see the future of contact centers going?

So, what we're seeing is that AI and chat GPT and these kinds of things, these tools,

are going to have a significant impact.

They already are.


But it's going to grow and grow and grow.

You know, when you phone a contact center, generally now, you will go through an IVR,

you go through this process of press this, do that, and it can say this, can do that.


But eventually you end up with an agent.

Increasingly, voice bots are going to have a much bigger role to play there,

because they'll, in real time, transcribe what you're saying.


Run it through a chat GPT of all the responses that have been made before,

or from everything else in the business, and give you actually a very good,

qualified response about answering your query.


No human involved at all.


So, that sort of stuff.

You'll see stuff like, which we're doing right now, is a call comes in.

You're actually talking to an agent.


And this is probably a common experience.

The agent will say, actually, I need to speak to somebody in another department.



And what they're doing is they're putting you on hold.

They're using another line, second line, to call that and say, right, I've just been

talking to Matt.

He's got a problem with his router and this and that, you know, what do you think?


Well, increasingly, what it would already have done is there'll be a button to say,

I want to talk to another expert.

The chat GPT or other speaks to text and analysis will summarize the whole conversation you've had.


Passed it to that guy before you've even transferred the call to him,

so he can read a summary and know exactly what you've been talking about.


So the need to speak to him, it becomes then potentially unnecessary.


So all kinds of interesting ways in which this kind of technology is going to have an impact

to make the, effectively, the contact center much more efficient.


And voice will play a diminishing role in that.

Increasingly, people want to talk and, as you say, they want to talk to you in the way that's

convenient for them.


And that might be a web chat, might be an SMS, WhatsApp, Telegram, could be anything.

They want a first-class experience and phoning somebody is actually a bit annoying.


First, if it puts you through a whole load of IVR, whereas if you can be a bit more asynchronous

and do it via text or, you know, WhatsApp or something.


That's, and so, you know, I think we see that slowly growing.



So the future is a lot more AI and a lot of, it seems like the whole goal of everything is

to just shrink the amount of time that you have to, you know, speak to a person or researcher.


I mean, it's always about balancing the time it takes for an agent to launch it because

that's expensive.


Any human being involved in it means that it's expensive.

It's balancing that with having a good authoritative response.


Because it's one thing, you know, you phone up and you get to talk to a robotic voice.

Yeah, Matt, I'm great.

You're pissed off.

Everybody's pissed off.

Nobody, you know, that's not great.

Even if it was actually gave you a good answer.

You know, so I don't want that.

So it's balancing that kind of thing with the time that you spend talking to an agent.



Efficiency is key.


Time is money.

Well, you go into a call center, a contact center, you'll see wallboards up, you know,

big screens, like in a knock, you know, you're seeing all these alarms and all of these tables

and everything else.


And what they're telling you is the efficiency of the data center.


What's the efficiency of the agents?

Who's the most efficient agent?

Who's got spare time?

You know, an agent takes a call in a high volume contact center.

They take the call, they talk to you.

When the call is finished, they have what we call a wrap up time.

So type up consequence of the call into the CRM system.

You can control how much time they're allowed to do that.

Are they all fast typers?

Because that's lost time.


So we have contact center operators who set that to zero.

You know, no summary.

Well, you're typing it out while you're taking the next call.

Now you can only do that in certain circumstances because the experience for the end caller.

It can't be very good.

Might not be very good.


But that's what people are driving for, you know, fast throughput.

Get these things, you know, answered.

Move on to the next one.

Do you see, well, okay, so let me ask this.

Do you see what size contact centers are you normally seeing?

And what's the smallest you've seen?

The smallest one we have on our books is one.

One person.

One person.

And that's just the person that also pays the bills and does the whole thing.

Well, it's so generally it's in that instance.

I mean, we have I think we have a dozen of those.

It's not very many.


But we do have a contact center that I've got five.


Now that's a contact center whose primary purpose is not providing contact center facilities.

It is to sell cars or to service boilers or to do something else.


And they've grown to a certain size that a standard phone system is not going to do it for them.


People down the road, they're going to go.

So they need people that supply service locally.

And one of the beauties of the 8x8 Consert Center is because it's completely

browser based and you can switch it on and off,

you can float those licenses around.

So generally, you know, it's a custom way.

We'd be the 100, 200 employees of which five run the contact center.


And feed those leads and those service requests never the nails.


The rest of the workforce.

Do we have contact centers or is 8x8 have contact centers where there are no,

there's no one using phone?

We don't, but increasingly we are being requested to provide that.


A digital lonely and that is gaining some traction too in the industry.


Is just taking interactions via WhatsApp.


Web chat, this kind of thing.

Yeah, you know, there's a growing trend towards that.

Having phones and a phone system requires you to have a carrier connection,

requires you to have a phone number.


So you've got provision of phone number and this kind of thing.

So those kind of customers generally, plenty of exceptions,

but that really encourages a kind of pop up contact center.


You know, we were talking earlier about, you know, a contact center for an event.

And that's great.

You know, it's not so easy to do with a phone number

because the phone number you want to use for lots of channels and lots of things.


It's still possible.

Calls come in and you divert them to different parts through the IVR.

But yeah, digital only contact center that is.


There's plenty of motion in that.


I think this bird has something to say about that if this is being picked up.




So yeah, I think it would be interesting because, you know, I used to be in the music

space, the event space, live events, and we did, you know, we worked with artists,

you know, like Beyonce and Selena Gomez and Adele and, you know, Guns N' Roses.

And we did work with them on tour all across the world.

And so there was always people, we mostly used email.

We weren't super sophisticated in our, you know, support offerings or whatever.

But we did have a phone number and it did have a very basic, you know, PBX and an IVR

to say, who do I go to?

And that was because that was a requirement to accept credit cards for that company.

So we process credit cards on behalf of all these artists.

And so we had to have a phone number in case there's a dispute or whatever.

And it saved us a lot of time and money when people would issue a charge back because a

lot of the times, this is just a sort of tangent, a lot of the times at smaller concerts,

you would find that we'd get a phone call and say, what is this thing?

Like a $30 charge on my credit card.

He said, do you have a son or daughter?

I said, yeah.

And he said, did they go to a concert last night?


Did they come home with a t-shirt?


That was it.

They used your credit card and bought a t-shirt.

And when you were talking about integrations with other systems, there you go.

You know, a point-of-sale system and an inventory system, a purchase history system,

not CRM, yeah, all that kind of stuff.


I mean, when you were saying, what's the smallest, we get, we reach down to that.

But also, generally, our customers much larger concurrency and they're geographically spread.

And that's one of the other things about Contact Center and the phone interaction.

You need a phone system that's geo-redundant, you know, that if you're calling from Australia,

it's not costing you a fortune to phone the US.


You're phoning an Australian carrier that, and then via the phone system, you're getting to the Asian.

So most, if not all, Contact Centers have to have a very close relationship with a phone vendor.

I see.

8x8, we are the phone vendor.


You know, that's probably what we're more famous for.


But in every other Contact Center, they will integrate with a phone system because it's

absolutely key.


Low cost, high reliability, global comms.

Without that, your Contact Center looks very weak.


So what would you say is, if someone wanted to get into this space,

building the software that powers this stuff for the future of the integrations for Contact

Centers, how do they get into it?

What's your phone number?

Oh, you mean if they want to come to work for us?

Oh, for you or for anyone?

Like, how do you get into this space?

Who wouldn't want to work for me?

What if people are genuinely interested in this area?

They'll, you know, you look up the vendors and find out, you know, there's some

based in Silicon Valley, others based, you know, around the world, but...

Do you need a history in...


Do you need to have been an agent, answering phones?


So I, so I joined the company four and a half years ago.

Before that, it was Industrial IoT.

I did nothing about Contact Centers or phone systems for that matter.


No, I mean, it's a niche industry.


Yeah, there's thousands and thousands of people in it, and there's millions of people who use the

software, but it's a niche industry.

So they aren't walking the street.

You know, there's, there aren't experts in

Contact Centers for X or Y walking the street.


You know, so it's fairly specialized.


So we never expect anybody to have any knowledge.

When they come in, we're looking for good first-class developers.


Good people, you know, don't have to be a genius.

You know, the stuff that we do is, as you can tell, super interesting.

Well, super interesting.

Well, once you start peeling back, once you start peeling back the onion,

it's actually quite fascinating.

Yeah, it is.

It's more to it than meets the eye.

And as it is in most things, you know,

when the advent of AI and our skills-based and attribute-based

routing, decision-making, and this, it's actually pretty cool.

We're microservice-based.

You know, we're based on the Cloud 8 system.

So it's really cool.

You know, we stand up services, they inject themselves into the process.

You know, we do a delivery of our front-end, automated,

no things on keyboards every single day.

The process is behind that.

You know, when we write code, it comes from a story

or it comes from a JIRA ticket that says makes and changes.

Developer makes the changes.

It gets two guys to agree that they're the right changes.

They go into the code, the QE, and the automation makes sure that it's right.

That gets committed to the master, the branch.

The master gets built every night.

It's evergreen.

And the next morning, it's deployed to production without anybody touching it.

We used to have a big green button that started that process.

Now we have a big red button that stops the process.

So it's a bit like we introduced it on the basis of the newspaper industry.


Starting in the morning, there's an edited meeting with all the journalists.

So what the hell are we going to put in the paper today?

And then it's a headlong rush to try and fill the paper up.

And it used to be, because it works in the newspaper industry as well,

you get to four o'clock or whatever, the cutoff when the presses have to start running,

when they finish filling up the type setting.

It doesn't matter that there's gaps now, because the paper's got a,

otherwise it can't get distributed.

You don't get anything.


So we introduced that to our CD process.

There's a cutoff.

And what's in, is in, what isn't, isn't in.

You have to wait till tomorrow.


That's cool.

And it's, I mean, we've been doing it for over a year.

Now that's all part of making a contact center.

So there's facets of it, which are really modern, really great,

and got nothing really to do much with a, you know, connect an agent to a call.


You know.

What's the most interesting use case of a contact center you've seen?

That's interesting.

Or most impressive, or most, something you never expected.

Supports the obvious one, right?

To me, it supports the obvious one.

Yeah, I think actually.

Oh, we've got contact centers, which use fax.



Now we don't, it's not an interaction type.

It's got to be the slow, okay.

I was going to say that's got to be the slowest.

Well, emails, yeah, fax and email, well, email is slower.


We've got, we've got whole businesses that don't communicate with their customers,

except for through email.



Not very large businesses, book publishers.


So that all of their orders come through the system.

Via email.


They have no voice interactions at all.

High techs, no, I think just email.


Thousands of them.

Thousands a day.

We have others that are calling out.

So outbound, you know, really tough, really, you know,

aggressive outbound calling.

We have people who offer counseling services

for people who are having mental health issues.

Oh, myriad.

I mean, I, you know, we have ticket sales.

We have airlines.

We have, oh, myriad of different use cases.


I mean, a bike contact center.

It's not a 30,000 concurrent seat type contact center.

It's cloud based.

It's anywhere you like.

Do your work from an airport lounge or from a cafe or whatever.

A beach.

A beach.

From a beach.

With a sweet spot of, you know, a couple of thousand concurrent seats.

Very high value.

Generally customers that are selling something or they're providing a service

that's of high value.


That's good to know.

Any final words or anything?

Anything, any shout outs?

Family, anyone that, you know, might listen to this podcast?

God, hopefully.

Four million people that subscribe.


I hope nobody, none of my family listens to this.

Are you surprised?

Do you know what the thing about it is?

I've worked in so many different industries.

You know, I started off in defense.

I went to document management, industrial IOT.

I was a consultant for another American company that

sent me to go and work in the oil industry, the newspaper industry.

Legal, you know, a lot.

But what you find is that it's, it's, it's, it's good to say it's sort of the same,

same shit, different that, you know.

But there's sort of constant striving for good quality, good standards.

You find good people at the bottom of it.

And there's no substitute for working with good people.


And I don't mean, you know, wholesomely good, necessarily.

That's nice.

But, you know, I mean, they are, they know what they're doing.


And it doesn't matter with the green grass straight out of university

or got 40 years of experience.

It's a mindset this game.

And, oh, actually, the one thing you must have is a sense of humor.

A sense of humor.

Jesus Christ.

I mean, you know, you want to live long in IOT.


It can kill you, this stuff.


You know, the disappointment, the anxiety, the stress.

Oh, absolutely.

You never remember the wins.

You always remember the losses.

You've got to have a sense of humor.


You know, when things are going not very well.


Get a laugh.

You've got it.

You're going to maintain some sort of sense of perspective.


It's work.

It's not real life.


Oh, on that note.

Well, thanks for being here, Steve.

I appreciate it.

No worries, mate.

All right.

Nice talking to you.

Hey, everyone.

Thanks for listening.

Hope you enjoyed the episode.

Feel free to subscribe on

That's in or on anywhere you listen to your podcasts

on Apple podcasts, Spotify, or anywhere else.

Thanks for listening.

See you next time.

Creators and Guests

Steve O'Hara
Steve O'Hara
VP Engineering, 8x8
The Most Important Algorithm with Steve O'Hara and Matt Gardner
Broadcast by