Latest / Agentic Conversations (formally mlops.community) / Data Engineering for ML // Chad Sanderson // Coffee Sessions #117
Transcript
- 0:00Hi, I'm Josh Wills. I am a software engineer at
- 0:03we've grid. I'm a recovering manager.
- 0:06I used to be the director of data engineering at slac.
- 0:08Many, many lifetimes ago, director of data science and
- 0:10Clara and I drink espresso, I'm in a particular bluebottles 17
- 0:16foot ceiling is my just perfect like it's it is basically
- 0:19perfect espresso as far as I'm concerned.
- 0:21Just straight-up double espressos is that that's my
- 0:24happy spot. My name is Chad Sanderson.
- 0:27I am the Lead product manager for the data platform, team at
- 0:34Convoy. And then a part of this, I was a
- 0:38product management, Microsoft working on the big data team
- 0:42called the AI platform over at Microsoft.
- 0:45And I don't drink coffee, but I do drink green tea every
- 0:50morning. I am stoked because we've got
- 0:56Josh wheels and Chad Sanderson. This is like Christmas came
- 1:01early for me. I'm so stoked to have the both
- 1:04of you on here. I know this was kind of last
- 1:06minute rearranging all of our schedules to make it work.
- 1:09It worked. I mean, originally Chad, I
- 1:12wanted to talk with you. We had our first encounter, you
- 1:15came on the Meetup, you blew my mind.
- 1:18I want to dive into more of the stuff since then you've become
- 1:21somewhat of a link. Tin personality.
- 1:24You might win, think tins, top voices for 2022.
- 1:28And yeah, your personal brand has been growing.
- 1:31You're killing it, you've got your sub stat going.
- 1:34That is also killing it. It's been making a lot of waves
- 1:36in the ml Ops Community. Anyone out there that is not
- 1:40subscribed to Chad, stub, stack, go and do that right now.
- 1:43Do yourself a favor, you will not regret it.
- 1:45And last thing I will say Josh, we gotta plug this before.
- 1:48We jump into it, Josh's going to be leading a course.
- 1:53On data engineering for machine learning.
- 1:55I believe. That's right.
- 1:56That's right. And that's coming up in October.
- 1:58So anyone in September is September to mid-september.
- 2:02Yeah, sorry just had to get sober.
- 2:04I do the slacker. Yeah, exact September it's
- 2:08happening. Get after it.
- 2:09Will leave a link to that in the show.
- 2:11Notes, if you want to jump in to his course and we should
- 2:15probably start Chad with what I feel like made a lot of waves in
- 2:20the MLS Community. You wrote an incredible blog.
- 2:22It's about data modeling. Can you just give us some
- 2:25background on that? What the hell is is it that
- 2:27you're talking about for those who do not subscribe to your sub
- 2:30stack and then we'll start doing the good old fun of talking
- 2:35about why it's so important? Yeah, so data modeling, if
- 2:42you're not super familiar with it, like the sort of elevator
- 2:46pitch is you're basically building relationships between
- 2:52like core Within your data. And there's actually two places
- 2:56that you can do this. So there's something called the
- 2:58physical data model, which is like how the relationships
- 3:02manifest in your data environment, you know, whether
- 3:05it's like snowflake or whatever, whatever it happens to be.
- 3:09So this is, you know, the process of using DBT and you're
- 3:12joining tables together and all of that stuff.
- 3:16But then there's something else which is like a semantic model.
- 3:20This is the way that I hate to call it like, Legacy or old
- 3:25school because I don't really think it's Legacy.
- 3:26I think it's still pretty meaningful, and a lot of data.
- 3:29Architect still do. This is like entity-relationship
- 3:31design. And that's the like, you find an
- 3:35inn. You think about the entities
- 3:36that are meaningful at your company?
- 3:39So, abstracted away from any data Centric, implementation
- 3:45you, then diagram the relationships between those
- 3:49entities. You think about the cardinality
- 3:51like, does it have a one to many?
- 3:52Any relationship or minute one. You create, this essentially
- 3:57diagram of the world, all of the properties that are relevant and
- 4:01sort of germane to each entity. And then that, that is what
- 4:05informs your physical model. Like the thing that you actually
- 4:08know build in your, in your in Snowflake or whatever it might
- 4:12be. The, the point that I called out
- 4:15is like that process of taking sort of a strategic very
- 4:19thoughtful approach to modeling is not that But in a lot of
- 4:24clouds Centric, like data based organizations Convoy was
- 4:30certainly among them what has become increasingly more
- 4:33requirement. Common.
- 4:34I've noticed is the elt approach of like let's just collect
- 4:38everything we possibly can from every Source.
- 4:40We possibly can dump That Into You Know, snowflake or dump it
- 4:44into Data bricks and then we'll kind of like do a little bit of
- 4:48modeling just so that we can actually use the data to answer
- 4:51some business question. But it's Not comprehensive.
- 4:54It's not like the full, the full spectrum of relationships, which
- 5:00makes our data like fundamentally less useful.
- 5:02And then you see a lot of these. Basically, the same query is
- 5:05being written over and over and over again.
- 5:07One reason because that happens is because the data model is
- 5:10actually like not comprehensive. And so people end up, you know,
- 5:14the replicating things and duplicating things.
- 5:16I think that's a big problem. I think there's a huge problem
- 5:19there on like snowflakes spend. We're seeing this at Convoy.
- 5:23Now, like if you do not have a great data model, you get a ton
- 5:26of replication and your spin goes to the roof, the complexity
- 5:29of the queries is is quite impactful.
- 5:33And when you start achieving, you know, Big Data at scale,
- 5:37that query complexity is like, very meaningful.
- 5:40Maybe when you're a small company, it's not.
- 5:42But once you start adding a lot of sort of data to the fire, it
- 5:45is, it is actually pretty meaningful.
- 5:47And then just from the perspective of like the data
- 5:51being useful like being able to answer questions and not having
- 5:56data engineers and data scientists and data analysts
- 5:59like constantly getting pinged from your business partners like
- 6:02product managers. Yeah, I'd like having a great
- 6:05data model solves a lot of that. So that was sort of the core of
- 6:08the of the piece. So good man and who would have
- 6:16thought like data that is useful for people outside of the data
- 6:21scientists? That's theory that we can all
- 6:24rally around and I also think about like this idea of strategy
- 6:29and needing to have the strategy when you're going into things
- 6:33and I imagine that you can get away with it.
- 6:37It's almost like the idea of technical debt, right?
- 6:41You can get away with it for a certain amount of time until you
- 6:43get to a certain level of scale and you see that.
- 6:47Whoa, now once we've hit such a large scale, we're not able to
- 6:54properly or quickly, take advantage and gain insights from
- 6:59the data that we've got, is that right?
- 7:03I think, I think that's certainly correct.
- 7:05But, and I think it manifests in other problems like there are it
- 7:09manifests in in problem? Surround ownership, you know, I
- 7:12manifested and problems around like there's a bunch of
- 7:16questions that are important for data teams to be able to answer
- 7:20that are just either not possible or it takes a lot of
- 7:25work. So a very common, use case that
- 7:27I've seen happen is actually on like the customer service side
- 7:31or like data science for a customer service or operations
- 7:34where, you know, say you have some support ticket or you have
- 7:37like an email thread between like an operations person and a
- 7:41You're circling back and forth and you want to understand if
- 7:45this particular thread or the service ticket or whatever it
- 7:48might be, had some real world impact on that customer.
- 7:52Like, did they buy the thing? Because their problem was
- 7:55resolved, or did they not by the thing like what happened?
- 7:58If there's not a great data model in place to allow you to
- 8:01answer that question? It's really the difficult to do.
- 8:04You end up having to write like you know a whole bunch of like
- 8:06do a whole bunch of fuzzy matching and things like that
- 8:08whole bunch of case statements? Well, if this thing happens,
- 8:11Happened and this thing happened.
- 8:12And, you know, we see that like this particular shipment that
- 8:15that we're kind of guessing might be related to the thing
- 8:17that we're talking about, like, you see, you see a lot of that.
- 8:20And it's frankly, it's just, it's an accurate, it's wrong.
- 8:23If you want to start automating, those processes is really hard
- 8:26because you're going to be wrong like fifty fifty percent of the
- 8:28time or more. It's really hard to build
- 8:31machine learning on top of on top of that type of stuff and
- 8:34it's everywhere and then the last piece I would say is that
- 8:38there's just some there's fundamentally Some aspects of
- 8:42the business that people are not even aware of that.
- 8:45They need to be aware of. There are these the way I like
- 8:49to think about a company is as a network, right?
- 8:52You actually have a bunch of different entities.
- 8:53They're interacting with each other all over the place and
- 8:57through life cycles and what happens oftentimes is it product
- 9:01teams, focus on like one particular piece of that life
- 9:03cycle and if the modeling is not done pretty well, you lose out
- 9:08on a lot of the benefit of like how does the entity that you
- 9:11care about interact with all of these other entities in your
- 9:14business. Like we have machine learning
- 9:16teams that are focused on our pricing model, for example, and
- 9:20there's a lot of things that impact a pricing model, but when
- 9:23the modeling is not done, it becomes incredibly hard to use
- 9:27that data for training and and so on and so forth.
- 9:30So I think there's a lot of benefits to data science to
- 9:33having modeling done well and some of them are not, they're
- 9:38not immediate, they're not completely.
- 9:41Parents at first glance 100%. Hey, I'm just gonna hop in here.
- 9:45How you doing, guys? How's it going?
- 9:46I was going y'all. You and I talked a long time
- 9:49ago, I was a long time ago was like it was like one of our
- 9:52mutual VC friends introduced us and even remember why we were
- 9:54talking about, whatever, right. But but in that conversation you
- 9:58said something to me that it's kind of stuck with me and I've
- 10:01quoted it. Other people, you know, like,
- 10:03you know, Chad Sanderson had a convoy you said something, which
- 10:07was the, the idea that the modern, yeah.
- 10:11The modern cloud data warehouses, right?
- 10:13Have made it so cheap for me to just ask whatever question I
- 10:18want relative to the old way of like, you know, teradata and
- 10:23olap, cubes, and all that kind of stuff, right?
- 10:25That it costs less for me to formulate and execute the query
- 10:29that I want to run. Then it does for me to invest in
- 10:33these sort of cognitive overhead required.
- 10:35And understanding someone else's query, someone else's business
- 10:39question and understanding okay. To the reusable components of
- 10:42that that I can then extract into my, you know what I mean?
- 10:46Just answer my question and, like, share that kind of stuff
- 10:49and that was like deeply and profoundly insightful to me
- 10:52because again, like I'm super old right.
- 10:54I've been doing this stuff for like a long time like, you know,
- 10:58reading like the data warehouse modeling toolkit like back when
- 11:01I like started, like right out of college and like, 2001 was
- 11:04like a formative, you know, formative experience in my life
- 11:07and like, one of the true like, Nerdy.
- 11:11I do this again. This is like, I don't know.
- 11:13There's one day where I was when I was working at Google where I
- 11:16met Dustin Hoffman and Jeff Dean on the same day.
- 11:19And like, I was really excited to meet Jeff Dean While most
- 11:21people would be excited to meet Dustin Hoffman, right?
- 11:26But like beating meeting Ralph, Kimball who wrote the data
- 11:29warehouse modeling toolkit was like.
- 11:30I had him autograph, my copy and stuff, like I was just such an
- 11:33aggressive, right? That like he had.
- 11:36This is, this is sort of the core of the problem.
- 11:38I think, at least as you framed it, I think this is the core of
- 11:40the problem. It is.
- 11:41I'll so cheap. I mean I had a tweet about this
- 11:43once which was like, snowflakes genius is that it?
- 11:45They have invented a business model where anyone can just
- 11:49throw money at a problem, right? I want to answer my question.
- 11:53I want it faster and I'm just gonna like throw a money.
- 11:56This one's going to spin up the warehouse.
- 11:57Make it bigger, answer my question, right?
- 11:59And like, what a license to print money that is, and, and
- 12:03that being like the core of our problem, right?
- 12:05Is in that we move fast. We have infinite scalability,
- 12:09infinite flexibility. And in, Getting so excited about
- 12:12these things. We have thrown out all of the
- 12:15things that were great about the old again to be fair heavily.
- 12:19Resource-constrained, you know, single teradata box.
- 12:23It's got 30 terabytes, that's all you have.
- 12:25You know, you gotta, you gotta be careful with it.
- 12:27You got to schedule it, you got a plan you know we've turned out
- 12:30the baby with the bathwater here essentially.
- 12:32Right. And I guess like my question for
- 12:34you man is like what is the how are we going to put this Genie
- 12:36back in the bottle? Like how do we start to like
- 12:39unwind? Like, well, I think we're all
- 12:41kind of coming down from, like, the Sugar Rush or, you know, the
- 12:44cocaine, the cocaine, High whatever, whatever your
- 12:46preferred analogy is here, right?
- 12:47We're like really, okay, this is clearly gone too far, we've all
- 12:50lost our minds, never your drug of choice has.
- 12:52What every drug of choice is exactly precisely apple juice,
- 12:56whatever, and teach their own. Right.
- 12:59What do we do now? Like, how do we start, how do we
- 13:03start to fix this? Yeah, yeah, yeah, I think, I
- 13:06think that's a, I think that's exactly the right question and
- 13:09the one of the I said I that I think about the sort of one of
- 13:14the comparisons I think about it is is actually get Hub when
- 13:18people talk about GitHub as soon as you know.
- 13:20I mean, nowadays, it doesn't have a huge number of
- 13:24competitors. But you know, there used to be a
- 13:25lot of people doing Source control and get Hub, sort of
- 13:29emerged because it did something else really well.
- 13:34Which is it, it actually allowed people to be Be agile.
- 13:42It allows someone to be agile and all the principles of agile
- 13:44were like, you know, you've got this idea of like creating like
- 13:49new branches and reviewing those branches and like you could do
- 13:52like really great code reviews and make people like make sure
- 13:55the right people are are sort of in the loop and you can like and
- 13:59you can physically see what's changed and and like you have
- 14:03alerts and monitors like you have all this basically have all
- 14:05this like really great infrastructure on how you move
- 14:09quickly safely. And it sort of it sort of
- 14:13reminds me kind of of where we are in data right now.
- 14:16Like when the cloud unlocked is our ability to to move really
- 14:21fast to your point. A little brother just wants to
- 14:24that right? Does the cost of that and it
- 14:28seems like the next step is to kind of regress back a little
- 14:32bit. Like we need to we need to put
- 14:33the to say your phrasing to put the genie back in the bottle a
- 14:37little bit but we still want to move fast, but we just need To
- 14:40have the the safety guard rails in place that allow us not
- 14:47necessarily to have like an extraordinarily well modeled
- 14:49system from day one because I think it's just impossible given
- 14:52how startups are formed these days like hired you know six
- 14:56Engineers zero data people and and like maybe a product manager
- 15:00and a designer so it's just it's just not feasible to actually
- 15:02have a great data model from day one.
- 15:04But what would be great is if it was very simple to like as these
- 15:10Scalability problems start to emerge.
- 15:13You can modify your data model easily and quickly and do it in
- 15:17an iterative way and the more, the more your business scales
- 15:21and the more senior data people come on instead of flooding them
- 15:25with service tickets instead, they sort of focus on they take
- 15:29this like GitHub like approach, they're like, hey there's some
- 15:32re factors that need to happen. Here's what needs to happen, I
- 15:34can do it quickly, I can do it in my sort of, you know
- 15:37incremental part of the model over time.
- 15:40We can figure Route. Like, how do these various
- 15:42business entities, relate to each other and, and improves
- 15:46incrementally. I think that that's the type of
- 15:48thing that has to happen at Convoy.
- 15:51We've been trying to do this in a pretty manual way, so far
- 15:56through the idea of like contracts data contracts, which
- 16:00we can. I mean, you wrote a post about
- 16:02this? I'd love to talk about it more.
- 16:04Yeah, I sure contracts with this sort of abstraction on top of it
- 16:09of what I've been calling. Data design or like, you know,
- 16:12or like data ux, which is literally like a design surface
- 16:16for your data model that people can add to collaboratively like,
- 16:19okay, I've got an entity called a shipment or I've got an entity
- 16:22called a shipper. I've got these like 12
- 16:24properties and I actually need a thirteenth foreign key, so that
- 16:28I can answer like some question. And I should be able to add that
- 16:30really fast. Someone should review it.
- 16:33That should be enforced through a contract flows into the
- 16:35warehouse, and then I can really easily and quickly answer my
- 16:38business question and it's all safe.
- 16:40And I think All the tools to do that stuff exists today.
- 16:43Like it doesn't actually need any new, like net new advanced
- 16:46technology or anything. All the stuff is there is just
- 16:49is just applying it process workflow, like all, all that
- 16:52kind of good stuff. Yeah, yeah, for sure, say it was
- 16:57like, I had questions and thoughts and they all just got
- 16:59away from me, like, all of a sudden as it happens.
- 17:01That happens to me all the time. How about the oldest fish?
- 17:04It's just story, a story being a human, you know, it's just it's
- 17:06just water straight, so I guess, I guess Jack.
- 17:09What is awake? Are you?
- 17:10Saying is like, we don't need to throw the baby out with the
- 17:14bathwater like we don't need to like, you know, obviously
- 17:16obviously no one is going back to the old days of whatever,
- 17:19right? I guess.
- 17:22So what you're saying is, we can layer on contracts.
- 17:26I think the contract contrary is a fun word for me, contracts,
- 17:28that is a new term for me. Because when you say contract, I
- 17:31hear in my head schema because I because I live in, like the land
- 17:35of like protocol buffers and and apis and stuff like that, right?
- 17:39But obviously, schema is an overload.
- 17:40Term in the data warehouse world, if you say scheme of the
- 17:43people are gonna be like, Oh, you mean like let's game.
- 17:44I like a namespace in a database and I'm like, no, it's not
- 17:47actually not what I mean, right? So contract.
- 17:49So, I just, I love contract as a word for this just to be clear
- 17:52and disambiguate the, we're not talking about like, a literal
- 17:54database, schema, right? You're saying, this is a thing.
- 17:58We can layer on to our existing data warehousing system.
- 18:02It's not a thing. We need to let go.
- 18:03Okay, we screwed up because I mean, there's just a very human
- 18:08instinct and you see this with like the DBT people are
- 18:11currently like completely rewriting their IDE from
- 18:13scratch, right? To just like let's just throw
- 18:15this out and start over. Yeah, I mean and I get that I
- 18:19empathize with that but I just feel like in my career I have
- 18:22learned that that is like 99% of the time the wrong thing to do.
- 18:27You know? So, is that what you're saying?
- 18:28Like this is something we can, you know, gently introduce
- 18:31basically. Exactly.
- 18:32Like I think, yeah, I think that pretty much every business.
- 18:37I've talked to, about this and Convoy included, Usually has
- 18:41some set of use cases where contracts are in sort of
- 18:47enforced, schemas are incredibly meaningful in our case, it was
- 18:52it was our pricing model, right? We had pricing model when the
- 18:56most important models and convoys business is responsible
- 19:00for like designing the the price of our auctions essentially.
- 19:04Like when we when we, when we stopped an auction and The data
- 19:10was not good, like we were, we were dropping, I think 10% of
- 19:14the rows that were feeding into the our training set.
- 19:17And that was because there was a tremendous amount of
- 19:20Transformations, there was a lot of stuff that was just randomly
- 19:22getting like columns and were being dropped, Upstream column
- 19:26names that were getting changed. Like the engineers, like,
- 19:28weren't really aware of what was going on Downstream, and in the
- 19:31reason that was happening and because we took this approach
- 19:33of, okay, like software engineer, is you guys don't
- 19:36really need to think about the data that you're emitting.
- 19:38Just going to build a pipeline that pulls everything that
- 19:41you're capturing and dump it into the into our storage
- 19:43environment. And we're going to build all of
- 19:44our training sets on top of that.
- 19:46Yeah. And turns out that's not a good
- 19:48idea. That's actually not it.
- 19:51Not a great idea. But, but if we can, if we can
- 19:54say, hey, like, what? If that didn't happen?
- 19:57What if we, what if we could make it so that this data, that
- 20:00data was actually incredibly trustworthy, that there was a
- 20:03clear owner to it, it solved a very discrete discrete problem
- 20:07and and And the actual consumers of the data, the data
- 20:11scientists, they understand, the data that they need that.
- 20:14Like, I know what I need to power this model.
- 20:18I just need someone to implement it for me in the way that I
- 20:22want. And I need it to be trustworthy
- 20:24and I need to arrive on time, and that to me is the purpose
- 20:26that the contract serves. It does all it does all of that
- 20:29through schema. And and you can, you can
- 20:33introduce this in a total totally iterative way.
- 20:37You'll one contract at a time, Solve a business problem, you
- 20:40know, get the value, move on to the next one.
- 20:42Totally totally. I love that.
- 20:44This is an interesting. I also don't call like a
- 20:46disconnect Chad. I think between us that I think
- 20:49a lot. I think about a lot is for my
- 20:50course, as well, right? Which is that I guess I learned,
- 20:56you know what, back in my Google days, right?
- 20:58So I was hard to Google like way back in, like 2008 as a
- 21:01statistician, but as soon as I got there, all I did was write
- 21:05code because basically no one stop me more or less, right?
- 21:09Which would be like, I wanted to analyze some data about how an
- 21:13ad auction worked. And so I went into the ad server
- 21:18and rotate a coder vest and I added like the data that I
- 21:21wanted in the Structure that I wanted it to do my Downstream
- 21:25analysis and, you know, send it out for code review and like had
- 21:28it reviewed the logs team. Because like the time, like, if
- 21:32you added like a single input field to the logs, that was like
- 21:34an extra terabyte of data every day, which was just got a great
- 21:38right and got it approved and my log started flowing.
- 21:43And I got my data and I have for better or worse like taking this
- 21:49attitude of like it's sort of a you know it's a what is a game
- 21:53of Own style. Like I will take what is mine
- 21:55with Fire and Blood kind of thing to most of my career?
- 21:58Like I If you're not going to give me the data I need.
- 22:01Well, I'm going to go into your system and I'm just going to go
- 22:03get it and while I'm there, I'm calling.
- 22:06It affects a few bugs. I find because I'm to be
- 22:08perfectly honest with you. Like, much better in engineering
- 22:10than you are. And that's fine and like that
- 22:14that's the way that it works and a small companies that's kind of
- 22:16like that's the way because there is no you know, that's
- 22:20just the way it's done, right? But it's coming to get larger.
- 22:24Like I don't scale, you know, I mean like you can't and you know
- 22:28God willing I shouldn't be allowed to scale, I guess.
- 22:30Basically you need you need this, you need a process.
- 22:34You need like unique contracts. You need workflows, you need
- 22:37this too because again, to handle this kind of stuff and I
- 22:40guess like, I have never succeeded.
- 22:42Especially made that transition a my career like I a better, I
- 22:45am very much myself. So I don't know how would
- 22:48something like this work, you know in a big company where it's
- 22:52like, there are too many people and you can't just go like
- 22:54cowboy this kind of stuff. So I'm kind of like that's
- 22:57that's the part that's Most Fascinating to me about like
- 22:58what you're talking about. Yeah yeah.
- 23:01Yeah I mean man I would love it. If you would love to get Convoy
- 23:08I would be like I'm right. I could be like your ninja.
- 23:10You would just like you, you're amazing.
- 23:12Think you would be making a convoy?
- 23:14That would be it's so funny that you say that because that, that
- 23:18is traditionally been my experience.
- 23:21That's been my experience as well.
- 23:22It's just such a difference between like companies have
- 23:25different scales and like and and it's something I didn't, I
- 23:30didn't even realize until I joined Microsoft.
- 23:32And then I joined Convoy after that of, you know, in some
- 23:37places the the there's almost like a Stockholm syndrome type.
- 23:42Thing going on with 80's where they did like I'm so like I'm
- 23:49not allowed to go up and touch this database or whatever.
- 23:52I'm and so I just need to accept everything and as I told the, I
- 23:57called the Oliver Twist thing. It's like the please, sir.
- 23:59May I have some more kind of thing.
- 24:00Exactly, please, please data producer.
- 24:02Please, please, let me have your data.
- 24:05I'm pleased to meet you discuss. Where on here, I've been
- 24:09swearing for a while, is that okay, okay, so I'm like, fuck.
- 24:12That shit. Fuck that.
- 24:14I am going to go in and get it. I don't care.
- 24:17This is this is how I was taught.
- 24:19This is how it this is, how it was done.
- 24:20Like I don't like, I don't know, I want this to happen on my
- 24:24timeline. Not now, your timeline like
- 24:26anyway. And honestly I think I think
- 24:28that like I think that is so the thing that I have felt sort of
- 24:33as a data platform lead. Is that the what's really
- 24:36missing is the interaction between the producers and the
- 24:40consumers. And if the If the consumers just
- 24:43going to go up into the where they're gonna go up into
- 24:45production and make some change and the producer like doesn't
- 24:49like that great like that's now a conversation that can happen
- 24:52and we can talk about why we like this data is important to
- 24:55me you aren't you? Like you aren't getting it to me
- 24:58the way that I wanted. So I did it.
- 24:59So if you don't like it we need to talk about our options here
- 25:02because I need to run my model and you know whatever.
- 25:05But but what I find is that, you know, I don't know if it's
- 25:09almost like a meekness or sort of an acceptance of like Of, you
- 25:13know, I can't get the stuff that I need.
- 25:14I ask people for this, they don't give it to me.
- 25:17And so instead, I'm going to spend a month like, you know,
- 25:19writing SQL and snowflake or doing some crazy analysis
- 25:23instead of just going and getting exactly what I need.
- 25:25I'm gonna exactly, I'm gonna build a machine learning model
- 25:27to impute. The missing features that I need
- 25:30to train. Like it's just like this is
- 25:31absurd. Just go get the goddamn data.
- 25:34Like what is wrong with you, right?
- 25:36But I think what I feel like we're saying here, and I think
- 25:38this is important and this is the part I lack, right?
- 25:40Is like, you basically need a carrot, and A stick model.
- 25:43Yes right. Like I'm the stick and you are
- 25:46the carrot because I'm just like if it's just all carrots, it's
- 25:50not going to work, right? But if it's all sticks, it's not
- 25:52going to work either. Because I mean again inevitably
- 25:54I get fired because you know, someone takes me out like I you
- 25:57know it's right every ninja goes down eventually no one.
- 26:00No one survives forever, right? It so I mean that's that's the
- 26:04thing is you need that sort of pairing.
- 26:06Basically, you need to figure out like, what is your carrot
- 26:08stick strategy for moving the stuff for to making this happen?
- 26:11That's yeah, that's yeah. Yeah, you're right.
- 26:13And I think I think that's so here's sort of an interesting
- 26:17thought that I've been having, and I'm still trying to express
- 26:21this in a way that's like not confusing and people don't yell
- 26:23at me because I get yelled at a lot on LinkedIn and I love them
- 26:26out there, so you do and it's, I thoroughly enjoy it.
- 26:29Like you. I love your post with the best
- 26:31at the comments are fantastic. Anyway.
- 26:32Okay. Yes, please.
- 26:33Yeah. But so, so, one of the things I
- 26:36sort of, i-i've been thinking a lot about this, like GitHub
- 26:41comparison, And I think at first, when I was approaching
- 26:45this problem at Convoy, I was approaching at, basically, the
- 26:49way that you were saying, which is a data scientist or someone
- 26:52would come to me and say, Hey, you know, what's going on with
- 26:55this quality or I don't understand why it's so bad.
- 26:58I was like, well, you're a software engineer like you know,
- 27:00in you care about the quality so you like it should be on you
- 27:04like oh go do it like oh yeah. It done.
- 27:07And yeah. But but there was like a real
- 27:10hesitancy. This is there's a real hesitancy
- 27:14to do that and I think a lot of it has just come from
- 27:19organizational design of a lot of it has come from sort of
- 27:22severe separation of concerns like mounting expectations of
- 27:27like, you know, we don't we don't the business like doesn't
- 27:30care if you put a lot of time into Data quality and sort of
- 27:34data governance and things like that.
- 27:35We just want the model and we just want, you know give us a
- 27:38report and so I need to like, maximize my time as a data
- 27:41person too. To deliver those things.
- 27:43And now if I have to add sort of quality and ownership of some
- 27:47Upstream, like production thing into my workload, that that's
- 27:50going to be a net negative for me.
- 27:51So I need to find someone else to do this, and the software
- 27:54Engineers aren't listening. So a lot of the times like those
- 27:57things get, redirected to the data engineering team like, hey,
- 27:59the pipeline broke, go fix it, data Engineers, I can't yell at
- 28:02software Engineers, I'm going to yell at you instead, thank God
- 28:04because you have to listen to me.
- 28:06Then that is so true. Okay good.
- 28:08Oh yeah, yeah, but I all I was going to say, is like what?
- 28:11That's kind of Led me to feel is that the sort of GitHub based
- 28:17approach doesn't actually work for data.
- 28:24If the consumer, you know, if they if they care about the
- 28:29color, they care about the quality.
- 28:30Then that's great. And then it does work.
- 28:32But if you're living in a world where they don't care, and
- 28:34they're basically just saying, I just want you to give me like
- 28:38this particular data asset, like when I need it in this form at
- 28:41this time. Then then then then code may
- 28:47actually not be the right level of abstraction for that.
- 28:50Okay. And and so we're sort of moving
- 28:53to a world that Convoy where what we're trying to do is
- 28:57abstract the code and instead focus on the semantics and like
- 29:03the data itself where and we're in someone someone might be able
- 29:08to say, for instance, there's like a real world thing that
- 29:11happens. Let's say a shipment has been
- 29:14canceled, and I want to know every time the shipment has been
- 29:18canceled and I want to know that in real time.
- 29:20And here's what a cancellation means to me.
- 29:23And there's, like, six different places that there's like, the in
- 29:26a life cycle. There are six different places
- 29:28where that cancellation could occur.
- 29:29I want to know all of them. And here's like, the, the
- 29:33properties about those cancellations that are that are
- 29:35meaningful to me, all of that can actually be described using
- 29:40English and semantics. Of course, I know.
- 29:43And if you if you're able to capture that as schema and then
- 29:47either an engineer or data engineer, or whoever else, you
- 29:49have some agreement and that's something we can talk about.
- 29:51But if there's some agreement to actually implement this, as a
- 29:54contract, then once that data flows into, you know, your leg
- 29:59or your lake house or your Warehouse or whatever it is you,
- 30:02you can essentially map the semantic meaning to like the
- 30:07actual code in the warehouse, there by abstracting the code.
- 30:12So if now, if I Make a change. I can make a semantic.
- 30:15Change the engineer understands how to do that from like this,
- 30:18the schema sort of code perspective and I can go and
- 30:21train my model without even needing to think about like,
- 30:24okay, I need to go into production and write something.
- 30:27I'm Emmanuel. Mason machine learning engineer,
- 30:30at stripe and author of building, machine learning,
- 30:32powered applications. And if you don't want your
- 30:35machine learning models to explode, well, you should
- 30:38subscribe to this podcast. Did you?
- 30:41You said so much and I you have to forgive me, I'm going to
- 30:44comment on like three different things.
- 30:45You said because they're each one's own words.
- 30:47You said his greatness? Fantastic is a just it's
- 30:50basically like if I could just take that your little like the
- 30:53speech, you just gave there and just turn that it's like an ad
- 30:55for my data. Engineering 4ml course.
- 30:57Like that would be like a deal like this because we want to
- 31:00make sure you hit on all the things which is that?
- 31:02What's up? What's up bud?
- 31:03Will make a clip for you? I appreciate that.
- 31:05Thank you. Thank you, mr.
- 31:06Speaker will be grateful. First thing you said was I think
- 31:10which It's really like, the reason I want to teach a course
- 31:15is because there is some things about the reality of doing data
- 31:19that cannot be talked about in podcasts and cannot be written
- 31:23about in blog posts, which is like the implied, social
- 31:28dynamics, you know, like cultural hierarchy of various
- 31:31engineering teams at various companies.
- 31:34Like, this is a very real thing. Anyone who does this stuff for
- 31:37real can, like, talk about this, right?
- 31:39But we but we never talked about it.
- 31:41We never talk because it's is very touchy.
- 31:43It's very sensitive, right? It's not something that can be
- 31:45like discussed out in the open, you need like, I mean, I don't
- 31:49is that you need like a group therapy session or something and
- 31:51that's to a certain extent like what my course is is like, it's
- 31:55a place that's private, you know, we're like the entrance or
- 31:59screen from practitioners like we're not letting you know,
- 32:01like, where we can have these sort of conversations about
- 32:04these things. And how do we deal with this,
- 32:05right? The second one I want to say and
- 32:08again this is just again, like advertisement for the Two topics
- 32:12for the first session. My course are one data
- 32:14collection, right? Obviously, because it's so
- 32:16foundational. And the second one is data
- 32:18quality, and I think I have like a lot of people, I have very
- 32:22much have the challenge of, how do I sell data quality?
- 32:27Like as a thing as a thing we invest in as the thing we like
- 32:30to talk, you know like we put money into and I think what was
- 32:34funny was I've been reading up on how different companies
- 32:37handle this and I love, love, love Google's, right?
- 32:41Wrote this wonderful paper about their data validation system.
- 32:44I don't know if you've come across this is it's actually
- 32:45like it's actually largely open source, it's in the tf-x the
- 32:49tensorflow extended system it says data validation Library
- 32:52they wrote and basically I'm so again talking to my friends to
- 32:55Google it is like taken over a google-like data, validation
- 33:00data quality with like clear defined schemas specifications
- 33:05for like what values are allowed for different fields with what
- 33:08tolerances is everywhere. Is everywhere.
- 33:12They use it for everything, like all kinds of stuff.
- 33:14It's completely taken over there because because the data quality
- 33:17stuff, it does really like three different things.
- 33:19One, it's documentation, its docket.
- 33:22Like what does this model expect?
- 33:24What inputs does it need to see for it to work correctly, right?
- 33:27That's license documentation for new Engineers, exploring new
- 33:29models to. It's actually like they use it
- 33:33for testing, they will use the schema and the specification,
- 33:37the contract, if you will to auto-generate training examples,
- 33:41Is that are designed to push the limits of the schema.
- 33:45Like let's intentionally throw some weird data into this model
- 33:48and see what happens and see what breaks and it catches bugs.
- 33:51So it's like fuzz testing effectively, right?
- 33:53And the third thing, and this is the most important thing and
- 33:56just this is like to me, this is separates like people who can do
- 33:58ml from people who can't Google has learned through trial and
- 34:02error. And lots of years of mistakes
- 34:04that there is free money and doing a better job of
- 34:09constructing your training data sets.
- 34:12By using data quality checks to expansively test extreme values,
- 34:17rebalance, your classes. There's free money in there.
- 34:20You don't need a better architecture, you don't need new
- 34:22features, you don't need anything.
- 34:24You can do a better job of constructing your data set,
- 34:27using these data quality metrics, as a guideline and get
- 34:30like a three or four percent left, like you be insane.
- 34:34Not to do that. It's like literally free money.
- 34:36Anyway, I'm sorry, I shut up about this, but like this is
- 34:38this is the stuff I want to talk about, because it's not getting
- 34:40talked about And we and this is my opportunity to try to fix
- 34:43that. Yeah.
- 34:44Anyway I'm sorry there there is something that I wanted to talk.
- 34:47I wanted to touch on which I think is a bit tangential to
- 34:53this, but stay with me and I'll bring it back around and it is
- 34:58going back to this point where you've got some data that maybe
- 35:03has been. It's been tainted along the way
- 35:06along its life cycle along its journey.
- 35:09And that's because somebody Upstream Something with it.
- 35:12How do you make sure? Or how can you get someone any
- 35:17time that they touch data or they mess around with something
- 35:20in the database? They know everyone that it's
- 35:23going to affect like those second and third order effects?
- 35:27Yeah, totally. Yeah, yeah.
- 35:30So so so, so, okay, so there's a few things that I think are
- 35:34really interesting to talk about.
- 35:36I think the the core of your question, the core of the answer
- 35:39is lineage The problem with most lineage systems today is that
- 35:43it's just metadata a collected off of the warehouse like you
- 35:46pull out so snowflake metadata and you can build a lineage
- 35:49system based on that. And you can see how various
- 35:51tables are connected. But to your point, there's
- 35:54nothing that actually ties all the way back to the services
- 35:56themselves. And if you had that even if you
- 35:59went that one additional step, it actually becomes an order of
- 36:03magnitude more valuable for like three different reasons.
- 36:05Like 11 is sort of what you said which is if you are a data
- 36:10producer today. Producers have literally no idea
- 36:14what's going to happen if they do anything.
- 36:15Like they drop a column there, like I don't know, like I don't,
- 36:20who knows. Um, but it, but it seems like
- 36:22you have some sort of lineage component and and that that, you
- 36:27know, I could go quite deep at this actually.
- 36:29But if you sort of combine this idea of contracts and lineage
- 36:32together, then then the the data producer could essentially know.
- 36:37Like if I am going to drop a A drop of property or change a
- 36:42name I can go out. Check my lineage, see like who
- 36:47are all the consumers of this who and go all the way
- 36:50Downstream. And then be like listen if you
- 36:53if you make this change and you do it in like a non version,
- 36:57controlled way. You will break our pricing model
- 37:00like you will break the training set for our pricing model and
- 37:02just having that level. Like being told that you're
- 37:06going to break something before you break it is, I think would
- 37:10fundamentally Change how software Engineers interact with
- 37:14data. It's not that like producers
- 37:18don't care like they would just break the pricing model.
- 37:20Even if they knew that it would happen they did they just they
- 37:22just don't know what's going to happen and and and and how could
- 37:25they like they're not. They're not really brought into
- 37:26that that part of the data life cycle at all.
- 37:30So yeah, I think that would be really important.
- 37:33The other thing is like those not really there's not really
- 37:36the idea of a like a backwards incompatible change when your,
- 37:40when your life managing. Being database database changes.
- 37:43Like there's a, there's the idea that chains like sort of within
- 37:45the service, but not within, you know, like what's going to
- 37:48happen to all the consumers of this, which is another area.
- 37:51I think data contracts is really amazing because you can
- 37:54essentially say like, hey, we understand what this schema is
- 37:57supposed to be. There's a contract here and the
- 38:00change that you're going to make is going to be backwards
- 38:02incompatible. Like are you sure you want to do
- 38:03that? Is this really the best?
- 38:05The best thing for you to do? And if it is, if you are going
- 38:09to have to make an incompatible changes, We should at least tell
- 38:12people what's coming and and be able to communicate to all the
- 38:15to all the consumers like Downstream.
- 38:17So like that would be, I think massively beneficial.
- 38:21Let's say a couple of things there like um is this sort of
- 38:24like riffing on which I was saying?
- 38:26Well one is that you know so it's slack.
- 38:29You know, first of all most we rely primarily on our like are
- 38:32structured logs. Like we have Thrift, you know,
- 38:34Thrift schema for are structured logs.
- 38:36That were designed to go in the data warehouse and that was
- 38:38obviously integrated with code review, integrated with Eicd.
- 38:41Checks such that if you introduce a backwards
- 38:44incompatible change to the logs, the cic Jack would fail and
- 38:47there goes my dog barking that's good.
- 38:49When he goes, he probably wants to get up.
- 38:50I'll go get her the cic D check would fail and exactly that you
- 38:56could again it could be overridden but you had to have a
- 38:58conversation with people before you did it right.
- 39:00That kind of thing too is like It's certainly the case that
- 39:04people like unintentionally, like, through ignorance or
- 39:07whatever do these changes and stuff.
- 39:09But in my experience, the bigger problem is really just like like
- 39:13honestly bugs more or less like no one meant.
- 39:16No one meant to break the thing, right?
- 39:18They didn't mean to break the pricing model, but they
- 39:21introduced a bug. And so, therefore, you know,
- 39:23this RPC call like stopped, that was actually critical stopped
- 39:27working silently and no one noticed and stuff like that,
- 39:29right? So I just want to call out that
- 39:32like, for me, Experience insofar as Lake schemas and contracts up
- 39:36front. Remove just the huge class of
- 39:40just the knucklehead stuff, right?
- 39:42Like the unforced errors, which is creepy, just key.
- 39:45That doesn't mean that you don't need data quality and data,
- 39:48validation step, Don't Downstream because again, bugs
- 39:51happen, nobody's perfect. This is, this is normal and Zoo,
- 39:55but we, but again, we have to be defensive against it because
- 39:57it's especially with ML. It's just way too easy.
- 39:59Chad, as I'm sure, you know, for like this stuff to just slip
- 40:01through and like, no one notices, right?
- 40:03Until you end up with like a model that like is just, you
- 40:06know, it's terrible anyway. So yeah, Good call.
- 40:11I think that's a good point and, you know, to sort of continue on
- 40:17that, I do find that in the data community and even the data
- 40:21science community may I get theirs.
- 40:23I use the term Stockholm syndrome where there is this
- 40:26expectation. That like we need to put all of
- 40:30the quality checks Downstream. Yeah.
- 40:32And and and like you said, they're obviously does need to
- 40:36be like, like you don't want to just leave your fate.
- 40:38Up to the hands of the Gods and, and, of course, and hope for the
- 40:41best. But at the same time, like
- 40:46having like having the people who are producing the data also
- 40:50having skin in the game and it comes to quality.
- 40:53Yes it is incredibly is incredibly meaningful.
- 40:57I think one of the questions and and Josh I'm actually interested
- 41:02to hear. Maybe I was just about to ask
- 41:04you a question. You can't do this to me.
- 41:06Come on. I did hear how you sort of, how
- 41:10do you handle this at slack? Yeah, it is, you know, the
- 41:15biggest, the biggest sort of feedback I get from people when
- 41:18I talk about these things and even earlier at Convoy, when I
- 41:22was pushing a lot of these ideas was like, well, you know, the
- 41:26engineers just don't care, right?
- 41:28It's just not like the engineers don't understand that.
- 41:31This is something that they need to be able to do.
- 41:33It's like an additional like category of work that they need
- 41:36to take on. It doesn't actually At their
- 41:38service in any way to do all these things.
- 41:40So like how is that something that you know?
- 41:43Yeah, just adding these quality checks at slack.
- 41:46Like how did you overcome that and sort of how do you think
- 41:47about it more broadly? That's just that's just a
- 41:50perfect question about. It's perfect question again and
- 41:52it actually it's funny because it gets exactly to what I was
- 41:54going to ask you which it my answer and I'm answer your
- 41:59question that I'm going to ask visit my question like right
- 42:02after that back back to you. Okay.
- 42:04Right. So the answer is that we hired
- 42:06Engineers who Heard about that data, and we basically know what
- 42:11their title was their title, was machine learning engineer, that
- 42:15was their title because the machine learning engineer.
- 42:18Unlike literally every other engineer of the company is
- 42:22basically the person who is going to both.
- 42:24Generate the data Upstream in the production service and
- 42:28consume it and process it. Downstream in the data
- 42:31warehouse, they actually have to your point skin in the game and
- 42:36a stake in the fact that the Data they get for them to put
- 42:40their model to work and for their life to be good and happy
- 42:44these things need to work right they're incentivized in this
- 42:47way. Okay?
- 42:48So ml engineering at least it's plaque was the first best
- 42:54customer for all of this stuff they wanted the schemas they
- 42:59insisted on the schemas right? They needed the schemas.
- 43:01It's solved their problem because they again, we're the
- 43:04only person who lived on both sides of the fence here.
- 43:06Now once we had, The minimal tooling again, contracts, you
- 43:11know, all the downstream data processing, all data quality,
- 43:13checking, all that kind of stuff for those Engineers that it
- 43:17started to grow. It started to expand and then
- 43:20like the growth Engineers. So I mean, I would say to me
- 43:23like, you know, broadly speaking in any company, there are only
- 43:25like three, like there's like four use cases for data and
- 43:29three of them are things and Engineers care about.
- 43:30Right? One was obviously ml.
- 43:33Obviously, second is growth, like growth product.
- 43:36Like growth in particular, slack being Obviously, the canonical
- 43:39product like growth, the original product, LED Growth
- 43:41Company, right? So then the growth engineer
- 43:43started counting on to this and, like, working with their data
- 43:45scientists. And so, they started built, what
- 43:47was great about the growth engines, like for the ml
- 43:48Engineers, like again, love ML, and years.
- 43:50We built like the most minimal sort of shitty tooling possible,
- 43:54right? Just just the minimal
- 43:55acceptable, tooling the growth Engineers come along and they've
- 43:57got like their front end shops and their full stack, and they
- 43:59just start making our tools. They start using our tools are
- 44:02like, wow, this is garbage. Like we're going to make this
- 44:04much better, right? So they start building the tools
- 44:07and adjusting them for their needs.
- 44:08And then the last one was really the performance engineers.
- 44:11And this is my favorite one was that when we started getting
- 44:13very serious about performance because, you know, performance
- 44:16and like, cost Cloud, spend, all that kind of stuff.
- 44:19The performance Engineers started coming in and then they
- 44:21started using structured log to capture like weird.
- 44:24Database query edge cases, and like teams were having cache
- 44:28misses way too often and they started getting serious about
- 44:30this stuff, right? So it all kind of spiraled out
- 44:33from there, but I think the, the taxes back where I'm question to
- 44:36you, if I don't have those Veneers who were designed to cut
- 44:40across the data warehouse. I don't know how to get started.
- 44:43My man. I don't I don't know how to
- 44:45operate in a world where you're exactly right.
- 44:47Because like the regular Engineers don't care.
- 44:50They absolutely. It's it again.
- 44:52I've been a regular engineer. I empathize they have to worry
- 44:54about security. They have to worry about, you
- 44:57know, obviously performance. I have to worry about
- 44:58functionality, the product manager wants this, like they
- 45:00have to worry about 800 million things and so, I feel terrible
- 45:04piling on another thing they have to worry about, especially
- 45:06if like the tooling is immature. Stuff like that.
- 45:08Right? So dude, that is a problem.
- 45:10I don't know how to solve to me that you solve the problem by
- 45:12hiring ml engineers and making them the first best customer for
- 45:16the stuff you're building because they do care.
- 45:18It's in their interests. Anyway, I totally agree with you
- 45:23so I can tell you. I can tell you one of the ways
- 45:28that I've thought about this at Convoy and lead a bit of it, is
- 45:33somewhat authoritarian, I guess. So, that's great.
- 45:37I love my bed. I'm a big.
- 45:38I'm the stick man. I'm with you.
- 45:40Let's do it. Karen stick.
- 45:41Let's bring some stick. What do you got?
- 45:44Yeah, yeah. So so so, so I've basically
- 45:49found success in into two, main ways.
- 45:51Good way is, is actually with the underwater data engineering
- 45:58team and where the data engineering team right now.
- 46:03There are, you know, a lot of them are software Engineers.
- 46:07They're building these Lines. The the stuff breaks for reasons
- 46:13outside their control and they are essentially sort of caught
- 46:17in between, you know, the pincer of like the software Engineers
- 46:22who are owning these like, Upstream things and sort of the
- 46:24downstream folks that are just causing them all sorts of pain.
- 46:27Yep. And that was actually, where a
- 46:30lot of these ideas originated. A convoy was the data engineer,
- 46:34sort of, like, can we just go and solve this problem
- 46:36ourselves? Like can we just go in and very
- 46:40very easily like create like, add the data that we need, add
- 46:45the data that this Downstream team needs, build it as a
- 46:48contract and then hand it off to that software engineering team
- 46:51and say hey if you make any additional changes to this, just
- 46:53understand that like there is some process in place, like
- 46:55there is some CI CD workflow. Where if you make a backwards
- 46:58incompatible change, like you're not gonna be able to do that or
- 47:00you have to alert people and and generally speaking like that
- 47:03additional level of ownership which is basically just owning
- 47:06an API Like not super painful for infertility things.
- 47:11Exactly right. Yep.
- 47:12And and so that was actually really helpful in the are the
- 47:15data engineering team, love that and there was a lot of use cases
- 47:20when I remember we were trying to get this rolled out to
- 47:23certain to software, engineering groups, sort of in the organic
- 47:26way that you were talking about. There was just sort of gradual
- 47:28adoption. Is people realizing oh man these
- 47:30contracts are awesome. And sometimes the software
- 47:32Engineers when they were first starting to adopt was like, Hey
- 47:35we're going to budget, you know, a week or maybe a Whole Sprint
- 47:38for doing this work. Even though, it might just be
- 47:39adding one or two properties to an existing thing.
- 47:42And the data engineer said, yeah, I'm gonna go do it myself.
- 47:45Like, I'm just gonna, I'm just gonna go in.
- 47:46I can do this in, like, 10 minutes and then it's done and
- 47:50that happened a lot. So, luckily exactly the same
- 47:53time, you know, I see so many places where like, you know, the
- 47:56data team and the prod team aren't even in the same AWS
- 48:00account. Like, it's bizarre.
- 48:02Like, literally physically, they're like p.m. again
- 48:04physically in the before times, right?
- 48:06In the before times, they like, Babysitting like 10 feet apart,
- 48:09but like technology-wise, they would be living in like
- 48:12completely and utterly different universes.
- 48:15Well, they're galaxies away. Yeah, precisely that like, the
- 48:18production system and the data system, you know, to your point
- 48:21like, Chad live in completely different worlds.
- 48:23So I'm curious for you, like the first time this happened with
- 48:28the data Engineers. Like, how did that go?
- 48:30Who do they talk to? How did that work?
- 48:32Was there was there a meeting? Was it like, just a slack DM?
- 48:35How does that work? Yeah, so So so there's so the
- 48:41the type of tooling that we build is this probably similar
- 48:44to maybe what existed at slack. But like, we essentially
- 48:47created. So to there's actually two
- 48:49things and this is going to sort of help that I can explain the
- 48:52process that happens from as a result of this, as a result of
- 48:55the tools, is we essentially essentially have sort of two
- 48:58things we have one. One thing that's like an SDK
- 49:02it's like a we don't we don't use like protobuf or Avro at
- 49:06Convoy so we have like an Colonel sort of Ideal that we
- 49:09built. It's like very similar to like
- 49:11Json, schema. Like, what is it?
- 49:12Yeah, yeah, Yucca nice. It's just one schema right on.
- 49:16Yep. And and and so we basically
- 49:20created a library put likes eicd checks around that made it like
- 49:26really, really simple to event to like admit these things that
- 49:28we called events but they could just be, you know, like a
- 49:31database change could be an event.
- 49:33Theoretically, we were actually mainly focused on this other
- 49:36idea which I can I can get To, in a little bit, later called
- 49:38semantic events, which are like, capturing, real, things that
- 49:41happened in the world. And there's, there's a reason
- 49:43that we focused on that, that is kind of an answer to the
- 49:46question. You just asked the second ago.
- 49:47And then the second piece that we built was actually a, a
- 49:53abstraction of the, of the production table itself that,
- 50:00that sort of lived in the string processing layer.
- 50:02And so, the idea was, if you're an engineer, you could basically
- 50:06wrap Are you know production table in this abstraction you
- 50:10could say I only want to push these like seven or eight things
- 50:15that are within a contract into the warehouse in sort of a
- 50:19structured format. Everything else I can just
- 50:20continue to dump and not think about and then and there's like
- 50:26some really interesting things that go along with that.
- 50:28So in that way, we are sort of capturing as events like as as
- 50:31sort of clearly defined schema with a contract.
- 50:33Every single update to sort of the important entities within
- 50:37our database Basis. And then we also had sort of
- 50:39these back and events that were being emitted from the services
- 50:42by the software Engineers or the data Engineers, if it was those.
- 50:46Some so the goal through like those two pieces of Technology
- 50:49was like we want to make this as unbelievably simple as possible
- 50:54for anybody to do that understands like you know like
- 50:57you can write JavaScript or typescript or something like
- 51:00that, it's just real easy. And then the pipeline is
- 51:03actually auto-generated. So, we would say, okay your we
- 51:06would check the contract. You create a new Kafka topic
- 51:09push that event via Kafka into the warehouse, we'd
- 51:13automatically parse it like once it landed in Snowflake.
- 51:15And so you sort of then you can actually we did.
- 51:18It built another thing that's like a catalog that sits on top
- 51:20of that essentially links the the contracts to the schema
- 51:24registry. And we're in very exactly the
- 51:27underlying like snowflake table Tom and so this sort of a clear,
- 51:29a clear line of sight there. And so what happened after we
- 51:33sort of had these two pieces was that we had Add a data data
- 51:39science team. Oh, and this is another piece of
- 51:41context has data engineering. A convoy is actually like a
- 51:44centralized organization. They're not embedded.
- 51:46They're actually technically part of the software engineering
- 51:48engineering organization. They're not a part of the data
- 51:50organization and so what happens is that the a the data science
- 51:55team would say we've got, we've got some data that's breaking,
- 51:59they would sort of make their traditional complaint to date,
- 52:01engineering like this is a problem.
- 52:03Can you guys go fix it? And what we, what we did is we
- 52:06initially work with them to say What is the data that you
- 52:08actually care about and that you need?
- 52:11Do you know what, the cert, what service that this data is coming
- 52:14from and if not, we can go figure that out for you.
- 52:16We went out and basically did that we said, okay, we figured
- 52:19out that like the data you need is coming from this service and
- 52:22the way that you the way that we can express the data set you're
- 52:26asking for is actually through like maybe three or four
- 52:29real-world semantic events. Like you want to know every time
- 52:33that a new auction is completed every time like a new auction.
- 52:37Ian has there's like a bid is made on that auction and every
- 52:42time like some customer, I don't know like like makes a bid like
- 52:47they press a button in the app to say, like lets you know, we
- 52:51want to have this auction and then we need to add like three
- 52:53or four new properties on the actual like auction entity and
- 52:58would like that combination of data.
- 52:59We can hand that off to like a business intelligence engineer,
- 53:02and they're going to be able to derive, like, whatever data sets
- 53:04that you need totally do data engineer went in, they
- 53:07implemented, In like a day, the data flow flow through in real
- 53:11time and then the bi engineer was able to like since it was
- 53:14all properly modeled in advance, it took them like two or three
- 53:17days to build the data set and boom, easy easier to build the
- 53:20model cheaper to build the model.
- 53:22So much cheaper to build the model, right?
- 53:24Because everything is because I mean the cheapest time is like
- 53:27one of my things I harp on like the cheapest time to do a join
- 53:30is the moment. The data was created by the
- 53:33point everything after that streaming snowflake way more
- 53:37expensive. Of way more expensive than the
- 53:38joint. Then do it when it's cheapest.
- 53:40Oh my God. If you can, I love that man.
- 53:43That's fantastic. I love that.
- 53:44That mean that I mean that data engineer you're talking about
- 53:46whoever was doing that. I mean that sounds like that
- 53:49sounds like an ml engineer. I wouldn't I wouldn't under that
- 53:51person's name lest you know, the recruiters like descend upon
- 53:54them. Yeah, after hearing this, I just
- 53:56keep that one to yourself. Yeah.
- 53:59For sure. So there's one use case I want
- 54:02to dive, I want to give you which which is really helpful in
- 54:05thinking about this and we discovered That later is there
- 54:08is actually a product use case here too.
- 54:12And the product use case that we found what.
- 54:14This this is sort of why we sort of been pushing for this.
- 54:17I like this idea of semantic events and we found that a huge
- 54:22number of the questions that like both data scientists and
- 54:25product managers want to have answered is like I want to
- 54:31understand in a in a sequence of faint.
- 54:34Like what are all the things that happen to a specific
- 54:36entity? The in some order.
- 54:38Yep. And then and then, and then
- 54:41like, there is some set of like real world funnels that exist,
- 54:44and then I basically want it. So an example of this might be
- 54:46shipment cancellations. It is really, it was really hard
- 54:49at Convoy to figure out, you know, who, like, who is
- 54:54responsible for a shipment? Cancellation, is commonly
- 54:56responsible for that cancellation.
- 54:58Do we like mess up some where did we get the wrong information
- 55:00from a shipper like like why did this person cancel?
- 55:04And the only way that you can know that is by like looking at
- 55:07the law. Ugh.
- 55:08Yeah of everything that happened in the sort of history of that
- 55:10of that, of that entity over time.
- 55:13So the and this was like, a huge product question.
- 55:15Like this is something that, you know, if you can answer that
- 55:17correctly, you know there's this is like millions of dollars that
- 55:20we could potentially be saving and we didn't have a great way
- 55:23of doing it. We're like well you can do it
- 55:25through contracts. The way that you would do it is
- 55:28you would say, let's look at the life cycle of this particular
- 55:32like shipment event of this particular like shipment entity.
- 55:35Let's like very, very clearly document like All the things
- 55:38that would be germane to cancellation.
- 55:39That would like, cause a cancellation.
- 55:41Let's instrument that, like in the code itself through a
- 55:44contract clearly defined schema well modeled in advance.
- 55:47And then once it flows into the warehouse, we can basically
- 55:51generate that sort of History table about particularly.
- 55:54Yeah. And and then, and then, and
- 55:56then, all you have to do is like it becomes trivial that point to
- 55:58solve that. So we actually found that a
- 56:01bunch of product teams, started asking their Engineers for that,
- 56:04and then, and then contracts with a mechanism.
- 56:07Of implementation. That's super smart, man.
- 56:09You can get really. If you can call a product
- 56:11manager, that they can have a funnel for something.
- 56:13Oh my God. They'll do anything you want.
- 56:15That's that's, that's dreamy. You want to call it?
- 56:17Here is like again, like one of the themes of my course, I'm
- 56:20sorry to be like a broken record about the stuff.
- 56:22Right. Is really, is about really
- 56:23relationships between engineering teams.
- 56:25And the funny thing is like, is this this pattern of analysis of
- 56:29like, the sequence of events, occurs all over the place, they
- 56:33call it, like customer Journeys, over in marketing land, right?
- 56:36And then, but it's Same time in like gland of observability.
- 56:39This is this is traces and spans.
- 56:41This is, this is like, what is the life cycle of a request?
- 56:44When does a request die? What's low, right?
- 56:46Yeah. And so it's all the same thing
- 56:49and the joke to me is like, literally it's the same thing.
- 56:52It's the same technology now for the your examples, perfect.
- 56:56Because it's like for these custom things where it doesn't
- 56:59fit naturally, like an e-commerce, you know, conversion
- 57:02workflow or like a trace on a request.
- 57:06The data teams are left with constructing these custom
- 57:09systems basically to do these, you know, exactly this kind of
- 57:12stuff, right? And the funny thing is like, the
- 57:14price point of like constructing this funnel changes
- 57:17dramatically, even though it's the same problem, you know,
- 57:19like, the engineering challenge is essentially identical.
- 57:22But like, yeah, for observability.
- 57:24It's like not that much money and for marketing, it's like,
- 57:27you know, extreme amounts of money.
- 57:28Like that kind of thing. I'm sorry.
- 57:30But yeah, it's, it's just funny to me and I love anyway.
- 57:33I love these conversations because we get to talk about
- 57:35this. Officer Van doodle with
- 57:37Demetrius were. It's like 10, 20 and I got to
- 57:39get going. I'm sorry.
- 57:40I know, I wish we could talk. All I know, you know, I know you
- 57:44got to go. I appreciate both of you coming
- 57:47on here. I got to be a fly on the wall
- 57:49and just watch you two chat about this stuff, which I was
- 57:52hoping to do. I'm so thankful for this
- 57:55happening and maybe we can do it again.
- 57:59Sometime never know, right. Just ping me randomly like 10
- 58:02minutes before you you want to do it and then I'll let you know
- 58:05if I can Okay, if you're free. That is it?
- 58:09No, this is awesome, guys. I appreciate this so much.