Embedded - 302: Worst Book Ever
Episode Date: September 5, 2019Christopher interviews an embedded systems engineer with ~25 years of experience across medical, scientific, industrial and consumer products. He asks about career trajectory, field stories, and assor...ted destruction. Making Embedded Systems: Design Patterns for Great Software Tony’s show about Kalman Filters was 43: A Lot of High-Falutin’ Math
Transcript
Discussion (0)
Welcome to Embedded. This is Christopher White.
Today we're switching things up a bit and we have a very special guest.
We'll be talking about how she got involved in embedded development, some stories from her career, and a few other things.
I'm referring, of course, to Elysia White.
Hi, Elysia. Thanks for being on the show.
Hi. I'm going to skip the could you tell
us about yourself part as everyone listening knows who you are, I think, I hope, unless it's the
first time you're listening to the show, in which case, why? So let's get right into lightning round.
Are you ready for lightning round? Oh, wait a minute. Oh, why are we doing this show if they
already know? They've already heard all my stories. in one place you know they've heard fragments they haven't heard
your career as a whole and and your your wisdom except as sort of you know piecemeal little bits
dropped as hints throughout the years this is entirely his idea don't blame me this was entirely
your idea because it was said in my head in your voice i don't think that counts anyway
uh lightning round and uh i don't know if you're familiar with this but we ask short questions and
we want short answers and i have to warn you there are quite a few of these so we we need to keep
things keep things kind of moving along and i know you you're a guest, and I should have told you this before during the intro part, but we skipped that.
So, let's start.
We'll just get warmed up.
Favorite animal?
Pangolin.
Have you ever touched a pangolin?
No.
Have you ever touched a penguin?
No.
Have you ever touched a paladin?
No.
Sick day movie?
Ever After.
What's a book you wish everyone would read?
It's too hard.
What's your ideal office environment?
With a door.
Favorite pen?
Sharpies, pen format of their small pen version, Smart Sharpies.
What Good Place character do you want to be?
Janet.
Which do you fear you are?
Cheating.
Hacking, making, tinkering, engineering, or programming?
Engineering.
If you could do anything else for a job, what would it be?
Something that involved making people happy.
What's a tip you think everyone should know?
I think I'm supposed to say here, everything's a temperature sensor.
It's just that some sensors measure other things.
But I think a tip everyone should know is that this isn't easy for anyone.
Complete one project or start a dozen?
Complete one and then start six. All right,
that ends lightning round. I hope you enjoyed it. Thank you. And let's get into the show.
So you went to a school called Harvey Mudd College. It's in Claremont, I hear.
You went to the same school? Why did you go there? Okay, so I went to a large public school in Southern California in a not great area of town.
And not a lot of people went to college, even though we graduated quite a few people.
And Harvey Mudd, you know, I did okay on my presets and all the things that you get letters for.
And everybody was sending me these emails that said, or postcards, sorry, there was no email then, that said, come here, we're the best, it's super great.
And Harvey Mudd sent this thing that was a postcard that said junk mail.
And it was irreverent and funny and anti-authoritarian and just checked all the boxes for me.
Plus it was science-y and engineering and I didn't apply to any other schools.
Just based on that mail or did you do more research after that or talk to your guidance counselor?
I did more research, of course.
And most people said Harvard Med.
Right.
So there was one teacher, Dr. Fisher was a history teacher who lived near Claremont.
And he was just like, you can go to Harvey Mudd, then you should.
And since he was one of the teachers I respected, I did.
Did it match your expectations once you started there?
I guess so.
No, my expectations were wrong.
I mean, I had no idea what college would be like.
But Harvey Mudd is a unique school.
It only has a few majors, most of them science and engineering.
Back then, there were only five, I think.
Yep.
And you chose to do none of them.
I can never just do things the right way.
You did what's called an IPS, an Individual Program of Study.
What is that?
And can you describe what you did?
You can design your own major.
And some people used it to get a degree
in odd things. But I didn't like the theoretical side of computer science. I have more appreciation
for it now. But then computer science classes where you didn't program just made no sense to me. And engineering, I loved.
I mean, I just fell in love with systems engineering.
Fourier was like, made the world make sense to me.
It just kind of clicked.
And so I took all of the theoretical engineering courses and all of the applied CS courses
and said, okay, I'm not doing a double major, but I'm coming close.
What is systems engineering? What does that mean to you?
Transfer functions, Bode plots, lots and lots of Fourier,
and seeing things like in Hilbert spaces,
so that when you're thinking about how a complete system works,
you can look for resonances and signal processing.
Filtering.
Filtering, yeah. Antennas even.
Control systems, feedback.
PID loops and other feedback forms.
So you saw all that kind of stuff in school?
I saw the math for all of that in school.
Okay. Which leads me to kind of my next question. What do you think is the most important course you took
or courses that helped you in your embedded career?
We didn't have a robotics club.
We didn't have robotics.
I think there was one.
I think we didn't do it.
I seem to remember some robots.
That was when we went back for our 10-year reunion.
Do not fluster the interviewer. when we went back for like our 10 year reunion.
Do not fluster the interviewer.
What one class?
Granddaddy stems.
Granddaddy.
Why is that?
Does that,
because it's an upper division class that there were there multiple stems classes?
Well,
there was a one semester stems,
baby stems that everybody took.
I got it.
I got it.
Then there was a regular stems, which I think was a year long in the engineering program.
And then granddaddy stems was the semester or year long?
Probably a semester.
Went far deeper into antennas and information theory.
I remember that's where we did the, how many times do you shuffle a deck bit information,
Claude Shannon stuff.
Okay.
So you came out of school with a good foundation for signal processing and
control systems,
more of a little bit of doubly kind of stuff than necessarily a computer
science.
Doubly in the terms of like filters and that kind of analysis.
But not in the terms of...
I mean, I could do an FYR filter with a resistor, an inductor, and a capacitor,
but anything more.
I didn't do the electronics.
Right, right.
Yeah, electronics. I didn't do those classes. Right, right. Yeah, electronics.
I didn't do those classes.
So during school, you went for an internship?
Yes.
At Hewlett-Packard.
Well, before that, I did an NSF grant to go to Carnegie Mellon and work on artificial intelligence. And that was terrible.
But Pennsylvania has lightning bugs, so it wasn't entirely terrible.
And then after my junior year, I went to HP, yes.
And HP was great because they had this process. I mean, I was there as the HP way was published,
and they knew how to take somebody
from New College to functional engineer. It was just part of the process. They knew how to do it.
How did they do that? What did they do better than just about everyone else does now, probably?
They laid out what careers could look like. They gave me a mentor who listened to me and they gave me a manager
who listened to me and told me what I could expect given different paths.
And that was at the NetServer division, if I recall.
Yeah, the Cupertino site.
So after school, you took a full-time job there.
Even during school, I worked there.
During school, full-time. So you went from basically junior year, summer was when you started full-time,
or started working in the place that you ended up working.
Yes.
And did you have any other choices at that point, or was that,
okay, I did the internship, and this was great, and I'm just going to,
if they give me an offer, I'll just keep working here?
I had choices to go to different internships during your year, but once I started working
at HP, I was happy, so I didn't have a reason to look anywhere else.
I don't even think I interviewed that much senior year.
I did have another part-time job doing
chemistry databases. That was pretty fun.
And he mentioned that he would keep me around, but
I didn't want to stay in Claremont.
We're right, Fortran.
So I don't want to go in too long with that job,
the first job and everything, but that was pretty normal
development server stuff.
It was on PCs. It wasn't
what you traditionally call embedded, right?
Your first job, you wouldn't call it an embedded job?
There were drivers, so I've written
drivers for every operating system.
Right.
Including OS2.
OS2, right.
I remember that.
And then as the network servers started to get more hardware put on them
to monitor them, temperature sensors and whatnot,
I was interested in that.
So it did prepare you somewhat.
I did see some of that.
Did you break anything?
In that job?
I don't think I broke big things in that job.
Okay.
So let's move on.
Your next job was still at HP, or was it?
It was still HP at that time.
It was still HP.
You transferred inside HP to HP Bioscience, doing something much more embedded.
Yes.
The manager for that job asked me a bunch of questions about signal
processing, which I did fine on. And he talked to my boss and all these people who said, yeah,
she can code. And then he took me over and taught me embedded systems. It was like, I didn't even
know there was a word for it. But he said, well, you're going to do motor controllers, and you're going to do real-time systems, and you're going to do all this stuff, and it's going to be really fun.
And he was right.
What was the product?
We did a DNA scanner.
So you do some wet chemistry, and then you put the DNA onto a slide after it has connected with phosphorescent chemicals, and
then you scan the slide very carefully and you look where it lights up.
And then that indicates which part of the DNA works.
So if you're looking for a particular gene, then you create the phosphorescent site
that you can then combine with the person's DNA and then you scan it. And then you can say,
if it lights up, you have that gene. If it doesn't, then you don't.
That's pretty cool for a junior's job.
I was a few years out of school and it was very cool and it was at HP Labs. So the bioscience department was in the process of spinning off, but we were still at labs. And so I hung out with people who worked there and it was really fun.
So which parts did you work on specifically? We moved the slide back and forth, and I worked on all the code to drive the motors.
Cool.
And I also worked on PSOS.
PSOS was an operating system back then, a real-time operating system.
And I worked with the software engineers to get good APIs.
It was a really fun job.
I mean, it was a really, really good job.
What happened?
HP split off so that we were part of Agilent.
All my friends were going to startups and getting huge amounts of stock options.
I liked what I was doing, but we'd finished that product and we
hadn't started a new one. And we were in the bureaucracy side of starting a new product.
I was jealous of all my friends getting these massive stock options. And now I know it's just
monopoly money, but then it seemed really cool. So I wanted to go someplace small.
Did you break anything? So many things.
I lit one of the voice coils on fire.
I put a, on my first day, I put a board on the floor of the oven,
not considering that the oven was metal and the board was powered.
Oh, so many things. With the oversight of a doubly,
I built my own scanner, a barcode scanner. And I did the schematic. I put it together.
I sat in his office. I asked him, am I putting these capacitors in right?
And he probably just...
I can see where this is going already.
And then we powered it for the first time in my office.
And he was sitting there because he kind of knew that if it was going to light on fire again, he had to be there.
And I, of course, got the capacitors backwards.
And each one popped off in sequence, little tiny fireworks, poof, poof, poof, flying over my cubicle wall. And I laughed and laughed. And yeah, I don't think Charlie laughed.
So your next job was a startup. Yeah, it was. So Crossbow, 50 people.
I had interviewed in a couple of companies and I actually got a job offer from a company that was 300 people doing medical stuff.
And they were super excited because, I mean, at that point, my resume already looked really good.
And that company was Johnson & Johnson.
No.
Yeah.
But then I just looked around and I'm like, this is where I'm coming from. This is not what I want to do. But with Crossbow, they walked in and they said, our CEO is only, I don't know, 22 or 25. And I'm like, oh, at least he's older than I am, which was kind of a jerk move given the person I was talking to was at least 45. And then I nearly didn't take that job
because the person I was supposed to be working with didn't interview me. And I was just like,
this is bad. I knew already that if you were going to work closely with someone, you had to interview
with them. But it turned out Tony read my resume and he was a mutter and he was just like, yeah,
she's got my vote. And so he didn't interview me because he was too nice.
This is one of those jobs that you've not talked about too much on the history of the podcast.
I think we had a show with Tony.
Yes.
Where you talked about Kalman Filters.
But I don't think we've talked really about what you made there and what the experience was like.
And it's kind of interesting because it was a product that people are very familiar with these days if they do any embedded work.
Talk about what you worked on there.
We made one of the first MEMS inertial navigation systems, which included accelerometers and gyros and sometimes magnetometers.
And we even integrated it with GPS.
This was way before the Wii came out, the Nintendo Wii came out with their controllers.
And suddenly accelerometers were everywhere and everybody could use them.
And this is where I got all my inertial background.
This is where I started learning to talk about Kalman filters.
And I was hired to make an FAA product so that they could put it in planes.
They didn't have version control when I got there.
Like that was how far we had to go.
It wasn't just the documentation.
It was just that they didn't have software process. And it was a long road to get that process accepted and to figure out, you know, who was going to do what.
I was very lucky. I mentioned Charlie with the capacitors. When I figured out the company needed a double E, I called him and he came over and we hung out for a few more years together.
Previous jobs, it was a standard development environment, right?
You said at Bioscience you had PSOS and you were probably targeting x86 kind of boards and things.
68Ks?
Yeah.
But the VoiceQuo ran on a shark uh analog devices shark
um although it initially it ran on a lower analog devices dsp but and then we went to the shark line
when it came out but crossbow was kind of the first little tiny controller kind of thing? Crossbow was the first. I was in charge of choosing the controller. It was the
first time I had no net. There were no other firmware engineers there. It was just me. And
Tony was awesome, but he was an algorithms guy. He would much rather program in MATLAB.
And so the whole system fell to me. And when I got there, they
were running the whole Kalman filter in an interrupt. And they didn't understand about,
like, no, let's have an interrupt.
How did they even get that far? How did they get to even stick it in an interrupt? How
did they have interrupts working if they hadn't had a firmware person?
Tony did it.
Okay.
I mean, he was super smart.
Yeah.
But it was not optimal.
And the FAA product we designed from scratch.
Okay.
So you got to choose the processor.
What was it?
Oh, that's tough.
It was a TI CC 2600?
I don't know the exact part numbers.
Some TI DSP-ish thing.
Yeah, good TI DSP.
Okay, so the tools and code, you used probably TI's...
Code Composer.
Was that your first experience with an embedded IDE kind of thing?
That's a funny question.
I guess at Agilent, we had mostly Linux tools.
So yeah, that would have been my first experience with an IDE.
And it was not as good as CodeComposer is now.
So those of you who are complaining about CodeComposer now,
you should just go back 20 years.
So Crossbow made something that now is about five cents in thousand part quantities and fits in the
grain of sand um but was there something special or different even now about them that was better
than that i mean if you bought if you had a the top of the line crossbow device from then, is it better than the accelerometer you stick in a phone?
No.
No.
I mean, we did do GPS integration, which you don't always get in phones even, because they
don't need it.
That's where you can do dead reckoning for a little while from a GPS position.
And we used that on race cars and a couple other things.
But no, the accelerometer and gyrospecs are so much better now.
And we did them on analog.
I remember we had a show where I was talking to a MEMS person
who didn't even know that MEMS once were analog devices,
and you had to sample them.
And how big was this thing?
They can't see you.
The one with the magnetometer was about half the size of a standard Kleenex box.
Okay, so big. And metal.
Oh, metal. Machined block pieces. Yes, it was very handcrafted.
Did you break anything?
Broke the calibration at one point because I put rare earth magnets on my cubicle next to where the person was calibrating stuff.
What else did I break?
There was an Israeli company we worked with that tended to not want to pay us and tended to want impossibly good specs way beyond what we promised.
They would just say, well, this isn't working.
And we'd be like, we didn't promise it would.
So at one point I took one of their units and threw it very hard.
Oh, you intentionally broke something.
Well, I mean, I think that was at a company picnic and the idea was how far can you throw this unit?
And everybody else was like, you know, and the idea was how far can you throw this unit?
And everybody else was like, you know, shot putting it.
Not me.
I just threw it as hard as I could at the crowd.
I mean, it was probably already broken. Oh, I did get a unit that had come back from being on a bunker buster bomb, and its lights still lit up.
I guess I didn't personally break that one,
but it was pretty destroyed and it stayed in my office for a long time.
All right. We have to move on now because there's much to talk about.
We're skipping Sport Vision.
Oh, I thought that was under consulting.
No, no, that was under Crossbow.
That was part of Crossbow?
Yeah.
Okay. So I did want to talk about sport vision but i had
that under consulting so let's go straight to there um so what what was sport vision
sport vision was a company that invented the yellow line in football so a lot of times if
you're not a sports watcher if you want to know where the first down marking is
you have to pay attention but if you are not into it then people wonder where it is and so
sport vision created this thing where they would draw a yellow line on the grass but not on the
television on yeah there's not a spray can no no it was on the It was a TV special effects. Yeah. And they wanted to do this thing on race cars where they would point to them.
And it was hard because where the race car is on the track changes very quickly because they're going quite fast.
So, yeah, we worked with them to do the GPS inertial navigation integration so that we could
have a special effect on TV. So that involved you doing a lot of cool stuff.
Yeah, I did. I mean, I got to go to racetracks and the Sport Vision guys were really cool and
it was pretty neat. And then with the final test, I went to Miami-Dade
and there it was before an actual NASCAR race upside down in the pit
trying to reprogram code.
It was an experience and a half.
We're going to get back to that in a later segment. But do you think having to do things with a customer was different from your normal work that you've done later?
Did that maybe prepare you better for consulting?
Maybe.
Yeah.
Because I could really see how our failures affected them.
In real time. really see how our failures affected them and traveling with them on business in order to fix
things real time was hard and i learned i learned by watching like there were a lot of times when i
was there to fix things i didn't have to do anything other than sit in the truck and wait
for things to break but that's no fun So I didn't mind laying cable and moving sensors
and just hanging out with the people who were working.
And I saw another person who was there to integrate things
sit in the truck.
And they sometimes didn't talk nice about that person.
But I was glad that I was willing to be part of the team,
even though I was a temporary part of the team.
So the next job.
You left Crossbow under strange circumstances.
I was writing my resignation letter when they laid me off.
Yes, luckily you wrote a little slower than they did.
Well, they cut my printer privileges. Yes. Luckily you wrote a little slower than they did.
Well, they cut my printer privileges.
That's when you noticed.
You were trying to print your resignation letter and the printer didn't work.
Yes.
Which, it's really impressive that their first thought was to cut off your printer privileges. I think for a small company to have their termination stuff, that on the ball, that's that's that's draconian uh but you
you so you were out of a job for a little bit yes and i hated it oh man being laid off really
messed with my mind i was quitting and yet being laid off really messed with me um i think i was
only out of work for two or three months and it just killed me you You went to a company called LeapFrog after that. Yeah, I basically begged for that job.
How did you get that job?
I mean, I looked around like Monster
or whatever was current at that time for job boards
and I applied for it and I had the right skill set
and I interviewed and I did really well
and then they knew my boss from HP, my first boss. And she was going to be on my references,
but before even handing over my references, they called her and Lisa was super nice.
And so I think I got the job long before they told me I got the job.
Something we glossed over when talking about Mudd was your IPS had an education component to it.
So at Harvey Mudd, you're supposed to have one third of your classes be humanities.
And because I was almost double majoring, I also did a double concentration,
which is kind of like a minor at most colleges where you have a bunch of classes you take as a core, but not your major core. And so I had my concentrations
in theories of learning and in art. And your final thesis project was actually an education
project of sorts, wasn't it? Yes. So there are expert systems and how they work.
It's kind of cool.
And it ends up being sort of like a model view controller.
Of course, I didn't know those terms then.
That was way before that book came out.
And I used an Infocom game, so like Zork.
Their engine.
Their engine to help teach math and physics by making you go through an island.
And it wasn't just about making you solve things.
It was about finding the best way to give you hints.
It wasn't just you should do X.
It was have you laid out the problem?
And have you considered how many bananas are actually in that tree?
Sort of hints.
And the goal was to build something that could teach.
And I did get to go to a conference for that.
It was pretty cool.
Do you still have that code?
No, I bet not. Although I do have
the conference paper, so maybe.
The reason I asked and brought that up
is because LeapFrog makes toys.
And I wondered if that was
part of how you
got the job.
I know we talked about it in the interview,
but they weren't doing
toys like that.
They weren't doing, I mean, what would now be considered machine learning.
Yeah, okay.
So which toys did you work on there?
I worked on the Globe first, the Odyssey Globe.
And I finally learned geography really well in testing it.
But I also learned how to deal with large data sets.
Because you had the name of the country, the capital, the money.
Population of stats.
Stats.
And so you had to keep them synced.
And I had to work with QA.
They had a formal QA department, which was kind of new to me.
And I had to work with them to make sure that all the data sets were in sync.
And then there were always exceptions, like Kashmir.
Like, what country is that when you touch it?
And what do we say?
And so you couldn't just rely on the data sets.
So toys kind of seem like the distillation of embedded development.
I mean, they're very small.
They are low cost because you want to make millions of them
and charge as much as you can to make profit.
So all the components are shaved down to the minimum required.
How did that change how you approached development,
learning that, oh, I don't have the resources of Agilent behind me to build a custom board with 68K and as many TI DSPs as I want?
On the Odyssey Globe, that wasn't that important.
But when I went over to the preschool line, where shaving a tenth of a penny was more than my salary. It was so different because Agilent I had all the time and money in the world.
Crossbow, I had a lot of money to spend on those boards.
Not as much time to work on them,
but still having something that was 10 cents on the board
just because I wanted a debugging method wasn't a big deal.
And at LeapFrog, masked ROMs.
So if your code had a bug in it and they paid for the mask, you just cost the company a whole ton of money to redo the mask.
Or they would just ship it with the bug because they couldn't fix it.
And learning to do one-time parts so that you could test your code before you masked the ROM.
All these little things that just made it so that I understood consumer things a lot better. I remember getting kind of mad at one of the mechies who wouldn't give me the darn encoder thing I needed because it was a turning wheel and I needed to know where the home was.
And I wanted to know where a couple other things were.
But yeah, and it turned out, you know, there just wasn't budget for a sensor. And we ended up doing this plastic, horrible thing that only worked sometimes.
And I had to deal with code that could, I had to make code that could deal with the uncertainty of whether it worked.
Were there other challenges related to that kind of thing?
Yeah, there were lots of other challenges.
I mean, we had a way to create voices on the system
to encode the voices for the toys.
And if you wanted to be able to change anything,
they had like one byte free.
And so every time I wanted to go in and mess with that library,
I had to optimize a bunch of code so that I could put in my code.
And I really liked that.
I ended up working with one of the guys who built the library,
and I think when I said I wanted to change this, he was just like, no.
Like, can I try it?
And eventually he and I became pretty good friends.
So he let me try it, and I got lots of new things done,
including being able to modify the voices to go higher or lower,
which was good for,
we were doing a driving game,
a driving toy where you had to,
when you put it in gear,
the voices all went really fast.
What was your favorite toy to work on?
Or what was your favorite toy there that you didn't
work on? Either way, your choice. I had to work on so many neat toys.
I think I liked, there was a toddler table, or maybe it was, there was a toddler thing that
said hello in like 10 different languages, and goodbye thank you and had little pieces of snippets of music.
And it was just like this international cuteness fest.
And I just liked that one a lot.
What was the development environment like for that?
Processors were probably whatever cheap thing you could get.
Oh, no, we made our own processors. You made your own processors? And processors were probably whatever cheap thing you could get.
Oh, no, we made our own processors.
You made your own processors?
Well, I mean, they were based on 8051s, but we did our own chips.
Okay.
And then we used CodeWrite to develop in, and I don't remember the compiler.
So what were your own chips? You said it was an 8051 base,
so you take an 8051 core and make an ASIC out of it?
Yep.
And was the difference just different peripherals?
Like we want these exact GPIOs and no more?
Or was it something more sophisticated?
There was some of that.
There was some of embedding our voice library system.
Would you put the ROM on those?
Yes.
So it would be the whole toy would be, the core of it would be on a single 8051 with
the ROM on one die?
Yes.
Okay.
That seems expensive.
Oh, it was.
It was immensely expensive, except for the fact that then those were cheaper than anything
we could buy. So the NRE, the development cost, was huge.
But the actual chips were, I think one was a quarter and one was 85 cents.
So you're doing 80-51 development for the most part?
Yeah.
In C or assembly?
It was mostly in C.
And then the library pieces I was talking about,
that part was often either in assembly or in reading the assembly and rewriting the C,
so it was more efficient.
Even the toys that talked would be 8051?
Yeah.
So how did the sound work?
Magic dust?
No, I mean, they had this big library. Was there an auxiliary chip?
It wasn't an auxiliary chip, but it was part of their secret sauce.
It was kind of, imagine you have a DSP and an ASIC on the same core.
Okay, so there was other stuff on the core besides AD.
There was other stuff.
It wasn't the 8051 PWM-ing a speaker while trying to do anything else.
Oh, no, no, no.
Okay.
That's fascinating.
I don't think I knew that.
What did you wish you could have done there that you didn't get a chance to?
I wish I could have shipped more products.
More products?
I have a closet upstairs full of box leapfrog toys.
There was one year my toys were all canceled.
Right, I remember that.
And that was painful.
I wish I could have worked.
One of those toys was a writing project so that you could
teach kids how to write their letters. I got really interested in that one and then it was
canceled. So that was kind of a bummer. What toys do I wish I could have worked on? I wish they had
made a cuddly toy. It ended up being that most of the time we would start out with a cuddly,
cute toy,
and then we'd end up putting the alphabet on its chest and it lost all its cuteness.
It's hard to be cute with the alphabet on your chest.
So there were some plans to do a cuddly, cute, and yet still educational toy. I think now, if they were still there,
I mean, now I think you could get away with an emotionally intelligent toy.
And I think that that would be very interesting to help kids vocalize their emotions.
But then it was all about the alphabet.
You know what's coming next, right?
Is it karaoke?
No. Did you break anything?
Did I break anything?
It's hard to say what you break.
I mean, did I break toys?
Sure, but they were cheap.
In a fun way.
Did anything spectacularly?
Did you blow up any toys?
Was there ever a flaming Tad the Frog?
There was a frog that got hung by a noose but that wasn't me people were really mad at that
project that's not oh god that's not what i was headed for so we'll just leave that um yeah doesn't
sound like you have any stories i don't know i mean batteries if they went in backwards they
didn't blow up because there was very little I could do to hurt those because they were designed to be consumer grade.
Okay.
So leaving LeapFrog behind, you left there and I think you started at a new job right after that?
Or did you go straight to consulting?
I went to a small company that the interview was too easy and that should have given me a clue.
And I stayed there for six weeks.
And it was a company by a famous Silicon Valley person.
Who we got to meet.
It was very nice.
The thing that I know, the thing that I took away from that was that Steve Wozniak really likes having his ears licked by a beagle.
Good, thank you for clarifying.
And so that didn't go well.
And so you left pretty quickly there.
And then you did your first round of consulting.
Yeah, I had a consultant that worked for me at LeapFrog because I was a lead engineer on a couple projects.
And Mike was great.
And then I asked him what it was like to be out there.
And he told me and he told me about S-Corps and LLCs and just, I mean, an hour's worth of information.
And I was in a good position to understand what I needed to do.
And yeah, so he actually gave me my first consulting job.
I subconned for him for audible.com.
And that was, yeah, my first consulting gig.
And so you did that for a little while.
I don't remember how long.
It wasn't too long.
A year or two, 18 months or two.
But then you went back to full-time work.
I found this job request on Craigslist, which is kind of where I was haunting for contracting jobs.
And they needed somebody with TI CC28 experience.
Which is? That processor I'd used at Crossbow.
They were doing things that needed to be cheap.
They were looking at signal processing, real signal processing, which I hadn't done in a long time because I sure missed Fourier at that point.
And they were creating systems that there were off-the-shelf components.
And after being at Woz's company, I was just like, you do not develop things if you're a startup.
You develop your core technology and you buy everything you can because you just don't have time.
And so I emailed them and said, would you consider a contract?
And after I pushed send, in my email box, there was a message that said, would you consider full-time from them?
I mean, I don't know how we just found each other at the right time, but so we crossed and I
interviewed with them during the interview because I wasn't sure I wanted the job. I mean,
I liked them on paper, but I wasn't, I was happy consulting. And so during the interview, I said, anybody who develops their own radio,
when they're trying to do this is stupid. I said, if you don't have a JTAG, I'll let you borrow
mine because developing one without developing the system without it, it would just be horrible.
And so the firmware engineer, like the next day I got his JTAG, which he'd been begging for,
for months. And then when I, when I said that thing about the radio the room got quiet
so I was kind of snotty interviewing there
because I just didn't really wasn't sure
I was hoping they'd hire me as contract but then they hired me full time
and that went from working in somebody's house to working in offices.
And Shots Butter was very cool.
I talked about Shots Butter.
We've talked about Shots Butter a lot, so I'm not going to delve too deeply into that.
It's the job you've probably talked about the most on the podcast and elsewhere.
For good reason.
It's interesting and
different kind of social responsibility with lots of weird privacy aspects associated with it so
it's interesting to talk about um what haven't you talked about about that job that that maybe
you'd like to or i mean we've heard about the technical aspects of it but was there anything
specific about that job that that made it different from the others?
The people? I mean, our customers were law officers.
And so when we had bugs in our software, I was talking to police and police chiefs. And when we had a massive bug and it affected multiple people, we had this meeting where basically they needed someone to say, I'm sorry.
And I was not volunteered.
And so I'm sitting there saying, I'm sorry to people wearing guns.
It was a little weird, a little weird sometimes.
Uncomfortable.
And yet the other side of finding out we actually helped somebody was really cool.
And yet the other side of that was listening to gunshots happen.
Yeah, because you dealt with audio and since you were training a system to detect them,
you had to listen to the...
A lot of gunshots.
The actual real events, yeah.
And sometimes, because a lot of times I had to decide whether they were fireworks or gunshots.
So I got pretty good at that.
But sometimes you'd hear things and you just wanted to know what happened and you were never going to find out.
This is the sort of thing you throw at a neural network without even thinking about it these days, right?
Even then we were starting to do that sort of thing.
So my part was the sensor part.
Yeah. so my part was the sensor part and so the goal
for my code was generally to identify
that there was an impulsive event at a certain
time and then to
characterize it so that the audio didn't have
to be sent to the server
and so my goal was to calculate
features
and it was somebody else's
responsibility to do the
hyperbola time difference of arrival sort of thing.
Okay. Did you break anything?
I almost fell off a roof. I broke my hiking boots one time.
We'll get to that.
Did I break anything?
I don't think I broke big things.
And I didn't. I mean, you did have, you'd have weapons for testing.
So it seems like this would have been the place where something could have gone horribly wrong.
And I'm glad it didn't.
Yeah.
I mean, I learned how to fire a gun and I learned a lot about gun safety, which was important.
Before Phil King started at the company, anytime we'd go to a gun range and test, the engineers, including me, would set up our things and then we would scurry back to wherever we were hanging out.
And the scary gun people would come and shoot things.
And then when they were all gone, we'd unhide and go out and get our data.
And when Phil came, he was like, you guys have got to be kidding.
These people are great.
And he, he just, it wasn't like he was a gun nut.
He was just a responsible,
nice person who would go talk to the gun people.
And he became our gun safety officer,
even though he was double E2.
And so he had the permits to work, to use the automatic weapons
and other things you can't necessarily use in California.
Okay, so you became a manager for a while at that job.
That was your first management job.
Well, I'd had other senior-ish leadership roles, but not people management.
Well, even at HP, they sent me to people management.
Right, right.
I remember influencing people for results or something.
Yeah, it was manipulation for idiots, I think.
And that was before I even went to bioscience.
But I wasn't ready to be a manager.
I was so not ready.
And they pushed me into it.
I learned about migraines.
And so I was like out of there.
I was one of the reasons I went.
Learned about migraines.
Okay.
So you left Shotspotter and I don't want to talk about this for a really long time, but you went to a contracting house.
You tried out a contracting house.
Why didn't that click for you?
Was it just people or was there just being in charge of your own kind of destiny was more fun?
There were a lot of things that didn't work.
I had hurt my hip at ShotSpotter, early days in ShotSpotter.
It wasn't at ShotSpotter.
No, no, no, no, right.
It was at home.
It was at home, but while I was at ShotSpotter.
And folks, put a rug under wheelie chairs on board floors.
That's just a bit of advice.
But we didn't really know what was wrong until after I left Schatz Potter around that time.
The company that I was working for was upstairs, and it was torture.
And there was no elevator um and it was far
the commute was long and unpleasant so a lot a lot of things i didn't have any friends there
was the work interesting some of the work was really interesting um one of the patents uh that
i'm on came out of that, and it was super fun.
But when that was done, they wanted to do this dumb product that required a whole bunch of technology and wasn't ready.
And I couldn't say no, and I couldn't even influence the people who were driving it.
They would let me choose what I wanted to work on,
but then they would give me a whole bunch of stuff I didn't want to work on.
And then they would say, why wasn't it done?
Like 10 minutes apart, it was unpleasant.
And I had a couple of people I liked, but for the most people part,
or for the most part, I didn't fit in, in that company.
Yeah. That's impossible to deal with. Um, yeah. And it was really part i didn't fit in in that company yeah that's impossible to deal with
um yeah and it was really i didn't fit in it wasn't that they were a bad company
maybe they were a bad company because i did have a friend to go work there after i did
and she said that they were not fun either okay so after that you went back to consulting
yeah because why work for other people when i can do this on my own and have a lot more direction?
And it's been continuous since then?
Well, right after...
We don't have to go into...
In the interest of time, we're not going to go through every single client that you've ever had.
But I wanted to say the book.
Why? The book is next.
The consulting company kind of...
That consulting company kind of led to the book.
So you wrote a book called Making Embedded Systems.
Yes.
Design Patterns for Great Software. It's available on Amazon.com. It's available on all of your dot coms. It's available via PDF if you're a thief. Why did you do this?
Oh, I'm sorry. The question was, why would you do this?
By then I had been a manager and I had been a senior engineer and I had trained a lot of junior embedded software people.
And I felt like I was just repeating myself.
And I was tired of saying the same set of things over and over again.
And I had been working with one of the guys at the contracting firm
to build a library for new engineers.
And we were bemoaning the fact that there was not a good embedded systems book.
And when I left there, he said, you should do that.
Sometimes I get these ideas.
I kind of fall in love with ideas.
I used to really resist them, but I kind of stopped.
And now I'm more willing to chase them.
What convinced you to go through with it?
It was a lot of work.
What convinced you to sign on the dotted line?
And halfway through, what convinced you to keep going?
What convinced me to sign on the dotted line was I submitted a proposal to O'Reilly.
I read all of their forms and I submitted a proposal.
And they said, okay, we'll get back to you in six weeks.
Form letter.
And the next day they called.
And it was just like, really? I guess it was that
somebody was excited about it, just as excited as I was. And it was amazing. It was the right
timing and it was the right encouragement. Was it harder than you expected?
Oh yeah, it was so hard. There was some goodness because my mom passed away as I was beginning the project.
And I wasn't really in a good spot with that.
And so not seeing anyone and just spending all my time writing was actually pretty good.
So, yeah, I think that was one of the reasons that I kept going, but also because my editor just kind of expected it.
And he was encouraging.
Now I've worked with other editors and I realized just how encouraging he was in a quiet sort of, well, what are we going to get done next week sort of way.
The book's been out a long time.
Yeah. Um, the book's been out a long time and you've gotten quite a few reviews and things on Amazon and elsewhere, which, you know, you try to probably as best to ignore And of course, I mostly read the negative ones.
Yeah.
There are two negative reviews that I adore.
Oh, thank you for doing this, because I was going to ask this question and I forgot to write it down.
The first one was one of the early ones, and it said, this is the worst book ever.
Yes.
And the reason I like that is because I like to be in competition with James Fenimore Cooper.
I like to really be up there with the greats.
So, yeah, the other one is somebody recently, I don't know, the last couple of years, wrote that a book shouldn't sound like you're speaking.
It shouldn't sound like your voice.
And I don't know who wrote that, but I want you to understand, I am so proud of the fact that it sounds like me. Do you know how hard it is to write in a voice, to truly sound like you're there with the person. It is, I, you may have wanted a book
that was dry and simple and not friendly,
but I thank you for your review because even though
you gave it zero stars or one star or whatever, you've
discovered one of the things I worked hard on.
When, you know where I'm headed with this,
when is the second edition coming?
I've talked to O'Reilly about it off and on.
It depends very much on their editorial staff.
I don't know what I want to add.
I mean, I guess there are a couple of things I want to add,
but I don't have any big chapters I want to put in.
I once thought I wanted to put in a chapter about manufacturing,
and then I went and looked at the book, and most of what I had to say was already there.
Yeah.
So that was kind of embarrassing.
But things have changed.
Things have changed, but the book wasn't written for a particular processor.
The idea was it wasn't tied to a processor,
and that it was all of the,
the theory information,
the how does a schedule to work in theory?
Um,
and here's how to build a little one,
but it wasn't really enough code to build a whole system.
It was just,
here are all these concepts you've heard of.
Let's put them together in a way that builds a house.
Um,
yeah,
I would do a second edition.
And if anybody out there has things that should be in it, in a way that builds a house. Yeah, I would do a second edition.
And if anybody out there has things that should be in it,
send me an email because one of the things I need to do with O'Reilly to do a second edition
is to have a good plan on what's changing.
Right.
Cool.
And you're glad you did it.
I am glad I did it.
I won't ask if you broke anything because it's hard to break writing.
Okay. Well, we'll move on to the close to the end.
We're close to the end, but there's still more to go.
Do you need a break?
No, I'm fine.
Adventures in the Field segment.
So you've done a fair amount of travel for a software engineer.
And, you know, software engineers travel, but they generally do it to go to a different office and sit in a conference room and look at slides or, you know, have boring meetings all day in an air-conditioned room.
But you've gone for actual on-the-ground work for many of your full-time jobs and some of your contracts.
But I don't do it very often anymore.
Sometimes literally on the ground.
What advice do you have for doing field work far from the office?
Take your own tools.
What does that mean?
What tools?
What tools would you take now? I have a toolbox that has a set of small screwdrivers,
a set of large screwdrivers,
a voltmeter, extra batteries for my voltmeter,
Velcro ties and zip ties,
jumper wires, magnifying glass, matches.
Rattlesnake hits.
That was only once.
I believe it was twice.
All right.
And then DVM and extra boards and serial cables or whatever I need.
The times that I have assumed that I could use the tools that were supposed to be available, those tools were never available. So pack your own tools.
So rattlesnakes, bomb ranges,
airplanes, stock cars, am I missing anything?
I went to an aluminum
molding factory. Sand molding.
Casting? Sand casting, yeah. Sand molding. Casting?
Sand casting, yeah. That was awesome. I mean, that wasn't that I was working there. That was more like they were giving a tour to my mechie and he invited people.
But you didn't have to?
I didn't have to touch the metal, no. That would be bad.
Okay. What is your favorite field adventure story? Not necessarily disaster, but adventure story.
It's okay if you've already told it on the podcast.
I don't think you have, though.
Is there many to choose from? There are.
There are a number to choose
from, but mostly it's
what would other people
find interesting?
I mean, learning that Mai Tai
has had a lot more alcohol than I expected isn't really a great story.
No, that's a terrible story. Where was that? That was in Florida.
That was when I started realizing that if you're going to travel, you can either drink
or eat, but not do both in one night. And I should really
eat. Probably shouldn't drink on business trips anyway.
Well, that's the thing. When you're with a bunch of people who are traveling, it's really hard.
I mean, you all go out to dinner, and that group, we all met for drinks,
and then we went out for dinner, and it was, yeah, whew.
That made mornings hard.
Anyway.
It was good that you were in race cars for that one.
Next time, yeah.
High voltage, too.
Yeah, very good.
I'm glad I'm just hearing about this now, 20 years later.
I don't know.
You hear the stories.
What stories do you think?
I mean, there's the desert stories.
Those are always good. There was, you know, if you're working on a bomb range,
your hiking boots should be very solid,
and they should not require duct tape to keep them together.
Whoops.
There's the time that after one of my tests,
an FBI agent called me while I was on vacation. And I was
on vacation with Chris's parents and we were shopping. They like to shop. And we were like
at the mall, like Juicy Couture and Sonoma Williams and all of those things.
Sonoma Williams.
Is that not right?
Sorry.
Williams Sonoma. Okay. And the FBI agent called me and I was like, what? This was while I was at
Schatz Bar. And he said he found my phone number and a packet of alarming documents.
And I was just like, okay. And I did the smartest thing I've ever done, I think. I said, how do I know you're really
from the FBI? And he said, well, call the LA field office and ask for me. And I did that.
And from that point on in our conversation, I was, ma'am, like, I think that was the right
thing to do. And he found a packet of information that documented a startlingly large number of very high-powered weapons, because we were supersonic testing, and some alarmingly detailed maps of a military base.
And my number was first on the packet because that was my test. I was running
that test. And the second number on the packet was General Michener. And so when I told the FBI
agent I was on vacation, he asked if he should call General Michener. I was like, nope, nope,
I don't really need to be on vacation just because we're still walking through the mall. And yeah, it
turned out that somebody in Riverside had dumpster dived and found this document. And there was
nothing, I mean, there were trade seekers there. It should have been shredded. And I got pretty mad
at the people who didn't shred stuff. But I was really glad that Fort Irwin had not given me their detailed maps,
that I had only used Google Maps in order to get all the detail. Oh man, if that had been truly
important, it would have been bad. And so I explained to the FBI agent what it was and what
the test was and who he could talk to to verify this, my CEO.
But I just have this memory of walking around this high-end mall, going to these ridiculously high-end stores
and just the deer-in-headlights feeling
of, oh my god, I'm talking to an FBI agent.
And most of the big adventures were ShotSpotter and SportVision, right?
Yeah.
I mean, Fitbit didn't have any adventures.
And I don't really like to travel.
I guess there was, I went to a conference for a crossbow.
That was kind of fun.
We went to the Institute of Navigation conference,
which is as boring as it sounds.
Yes, indeed.
But we were given a talk about the inertial GPS integration,
and our inertial system was super, super cheap compared to everyone else's.
I mean, just ridiculously cheap.
Less than one-tenth the cost, often one-hundredth the cost. And we went to our session, and a guy gave a talk before us
and asked me to flip his slides for him, so I was there.
And when we started, there was me and Tony, who was my co-presenter,
and the guy presenting, and maybe five other people.
And while this guy before us presented,
people just streamed in until Tony got up
and was suddenly shocked that the room was full
because he thought he was going to be talking to five people.
He was ready for that.
And it was just, it was hilarious because he just was like,
he was usually just such a smooth talker
and he clearly had just mentally jumped the shark.
Cool.
Well, I think we could get into more detail on some of those, but we've got to keep moving.
Okay.
Got to keep moving.
So I'm going to skip the next set of questions I had and move into listener questions.
Actually, before we get to listener your questions I had one more
what happened you worked on that you would like to
in the future
space stuff
I've never done space stuff
I would like to do space stuff
I have gotten to do some sciencey stuff
scientific equipment
I enjoy that quite a lot
and many of the scientific equipment things
are changing so fast, becoming cheaper.
Kind of like what John Lehman's working on.
Yeah.
Okay, listener questions.
There were too many of these, so I'm paring it way down.
Okay.
Matt Willie asks,
how have you stayed sane working with Embedded so long?
I haven't.
Good answer.
Jakeypoo asks, how do you decide when to embrace a new technology and when to stick to tried and true?
That's a good question.
If I knew the answer, I would totally bottle it and sell it.
I guess I definitely don't chase new technologies because too often they're not baked.
So usually I have to hear something three or four times before I start getting interested.
But even then, some of it does this feel right, which is not easy to bottle.
You look at 5G and you read the specs.
Which I've heard is extremely dangerous.
I saw a highway overpass and there were some people up there with a sign.
I beg people to look into this.
It sounds very bad.
But the 5G makes a lot of promises, but doesn't seem to have a lot of technology backing it up.
And the technology they do have backing it up looks a lot like the old technology.
So what are we queuing and crying over?
I think that's right.
And I think it's more adopting new-to-us technologies rather than new technologies.
New-to-us may be fully baked, but we haven't used it in this circumstance before.
That's the kind of thing that I'm more okay with.
Oh, here's a new shiny thing. I'll be the first.
Yeah.
Yeah, and I mean, I have been teetering on machine learning for years,
but only have gotten into it for the last couple.
Yeah.
Philip John Johnson asks,
given the trajectory of the industry, what's your vision for embedded development
future? More processing
will get cheaper. I mean,
next year, what you build this year will be out of date.
And you will be able to do more at a cheaper price.
If only you could not count engineering costs.
Follow-up to that.
Well, not really a follow-up, but also from Philip.
How do you select your jobs to avoid boredom?
Asking for someone who feels like he's solving the same three problems over and over and over and over again.
I am super fortunate.
Maybe it's because of the book.
Maybe it's just because of the podcast.
Maybe it's just because that I get to mostly choose what I work on.
I don't usually have to take contracts unless I find their technology or application particularly interesting.
And saying no seems to make the company more attractive.
So yay for that.
If you don't want to keep solving the same three problems over and over again,
don't.
Find other contracts.
Find other things to work on.
The flip side of that is you may have to not have something for a little while, right?
And learning things is hard.
It's fun.
Challenging yourself is fun and interesting and cool.
But doing the same three things over and over again is easy and often lucrative.
So, yeah, if somebody brings me a BLE light bulb, I'm not going to work on it.
Even if I could do it in like two days, I still...
What if you had nothing going at the time?
I would genuinely rather make a BLE light bulb for myself
to put online than to get paid for that
because I need to do things that I learn for.
And if I did it myself, I would learn more about manufacturing.
I mean, you're in a privileged position where you can do that. Yeah. I need to do things that I learn for. And if I did it myself, I would learn more about manufacturing.
I mean, you're in a privileged position where you can do that.
Yeah.
Next question from Patrick Yan.
What have you seen a new member of a team, especially a junior engineer, do that warms your heart?
Something that shows they really care about their work or makes it very easy for you to work with them?
I mean enthusiasm.
Asking questions.
Too many people think that asking questions makes you stupid.
And that's not true.
Asking questions means you're interested.
It means you're thinking about it.
It means you're there.
You're present.
On this show, I always look for people who are enthusiastic.
It's not about whether you know the technology all the way down to your toes. It's not about whether you're the best speaker ever.
It's that, yeah, I'm here and I want to be, and I like this and I want to learn.
And new engineers can show that in so many ways. I mean, sure, you can ask too many questions,
especially if the answers are there,
but if you can ask a question that isn't answered
in the material you already have, that's just awesome.
I like that. That really does warm my heart.
Cool.
Elysia, what is your favorite thing right now?
You.
Elysia, what is your favorite thing right now you elicia what is your favorite thing right now still you
elicia what is your favorite thing that right now that's an interesting answer to the question
still you
uh interesting things right now like technologies oh your favorite anything
something that's exciting you or it's fun that i love living at the beach i know we've been here
for a few years and i know non-californians are just like our Californians, so lame. No, that's what Californians sound like
when they talk.
But I
seeing the beach and how it changes
through the years is
just, I find it
super cool. I never thought I'd get to live
this close to the beach.
I know you have a final thought queued up, so
I feel obligated to
ask you, do you have any final thoughts you'd like to leave us with?
Since you're doing the interview and you did the outline, I don't have to edit this, right?
Right.
I've been worried the whole time.
That's your final thought?
Thank you, Alicia, for being with us.
You're welcome, I guess, because I still, why do you guys listen to this?
Thank you to Elysia for being a good sport about this.
And to me for producing and co-hosting.
And thank you for listening.
You can always contact us at show at embedded.fm or hit the contact link on embedded.fm.
Now a quote to leave you with from Edgar A. Guest.
Somebody said it couldn't be done, but he with a chuckle replied that maybe it couldn't,
but he would be one who wouldn't say so till he tried. So he buckled right in with a trace of a
grin on his face. If he worried he hit it, he started to sing as he tackled the thing
that couldn't be done, and he did it.
Embedded is an independently produced radio show that focuses on the many aspects of engineering.
It is a production of Logical Elegance, an embedded software consulting company in California.
If there are advertisements in the show, we did not put them there and do not receive money from them. At this time, our sponsors are Logical Elegance and listeners like you.