TEC Talks Podcast: David Koontz
Ep. 06

TEC Talks Podcast: David Koontz

Phoenix, Arizona

Episode description

Today, Christina talks with David Koontz about what it’s like to be a senior software engineer.

You may have noticed this episode isn’t quite up to TEC’s usual quality standard. That’s because it wasn’t recorded at podcast studio in ACSL, so all you podcasters out there consider this a lesson: Come to the lab and record your podcast for free in the actual studio!

Download transcript (.srt)
0:00

You're listening to Tech Talks, a podcast by the Technology Education Collaborative.

0:04

Tech is an Arizona nonprofit that empowers people with useful information about the technology

0:08

they use each and every day.

0:23

Today we're sitting down with David Koontz.

0:25

Hello, David.

0:26

Hi.

0:27

Thank you for being here today.

0:28

Thanks for having me.

0:29

So the way this works is we ask everybody the same five questions, and we just want

0:34

to find out what a day in the life is like.

0:36

Okay.

0:37

All right.

0:38

So the first question is an easy one.

0:39

What's your title and position?

0:40

I'm a senior software engineer.

0:42

That's, I think, title and position, really.

0:47

Okay.

0:48

Nobody's not that fancy.

0:50

Fair enough.

0:51

Fair enough.

0:52

And what does that mean?

0:53

So what specifically do you do on a daily basis?

0:57

So I guess I can clarify, I'm a senior software engineer that works on the front end.

1:02

We are divided up into teams that kind of traditionally have owned part of our application,

1:08

little slice of the application, and that's front end and back end combined.

1:13

So I work on what formerly was the compliance team.

1:17

We're becoming a little more cross-domain.

1:18

They're trying to mix it up a little bit.

1:22

So in terms of what I do on a daily basis, we have a product owner that is working with

1:28

our various internal customers.

1:31

So we are servicing the other departments that go out and actually make money, that

1:36

actually keep the company in business, and they have various needs that they need.

1:41

From a sales perspective, we do a lot of, we do a safety compliance for large companies,

1:47

like for vendors going to come on site, and you want to make sure that they actually know

1:51

how to go up on a tall electrical pole and not electrocute themselves or break things.

1:59

It's usually mostly around the safety of the people who are coming to do the work, and

2:03

a little bit less about the they're not going to break things because we have liability

2:07

insurance and stuff.

2:08

So the goal is to reduce any kind of casualties, and unfortunately, these are the kinds of

2:14

industries where those sorts of things happen.

2:17

High voltage electrical, chemical, heavy industrial, confined spaces, things like that.

2:24

So we have a lot of need to do things like audits of their safety manuals, things like

2:30

that.

2:31

And so my team historically has supported all that.

2:33

We have a product owner that goes and talks to all those different departments that need

2:37

to deal with that, and they get the request list that's 10 million miles long and is way

2:43

more than any team could ever do in 100 lifetimes, of course.

2:47

And they work with the internal departments, their customers, to boil that down into, okay,

2:53

what are the three most important things you have, right?

2:57

And if we did this, does it really have a value?

2:59

And they're trying to become a little more metrics-driven around, do we just kind of

3:04

think that has value, or can we show that that actually has value, or are we just kind

3:08

of guessing here, or do we have some sort of data to back this up?

3:10

And then they come to us, and they work with us to develop a set of a little more formal

3:16

acceptance criteria around what should this thing do.

3:19

And then part of my job as a senior is to be on those calls or those meetings with our

3:25

teams almost exclusively remote.

3:28

We have a few people in an office in Southern California, and then the rest of us are kind

3:32

of spread all over.

3:33

So all our calls are online.

3:36

Then the people who are in the office, they'll all individually get on their stations.

3:40

Every once in a while, you have a couple people in a room together, but for the most part,

3:44

everyone's individually on.

3:45

So we get on calls with our product owner, and then we work out that they're not technical

3:50

usually.

3:51

They're products, so they're kind of at this intersection between business and a little

3:54

bit of tech, and they're more in a management, kind of project management capacity.

4:00

And so we work with them to sort of explain or clarify, that's easy, that's hard.

4:06

This would actually be way worse than that in terms of complexity, and if we could combine

4:10

these two things, we could do it as one thing, and it's really not that much more complex

4:14

than doing, we could do three instead of one, those sorts of things that they would not

4:18

realistically have any insight into, you wouldn't expect them to.

4:22

And so we work out our acceptance criteria, and then we can put some sort of estimate

4:25

on it so that they can sort of budget our team's time across all the different internal

4:30

clients that have demands on it that want things.

4:32

And they can say, okay, we're going to give this much of sort of features to this team,

4:36

we're going to give this much features to this team, and then they're given their marching

4:40

orders by higher-ups who have decided that this quarter maybe we're going to focus more

4:45

on this side versus that side, some sort of high-level objective of where we should go.

4:50

So we get our what are called user stories written out and the acceptance criteria put

4:56

on them, and we've given them some sort of estimate, and then finally they can be assigned

5:00

into a particular period of work, we call them sprints, because they use Scrum.

5:05

I keep advocating for Kanban, but they're pretty locked in on Scrum.

5:10

But either way, you would have a backlog of priority items, these are the next few things

5:14

that should be worked on in order to get some goal done, completed, and they're going to

5:19

be assigned out to an individual or maybe two people as a pair, and then every day you're

5:24

going to come in and you're going to have a current thing you're working on and a few

5:27

things in your backlog and you're going to pick it up and you're going to move it forward

5:31

as far as you can that day, and that's a day.

5:33

I'm going to deviate a little and add a side sub bonus question, and I'm going to ask you,

5:39

so what percentage, and I know it probably vacillates, but what percentage-ish would

5:45

you give that you spend time in meetings and kind of doing more of the business workflow

5:50

versus actual technical work?

5:52

Just to give someone who wants to get into this an idea, and then sub sub question, how

5:56

impacted is that by your seniority?

5:59

Is it that you do less technical work as you become more senior?

6:04

Great question.

6:05

This company, I think, is quite good relative to other companies I've been at, and I would

6:09

say I spend 10 to 20 percent of any given day in meetings tops, unless it's a very dedicated

6:17

week where we're doing planning, like quarterly they do kind of a planning week that's dedicated

6:21

to that purpose, and so it's all about taking a huge backlog of things and breaking them

6:26

down and kind of doing that work.

6:28

So on any given day, it might be just a half hour meeting, even 20 minutes.

6:32

It kind of just depends on what's going on.

6:35

A lot of times we try to sort of eat the elephant one bite at a time, so there's a story that's

6:43

coming in maybe two months, and we're going to meet for half an hour each week for the

6:49

next four weeks, just to kind of chip away at it, have some time to think about it, maybe

6:54

go ask, because usually the result of these meetings is, well, there's some questions

6:58

we have to answer to know if it should be A or B. We just don't know.

7:01

We need to go find someone who worked on that, who's a back-end engineer maybe, because I

7:06

have a front-end experience, but I don't know the back-end very well, or maybe the back-end

7:09

people on our team don't know that, or they couldn't attend.

7:11

So there's a lot of times we have to go and answer questions, so it's not the kind of

7:14

thing that we can do, just give us four hours and we'll just blast out the whole thing.

7:19

We kind of have to do it bit by bit.

7:20

So it tends to be a fairly small amount, 10, 20% tops.

7:25

On any given day, it might be a little bit higher, a little bit lower, and then for me,

7:28

I do get pulled into more meetings, but we tend to invite everyone as optional, and our

7:34

junior developers on our team tend to attend those, because they're very interested in

7:42

sort of being included and knowing what's going on, and our team has two seniors and

7:48

three juniors.

7:49

Well, two juniors and a mid.

7:52

She started as kind of a junior two years ago, and now I would say she's definitely

7:55

more at the mid-level, and then we have people who just moved over from QA, for example,

8:01

maybe six months ago.

8:02

And then we have a back-end engineer who cross-trained in front-end, and he's learning a completely

8:06

different language, a whole different paradigm, and so he's a senior developer in the sense

8:10

of he's been developing for a long time, but he's very junior because he hasn't spent much

8:14

time doing front-end kinds of things, so browser issues, just the kinds of things you might

8:18

run into as a front-end engineer, he does not super in his wheelhouse.

8:21

He just doesn't have a lot of traditional experience with it.

8:24

Sure.

8:25

Okay.

8:26

Good answer.

8:27

Thank you.

8:28

All right.

8:29

And then, so next question.

8:30

So what is your least favorite thing about your job, because everybody has something

8:33

they don't particularly love?

8:35

Definitely.

8:36

So I have to pick one, right?

8:38

Yeah.

8:39

And I'm not crapping on my job or anything.

8:43

It's actually quite great.

8:44

But there's always many faceted things for something that's complex.

8:49

My least favorite thing is probably that testing is, so we have dedicated QA people on our

8:58

team, which is fantastic.

9:00

I love that.

9:01

Some companies are like, half the devs be the QAs, and I always just shake my head like

9:04

those are different skills.

9:06

It is a skilled position.

9:08

It's a whole different thing, and to expect someone to be good at both of those means

9:12

they're probably going to be slightly mediocre both.

9:15

And just to clarify for people who are just entering the field or just want to learn more

9:18

about it, QA is quality assurance.

9:20

Yes.

9:21

And their job is to break the stuff that we are sitting there with our smile and our thumbs

9:26

up saying, it works.

9:27

Trust me.

9:28

And they go, I'll be the judge of that.

9:30

And then they click, click, click, click, and they're like, look, it breaks over here.

9:33

And we're like, how did you, how did you, but I just, okay, thanks.

9:38

And we are actually quite appreciative because they catch all these issues before they ever

9:42

get out to a customer, before they get to product.

9:44

So it's internal to our team.

9:46

So before the other teams, and you know, there can be a little bit of politics about, hey,

9:50

why does your team just create really buggy features, right?

9:53

They protect us from that.

9:54

They are like kind of our reputation as a development team by making sure that we catch

9:58

those things internally and fix them, and the rest of the world doesn't even have to

10:01

know that they ever happened.

10:02

I hadn't thought about that facet of it before.

10:04

That's actually really, that's really insightful.

10:07

So I love having dedicated QA.

10:09

But one of our issues is that we don't have a lot of QA resources relative to the surface

10:15

area.

10:16

And our area with like audits and stuff like that are very complex.

10:20

It's probably the most complex aspect of the application.

10:23

It's the oldest part of the application, which is its own set of issues.

10:26

So my biggest thing I dislike is the difficulty with which we can carry out like a really

10:34

robust test suite.

10:36

And I have been talking to people, and there is an effort to automate more of the testing,

10:41

but that's relatively slow.

10:43

So it's sort of like you can throw resources at it to some degree, but then those automated

10:49

tests can be also very brittle and break on you all the time, and we are changing the

10:53

app a lot.

10:54

It evolved since I've been on this team for two years.

10:57

We've changed the UI.

10:58

We've changed it again.

10:59

We've changed it again.

11:00

And that's all, I'm not complaining.

11:01

That's normal.

11:02

That's, we tried a thing.

11:03

It works in this way.

11:04

It doesn't work in this way.

11:05

We thought the customers would love this, and it turns out no one's using the feature,

11:08

or it doesn't actually make this process any better, or people are still spending a ton

11:13

of time doing these things, and we're still getting support calls about it.

11:16

And it's kind of like, well, clearly that's not giving them the information they need,

11:20

so we need to try something else.

11:22

So there is a natural, I feel sometimes developers are kind of like, oh, the product people,

11:26

they can't just get it right the first time.

11:29

It's like who gets anything right the first time?

11:32

So we're going to make changes to our UI.

11:34

That's going to happen.

11:35

But that breaks all your tests, and so we have this issue of it can be very difficult

11:40

to write your code.

11:43

What I love to do is write your code, run the tests, and then see if they work.

11:46

And some people say, well, write unit tests, do test-driven development, things like that.

11:49

And then these issues that I have any issues with get caught by unit tests.

11:54

This is all much larger level integration testing, functional testing kind of thing.

11:58

And that's the place where I am very hopeful that maybe AI can actually help us out here

12:04

and start to do.

12:06

We have a hackathon coming up, and my project that I'm running is doing local tests running

12:11

through Selenium based on the written acceptance criteria, the human language acceptance criteria,

12:17

so that the AI runner reads the acceptance criteria and executes the actions of the acceptance

12:23

criteria.

12:24

And that will do two things.

12:25

One, it will show us where our acceptance criteria is lacking, because we didn't specify

12:28

a step.

12:29

And that can be really useful, because that can surface, oh, yeah, I didn't think about

12:32

that.

12:34

You get six people in a room, and we're all kind of nodding our heads, yeah, this looks

12:36

good.

12:37

And then the theory meets reality, and you hit the brick wall, and all of a sudden, like,

12:42

oops, that actually doesn't work because of this thing.

12:44

So it would help us do some of that.

12:45

And then also, it would give us a way to validate our features at an earlier stage without asking

12:52

QA to manually go through their script that they have, where they have a 15-point checklist

12:56

that they're going, boom, boom, boom, boom, boom, and hitting.

12:58

And they're very meticulous and precise about doing that.

13:00

But that is a limited resource.

13:03

You cannot just scale that up, you know, they only have so many hours in a day.

13:06

And we can throw some machines at it to maybe go down some other paths that are at least

13:10

a first pass.

13:11

So it's done that first before we ever bring it to the QA, so we're not wasting their time.

13:16

I think that's one of the best examples of utilizing AI for impactful efficiency that

13:23

I've heard yet.

13:24

And I've had several huge AI projects, and I've been immersed in it for about at least

13:30

10 months now.

13:31

And I have to tell you, that is probably one of the best use cases I have yet heard, just

13:38

for what it's worth.

13:39

I'm sure I'm not the only one working on this, there must be a use case.

13:43

There's lots of ideas on using AI and how to use it, and you can create an efficiency

13:48

without actually increasing productivity or operational value, right?

13:52

Like something can be more efficient, but that doesn't do anything.

13:56

And I think that's something that gets lost in that discussion a lot, but that's a different

13:59

podcast.

14:00

So anyways, but I have to say, I like that.

14:04

So on a brighter note, what is your favorite thing about your job?

14:09

My favorite thing about the job, I'm going to cheat, I'm going to split it.

14:12

It's okay.

14:13

So there's technical and there's a non-technical.

14:14

Fair enough.

14:15

So my non-technical is absolutely the team that I work with.

14:17

We have a company, and I can only speak kind of to my little old department, the developers,

14:22

I can't speak to, it's a very large company, but within our engineering team, there is

14:30

a lot of camaraderie.

14:31

The UI team has its own guild, weekly meeting, chat channel teams and all that kind of stuff.

14:38

So there's a sense of like, this is our code base.

14:41

We own this.

14:42

We got to make it the nicest place to live that we can.

14:44

And all of us here, none of us were here at the beginning.

14:47

We've all inherited this thing, so it's only seven years old, but it was also built very

14:53

quickly to get something running before they ran out of money, kind of a deal.

14:57

So we have a lot of that kind of lying around, and it's also written by people who didn't

15:00

know the language very well.

15:02

So there's a lot of sort of idiomatic issues of, we probably wouldn't have designed it

15:06

that way if it was us today doing this.

15:08

We also have the benefit of hindsight, so of course we're going to make better decisions

15:11

than they could when they kind of didn't quite know what they were building yet.

15:14

So the team, and then the way the company supports people to move around.

15:21

So like I said, we have a QA engineer who moved over.

15:25

We have, at the time, a very junior woman who came on as an engineer.

15:31

We have a back end who's now front end.

15:34

That's where we're getting our junior engineers, and we'll hire mids and seniors from around.

15:41

But there's a strong sense of like, yeah, I mean, if anyone has a desire and they want

15:44

to put in the work, they can obviously train into this.

15:46

There's not like, we don't have anything magical.

15:48

It's just engineering.

15:49

Anyone can learn this.

15:50

So there's a pretty good sense of like mobility and support for that, right?

15:57

Like I never get pushback on, I'm going to go pair with a junior, and a junior hits me

16:02

up and says, hey, do you have a couple hours this afternoon to move over this thing?

16:07

And I never get any pushback on that.

16:09

That's my favorite thing kind of culture wise.

16:11

Sure.

16:12

Fair enough.

16:13

My favorite thing technically is that we work in Elm, the Elm programming language, which

16:17

is a pure functional programming language for web development.

16:20

So it compiles to JavaScript.

16:22

You can think of it the same way that TypeScript produces JavaScript.

16:25

It's kind of its own language and has its own like extra rules, but at the end, it becomes

16:29

JavaScript.

16:30

Elm is the same kind of thing, except that the rules that it has are extremely different

16:35

from say a JavaScript or TypeScript in that it's a pure functional language.

16:39

So it's closer to like a Haskell or pure script or things of that nature than it is to Java

16:46

or C sharp or JavaScript or Python.

16:48

Okay.

16:50

Fair enough.

16:51

All right.

16:52

And then finally, what is one practical thing you think somebody who is looking at getting

16:58

into your industry, like what is the like practical, actual action oriented thing you

17:04

would advise for them to do?

17:05

Like what's one practical thing somebody could do?

17:08

Is this someone who doesn't know anything about software engineering right now and is

17:13

just kind of interested in this or someone who's kind of...

17:15

Let's say they're at least enrolled in some like BIT or IT classes or CNT classes, right?

17:20

So they know they want to quote get into tech, which is basically the demographic this particular

17:25

podcast segment is targeted to.

17:28

So they've taken some classes.

17:29

They know that they like technology.

17:31

Maybe they enjoy coding.

17:33

But what I've really found is there's just complete overwhelm.

17:37

They don't know, should I get certifications?

17:38

Do I not get certifications?

17:39

What classes do I want to take?

17:41

And that's what this podcast is trying to try aiming to sort of address, right?

17:46

I could speak to software engineering more than the other tech is here, right?

17:50

Yeah.

17:51

Well, that's one thing.

17:52

If someone wants to be a software engineer, if they're like, okay, I think I want to be

17:54

a software engineer.

17:55

Gotcha.

17:56

What is something practical they can do?

17:57

Is there a class they should take, a language they should learn, a meeting they should attend?

18:01

Like what do they do?

18:02

Yeah.

18:03

So it's going to depend on location.

18:04

If you're in a big city, you're going to have vastly higher options, more options for meetups

18:10

and things like that.

18:11

For real life people, there are a ton of online communities, of course.

18:15

There's Discord groups, Slack groups.

18:18

So my starting point that I would usually point people towards would be to learn JavaScript

18:23

and to just start building things.

18:27

It's a little bit like the Malcolm Gladwell's 10,000 hours, which is misunderstood a lot.

18:34

But there is a truth in, there is some number of reps that have to be done to get over certain

18:39

humps.

18:40

A good example of this would be when a junior programmer, so I taught for a bunch of years

18:44

software engineering, like at the college level, and a very common occurrence would

18:48

be, let's say, students in there, like through their first year of like a four-year program.

18:53

And so they, you know, we're starting to write some real programs now where these are not

18:56

10, 15, 100 line programs.

18:58

These are maybe hundreds, if not a thousand lines of code.

19:03

They would have a problem and they would sit there and they would pause off for a while.

19:06

So they'd flag me down and I'd come over and they would say, oh, it's not working.

19:11

And I would just like immediately point at something and they'd say, how did you do that?

19:15

It's like, well, I noticed that you weren't indented, right?

19:18

And you're missing a semicolon here and there's not actually a brace here.

19:20

I'd say, how do you do that?

19:21

It's like, 20 years, 20 years to look at this, that's how I do it.

19:26

It's not a trick, you know, there's not a mnemonic I memorized or something.

19:30

It's just, I've looked at a lot of code over a lot of time.

19:33

And so there's elements like that, that at the beginning, everything is so hard.

19:38

It's just so difficult to get anything to work that those things do get easier.

19:43

I'm not saying everything gets easy, but certain elements become internalized a little bit

19:47

more to where it kind of fades away and you don't see the semicolons and the databases.

19:51

They're there.

19:52

And you would actually notice if they're not there or if they're misplaced, but you're

19:55

not spending much brain power dealing with those because those are the absolutely completely

20:00

uninteresting parts of programming.

20:01

In fact, those aren't even programming, that's just typing.

20:03

That's just satisfying the compiler, right?

20:05

It's like grammar.

20:06

I guess you could argue grammar's part of writing, but you know, it's the most interesting

20:11

part of it.

20:12

It's more of a mechanical part of it.

20:13

Exactly.

20:14

So those are usually, those are never part of the interesting problem you're solving.

20:19

They're a thing you have to do to make the computer happy.

20:21

So getting over that hump, I think, is pretty difficult for a lot of people when they're

20:25

first starting out.

20:26

They think, this isn't for me, I can't do this, it's too hard.

20:30

And I would just encourage people that there is a horizon, you do eventually get to where

20:35

you can see the end of that, and it starts to become easier, but it does take a certain

20:38

amount of time.

20:40

So whether you're writing something, a big project, small project, just be out there

20:45

starting to work on things, have a goal, a goal that you can fail at.

20:49

So it can't be like, I'm going to, my goal is to write code.

20:52

Okay, I mean, how do you know if you succeed or failed?

20:56

I mean, there is value in saying, I'm just going to write code every day.

20:58

That's perfectly valid.

20:59

You need a goal that you can fail at, so that you can then say, what did I not know that

21:05

I need to learn, or what do I need to go learn to finish this project?

21:09

I want to write a web page that talks, uses an API, like a Google Maps API, and talks

21:14

to a different web page.

21:15

That's a different challenge than saying, I want to make a web page that as the user

21:18

clicks on things, it's updating things and hiding and showing things and animating.

21:22

Those are two different problems to solve, both on a web page, and they're both useful

21:28

things, and eventually you will know how to do both of those, but you kind of pick

21:30

a thing, go after it, and don't alter your criteria too much to make it easier to do,

21:38

like figure out what you don't know, and then use that as an justification to then go learn

21:42

that thing.

21:43

And you can get in a situation where the thing you've picked is maybe too big for you right

21:47

now.

21:48

It's too big for challenge.

21:49

You didn't realize that integrating authentication into your app is like this gigantic thing

21:53

that makes senior engineers cry.

21:55

Okay, maybe if you get down that rabbit hole, you do decide to not go down that path, but

21:59

smaller bite-sized things, pick something, go after it, there's going to be tons you

22:03

don't know, you'll learn along the way, and then you will have a singular thing that now

22:07

you know how to do at some level of competency, pick a different thing, an unrelated, don't

22:12

do that same thing again, pick an unrelated thing, and you just do that for years.

22:16

Okay, fair enough.

22:18

And finally, what about non-work stuff?

22:20

Do you have any passion projects, anything you're working on, anything you're building,

22:24

any things you're doing, any orgs you volunteer for?

22:26

Yeah, I have way too many.

22:28

That you'd like to share?

22:29

You want to pick a favorite one?

22:31

I'm an independent filmmaker, so I do film production here in Phoenix, mostly we've done

22:36

short films, I've worked on some features as crew, and we're trying to get our own feature

22:41

off the ground.

22:42

So that's something that we do quite a lot that's totally unrelated to software.

22:47

And then I also love engineering in general, so I tend to do a lot of product development

22:54

kind of like inventory kinds of things, I guess adventure is the best term for this.

22:58

It's like, I see a problem, I could fix that, or I think I can fix that, and so I'm in Autodesk

23:04

Fusion 360 modeling something, doing test print, I do tons of 3D printing, I have a

23:09

workshop and-

23:10

Maker stuff.

23:11

Maker stuff, yeah.

23:12

But it's usually towards the end of making something that can be a product or can be

23:17

useful.

23:18

Some things are one-offs, but we built a catio at our old house for our test to go outside,

23:25

and it's typical wood frame, nail it or screw it together, and staple chicken wire around

23:32

the outside.

23:33

And there are all these things that didn't work great if the cat throws up inside, you

23:37

have to pry it off and clean it up and you can't reconfigure it once you've made it.

23:42

So I thought, oh, I'll make a modular version of that with 3D printed connectors and standard

23:47

lengths, and now you can make it any size and configuration, and that's been two years

23:51

now of 15 iterations of the connector because it's always not quite good enough or not quite

23:55

strong enough, and now I have a version outside that my cats use that's gone through an Arizona

24:00

summer to test the material property, how's it going to hold up over one year being outside

24:06

in the sun?

24:07

Things like that.

24:08

So I spent a lot of time on film and these kind of inventory things in addition to software.

24:14

Do they feel like two different types, when you're doing two different types of engineering,

24:18

does it excite you in the same way, or do they feel like two completely different things?

24:22

They're definitely different for me.

24:24

The tactileness, so the thing that I love about the more physical mechanical engineering

24:30

side is that it's so immediate.

24:33

I can have an idea, whip up a sketch, design, print it, and that might take like four or

24:38

five hours, but at some point I'm going to be able to fit two things together, and oops,

24:41

my tolerances are off, or I didn't account for this, and I go back and I do another revision.

24:46

But I'm seeing things that are physical and tactile that I can try out and see how they

24:51

work together very quickly.

24:53

With software, it's sort of like none of it works for a very long time, and then it finally

24:59

comes together, and now it all works together because you have all the pieces that you need.

25:05

Up until that point, it's difficult to know how close you are in many cases.

25:10

Some things you can be more certain of than others, but you kind of have to, in many cases,

25:14

like the back and the front end have to come together in a certain way, and that's a point

25:16

where you're not quite sure if you missed a detail, you now have this integration problem

25:22

where you have to put these things together and you're going to have to go back and do

25:25

work in one side or both.

25:28

I feel like I have more firm footing in the physical world because the constraints are

25:35

so much worse.

25:37

In software, Fred Brix said this, he said that we make things out of thought stuff like

25:44

clouds, and we just kind of will it into being and make it into whatever shape we want.

25:50

That's beautiful and wonderful and true to a degree, and the downside is that there's

25:54

no rules, basically.

25:56

You're inventing your own physics system for your world and having to worry about all these

26:01

issues, whereas in the physical world, since so much more is constrained by physics, which

26:06

is often the thing that we're fighting against, like, oh, darn, it'd be nice if it was light

26:10

and strong and cheap and 15 other criteria, and it's like, well, no material does all

26:15

those things, so, you know, plenty.

26:18

We're fighting against the physical world.

26:19

The energy didn't have heat.

26:20

Exactly.

26:21

There's no loss.

26:22

There's no entropy.

26:26

The physical world is our constraint that we're fighting against, trying to improve

26:30

our solution against, and also a thing that keeps our solutions grounded in a way that

26:36

I think I suffer from this, and I would assume other people suffer from this, is that it

26:42

can be so abstract in your head that you're kind of just like keeping this cathedral in

26:47

your head, and when you can't hold all those pieces together, it can kind of all fall apart

26:51

and you just don't understand how all these things work together, where in a physical

26:55

system, usually you can lift the lid and kind of peek inside and have a pretty okay sense

27:00

of what's going on, and there's a, I don't know, there's a nice warm feeling that comes

27:06

as a result of that.

27:07

I can see that.

27:08

Okay.

27:09

Well, thank you so much for your time today.

27:10

I really appreciate it, David.

27:11

Thank you.

27:12

Thanks for having me.

27:30

Thank you.