Embedded - 151: Captain Stochastic

Episode Date: May 11, 2016

Paul Sidenblad spoke to us about his engineering career, starting off with GE's work on theGambit spy satellite.   Google Protobufs Elecia read Eye in the Sky: The Story of the CORONA Spy Satellites... a few years ago and remembers liking it, though this was the first time the information was useful. 

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded, a show about the many aspects of engineering. I'm Alicia White, alongside Christopher White. This week, our guest is Paul Sidenblatt, an engineer at NVIDIA. Hi, Paul. Thanks for joining us. Hey, you're welcome. We're happy to be here. Usually at this point, I ask you to tell us about yourself. But I think that might take too long, so we're going to skip straight to the lightning round.
Starting point is 00:00:29 Chris, you want to go first? Sure. Favorite programming language? Huh. Yeah, I thought about that. It's not C++, although I can live with C++. I think I'd go back to ModComp Assembler. I think it was a decent register set.
Starting point is 00:00:54 It was pretty simple. It wasn't cluttered, you know, like certain complex assembly languages are that I could name. But yeah, it didn't look thrown together. It was just simple and you could do what you needed to do with it. And I'm sure nobody's ever answered that before yet. Yeah, that's a new one. What programming language do you think should be taught first in college CS courses?
Starting point is 00:01:20 Well, see, I never had a college CS course. Math major. Yeah, math major. But... Don't make fun of us. I know I'm outnumbered. I could see starting with C, but I'd be tempted to go more bare bones. I'd be tempted to teach people about what's going on inside of a computer before we start teaching them about higher level languages.
Starting point is 00:01:47 I might start them out in a similar language. A microprocessor approach. Favorite processor of all time. Oh, wow. You know, I got really inside of RSX-11 on a DEC-1170, and that was good to work with And that was good to work with. That was good to work with. But just for volume,
Starting point is 00:02:10 the first machine that I worked on was a CDC 3800. And that was 64K, 48-bit words, once complement arithmetic. It was just a wonderful piece of work. You can see it in the Smithsonian now. And it wouldn't even begin to fit in this room you know it was uh just just a monster but uh it had like the the star trek control panel flashing lights and it had uh a speaker on one of the data buses
Starting point is 00:02:41 actually an fm receiver on one of the receiver, then wired to a speaker so that you could hear your program running. And you could tell when it was stalled. You could tell when it was stuck if you get these big recursive loops and it starts to just sort of buzz on itself, and you can just tell them when it was stuck. The music of your program. That's right, yeah. And people actually wrote music with it.
Starting point is 00:03:06 But that was, you know, it was just for fun. Yeah, I remember people used to write music for the Apple II floppy disk drives because you could move the steppers with the assembly line, so they'd bang them around. Yeah, yeah. Yeah, and that was an Air Force contract, so of course they had the Air Force fight song with the percussion coming from the line printer.
Starting point is 00:03:28 When you were young, what did you want to be when you grew up? Aeronautical engineer. Oh, I thought that was usually the last question that we extended. No. No, no. Okay. See, I'm totally unprepared. No, the last one is what is your work day like? That isn't for a while yet. All right. Should we bring back the dinosaurs? No, probably not. Probably not. You know, I'm a backpacker and I'm of two minds as it is about the grizzly bear. But, yeah, I could live without the grizzly bear and I'm sure I could live without the dinosaurs. Favorite Girl Scout badge?
Starting point is 00:04:04 Well, you know, I'm a little bit rusty at that. The Girl Scout troop that I led was not that much into the badge thing. But if there's a backpacking badge, that would be the one. Hmm. Where to go next? Go technical. Big or little Indian? Little Indian, always.
Starting point is 00:04:27 Hardware or software? Oh, on the edge. I like to work at the interfaces. Me too. Engineering or managing? Oh, engineering. That's easy. That's easy.
Starting point is 00:04:39 I think we're out. One more for me. Suit and tie or jeans and a t-shirt for me personally suit and tie okay jacket and tie let's say that the suit is you know let's not go crazy i've been watching person of interest too much um what is a day what is a work day like for you uh well okay um starting like with the commute i'm lucky enough to have a i'm lucky enough to drive counter commute so uh it doesn't take me long to get to work but i i go directly to a gym first and uh work out and that puts me in a much better frame of mind when i get into the office and mostly in the mornings i spend um well often there's a meeting go through email
Starting point is 00:05:36 surf the web a little bit and usually i don't get much programming done in the mornings uh there just is i need a i need like a solid block of time and it just doesn't happen in the mornings. So I do the other stuff. I do the communication with the other engineers. I answer other people's questions and that sort of thing. And then after lunch, I try to find a couple hours where I can really focus. And if I fall into it, then I can just keep going. Uh, I, uh, haven't done that for a while, but, but, uh, uh, I really enjoy the part
Starting point is 00:06:19 where you get into solving the problem and you forget about the clock. You know, that's the best part of the job. The flow state where it all just, you understand what's supposed to happen and you can get from here to there and there's no barriers. Right, except the compiler. The compiler is not always my friend. Well, and sometimes yesterday me put in bugs that now I have to find. Those are always amusing. But yeah, that solid block of time.
Starting point is 00:06:51 We don't get enough of those. No, that's the part that I, if I could have more of those, that would be an improvement. But aside from that, I love my job. So you work at NVIDIA now? Yes. And I know I can't ask you about what you're working on now because you can't tell me. What's the last thing you can tell me from your work at NVIDIA? Okay, well, so I was working with the libraries group and working with these really, really, young engineers from Poland. Uh, as a matter of fact, we had one guy
Starting point is 00:07:27 come in from Krakow and he was, he was like the outlier because everybody else was from Warsaw. But, uh, anyway, and so they did all the real heavy mathematics and I did a lot of plumbing. Um, and that was, that was just fine with me. I was close enough to the math. I never really got down to the GPU level except once or twice. But I was working on FFTs. And getting really big multi-GPU FFTs working. So FFTs are fast Fourier transforms. We got a comment recently that we don't always define our acronyms,
Starting point is 00:08:13 so I'll do that, but it's signal processing. And it's the sort of thing that I used to do with audio, identifying gunshots and whatnot. It's breaking down signals into their component frequencies. But audio, you don't need GPUs, let alone multiple GPUs. What kind of signal processing were you working on? Well, so we just provide the library. And so our customers vary.
Starting point is 00:08:39 They use FFTs and seismic. They use, well, there's radio frequency signal processing that some agencies would be interested in. And so, yeah, but as I say, we didn't actually write the applications. We provided a library of, just a really flexible library of transforms that you could do, well, basically all different kinds of strides, multi-dimension FFTs.
Starting point is 00:09:15 Yeah, we used that at one of the medical device book companies I was at. We put large-scale FFTs on the GPU, probably used your library. I'm not sure what the timing was, but I think we used OpenCL, and then there was a library that we dropped in. But we had high data rate imaging stuff that was coming in as spectroscopy data. So it was already the FFT, so we had to do the inverse FFT of a huge amount of imaging data.
Starting point is 00:09:43 Which looks pretty much just like the FFT. With a couple of scalars. Right. Yeah, so a lot of imaging, a lot of compression in signal processing. Yeah, and people do, you can do a correlation with FFTs too. FFT in and transform and then FFT back out. Okay, so... And then before that it was random numbers. Random numbers. Generating random numbers is much harder than it seems. Yeah, there's a whole science to it. We didn't have our own
Starting point is 00:10:15 we didn't develop our own generators. What we did is adapted existing algorithms to the GPU. That was fun. For a while I was calling myself Captain Stochastic. Just to bug my children. I imagine that was a great Halloween costume. But when you
Starting point is 00:10:38 got to NVIDIA, that was a while ago, 2001. You started there working on networking. That's right. When I went to NVIDIA, they were making a chipset for Intel weatherboards. And among the components, it had an Ethernet controller built in. And so I was doing drivers. I had come from 3Com.
Starting point is 00:11:03 So that was the background that I had that they were interested in. And so I was doing drivers. I had come from 3Com. So, uh, that, that was the, the background that I had that they, they were interested in. Um, so they hired a really good team of, of engineers, brought us in from several of us from 3Com and some others. And, uh, we did just a whole lot of, uh, right, right at the hardware software interface, uh, right where I like to be. You know, that was a great experience. When we talk about hardware and software, I usually envision that point of writing software for microcontrollers and running on the hardware. But NVIDIA does a lot of chipset stuff.
Starting point is 00:11:44 Are you involved with that? we did um well we did the chipset for for intel cpus that was that was it was like for for an ibm pc clone and um then yes i did work on the tegra uh line uh but in that case um i was doing more of an architecture job i was working on the design for debug aspect of the part where you're putting in hardware to help you debug the hardware, basically. How is it different to work on a board versus working on support for a chipset? Not really all that different. I mean, it really all that different. I mean,
Starting point is 00:12:25 it's all just gates. You know, I mean, and so the thing that I like about it is trying to make them do what it is
Starting point is 00:12:35 you want to do. And it doesn't really matter what level you're working at, to me, whether you're doing parts for an embedded controller or parts for something higher up the food chain. Software, software.
Starting point is 00:12:50 Okay, so you were at 3Com doing networking and standards? Oh, I took part in I2O and InfiniBand discussion groups and stuff, but the guy that was really involved in standards was another guy that they had that was doing that. So I wasn't really on the 802.3 committee, for example, or the 802.11. I assume you understood all that? Yeah, 802.3. Oh, yeah, if you're decoding, then 802.3 is Ethernet and're if you're if you're decoding that 802.3 is ethernet and 802.11 is is wi-fi wifi nobody pronounces it that way except you i don't even pronounce it that
Starting point is 00:13:32 okay um and you worked supporting novelle which is not a name we hear a lot anymore, and Microsoft, and OS2. Oh, yes. When I first got out of college in 96, one of my jobs was supporting a wide number of operating systems on server hardware, and writing drivers for OS2, Novell, three different flavors of Windows, and something else?
Starting point is 00:14:07 HP Ox, maybe? Probably. Because I was at HP, so that sort of makes sense. Oh, that makes sense, yeah. And it wasn't easy, because they were all very different. I mean, Novell and OS2 had some weird commonality. But even the different flavors of windows weren't the same which one did you like best oh of those i'll have to choose yeah that's right
Starting point is 00:14:32 um well which one did you like least yeah that's easier yeah well novellas call always kind of an outlier you know they they they were a little bit a little bit, and they were kind of on the way out. I'm motivated by the volume of customers. I really like the idea that people are using the stuff that I've built. That's important to me. And so, you know, by that measure, then it had to be the Microsoft OS's of various flavors. I guess it was NT4 I think was kind of where I came in at 3Com. That was one of the later ones.
Starting point is 00:15:17 Well, later by what definition? I mean, OS2 I was at Olivetti. Oh, okay. I mean, Windows 98 is I was at Olivetti. Oh, okay. Yeah, yeah. I mean, Windows 98 is still the best Windows. What? No, Windows NT is still the best Windows.
Starting point is 00:15:33 So, Olivetti was before 3Com. Let's see, 3Com was 94 to 2001, and Olivetti was 87 to 94. Thank you. It's nice to have your resume in front of me. It's really much easier. I couldn't have brought that back up. And that was, what is Olivetti? Well, so they started off as a typewriter company, but by the time that I joined them,
Starting point is 00:15:59 they were making PCs. They made the AT&T PC that was in existence at that time. And it had a very unique display. It was 640 by 400, I think. Memory fades. And monochrome. But, yeah, anyway. So I worked on their display driver and I worked on their keyboard driver. It was fun to put, uh, to make, to make a single key, uh, insert three zeros instead of just one because Olivetti was a, like they're, they were into the banking business, PCs for banking and at the time it was pre-euro and so there were 1200 lira to a dollar so if you're
Starting point is 00:16:48 in a bank you need a lot of zeros right and so they had a key on their keyboard that made three zeros instead of one zero so i hacked the os2 driver to driver to take this keystroke and generate three keystrokes. There's so much you could, I mean, that is really a hack too. What was your response when somebody came into you and say, hey, Paul, we need this feature? It's okay. You know, I get it. You know, it wasn't that crazy. No, it makes sense.
Starting point is 00:17:26 It just, yeah, okay. Well, I guess your fingers get tired typing zero too many times. And it's depressing. Yeah, I guess so. It reminds you of inflation. Why grind it in? And I once had a variable named poo name, and it was horrible. So it is an odd thing developers sometimes have to
Starting point is 00:17:47 do uh okay so before that uh bell northern research yes right and that was uh pbx oriented so they had their own language that they had developed and their own compilers and stuff to to run inside the pb. What's a PBX? Oh, uh, it's a telephone system, office telephone system. And, um, yeah. So the, the best part about that was that the, the customer in, at least in my case, they, they sold worldwide, but the, the customer that I was working for was a tale of Eric at the Swedish telephone company. And so, uh, interacted with a lot of Swedish people, and then we transferred the software technology over to a team in Sweden.
Starting point is 00:18:32 And that resulted in a six-month stay in Sweden for my family and me, and that was fantastic. That's where my family is from, or my ancestry is from. Was that your favorite job? Oh, well, that aspect of it yes and my favorite job is probably the one i'm doing now you know i mean that's that's probably what i would tell you anywhere along my career but uh but since this is my my 15th anniversary this month at nvidia uh i got a sort of congratulatory note from my VP and I said, yeah, you know, looking back at 40 years, I think this has been the
Starting point is 00:19:12 best 15. That's pretty cool. Okay. Since you've given away the 40 years, let's go through the other ones too. 1977 to 82, System Development Center. Development Corporation, yeah. Development, okay. Navy, Moffat, ModCom. Yeah, ModCom, that's right, yeah. That's where I worked on the ModCom.
Starting point is 00:19:35 So they had, I worked at a place called the Acoustic Research Center on Moffat Field. And you have to think about what the original mission of Moffat Field was in World War II. Those big blimp fingers were there for blimps that would cruise out over the ocean scanning for submarines. So I was working in the Acoustic Research Center listening to the ocean and I can't tell you what the mission was but uh because as far as i know it hasn't been declassified but uh but nonetheless we were listening at the ocean and uh for whales yeah for whales whale farts yeah magma disturbances yeah so anyway and so um so that's where i learned first about ffts, actually, is because we were collecting the data out at remote sites.
Starting point is 00:20:29 And then the part that I was working on was the data collection and also communicating it back to Moffat Field, where we processed it. Did whatever classified things we can't talk about. In as much as you can say, now that you've worked on FFT processing systems in the 2000s and in the 70s, there's a vast gap in what you were able
Starting point is 00:20:57 to accomplish, right? Oh, yes. Yeah, that's absolutely true. I mean, they had the specialized signal processing engine that they were doing the transforms with. But, yeah, it was different.
Starting point is 00:21:12 The frequencies that you could deal with were different. The size of FFT that you could do were different. The sampling rates and the storage. Oh, yeah, yeah, that's right. Yeah, yeah, yeah. I mean, we had a couple of the sites had 56 kilobit lines. And then one of them, the real powerhouse, was like 1.3 megabits. That's huge for then.
Starting point is 00:21:36 Yes, it was. It was, for then, it was a lot. And so, you know, we had a custom deck. Well, that's actually, you know, since you asked me what my favorite machine is i had more fun with that it was called a kmc 11 um and it was a it was a plug-in card with a microprocessor on it and it was a it was bit slice micro programmed and it was it was just really fun to work with because you were now now you're right you're you're not you're not writing an assembly code even. What you're doing is controlling the gates that get you on and off of the arithmetic processor and in and out of registers and in and out of memory by setting little bits in the control words.
Starting point is 00:22:20 So it was good. More microcode. Yeah, it was it was it was good more microcode yeah it was it was microcode okay and before that was general electric satellites which has recently been declassified so you can tell us about that's that was fun uh yeah that we were at uh kathy and i were at a a luncheon for uh one of her friends birthdays and this guy sits down next to me and starts talking about this project. And I had buried the code word for that project and just put it out of my mind.
Starting point is 00:22:53 I hadn't used the word gambit in like 35 years. And here's this guy talking gambit this and gambit that. And I'm going, excuse me, can you talk about that? And it turns out, yes, it had been declassified. You can look it up in Wikipedia. You can go see the satellite itself and the CDC 3800 that controlled it at the Smithsonian in Washington. So, yeah.
Starting point is 00:23:22 So what was Gambit? Oh, Gambit was a spy satellite it was a it was basically a big camera but the way it worked was that it had uh like a 10 inch wide uh roll of film that as the satellite flew over the earth much gesticulation here and it's not bad it's audio only. But anyway, as a satellite would fly over the Earth, the film would go past a slit. And then there was a big mirror that directed the view of the Earth onto that slit. And the mirror could be rotated
Starting point is 00:24:01 so that you could look at an angle. You didn't have to look straight down. You could look look at an angle. You didn't have to look straight down. You could look off at an angle. Oh, that was a big improvement over the previous satellites. Well, I guess I don't know what the previous satellites looked like, but yeah, it was a big deal. And it could only rotate this mirror so fast. And so the problem that everybody worked on when they were waiting for their clearance which took
Starting point is 00:24:25 about six months because it was a code named project and they actually did a background check i mean they went out and interviewed my old landlady in san diego and so on and what kind of a person was i did i have any dark secrets anyway so the um the problem everybody worked on was the motorcycle and diamonds problem so you have a a road in front of you, and it's sprinkled with diamonds of various values. And you're on a motorcycle. You can only steer it so fast. And your job is to pick up the best value of diamonds as you go down the road at a fixed speed. And so this is exactly like the satellite cruising over the earth with its mirror turning back and forth.
Starting point is 00:25:04 And that was the that was the the main optimization problem as far as we know as far as i ever knew it was an mp complete problem non-polynomial complete problem so uh basically tough is you don't get an optimal answer for that problem after you're past about a dozen points so uh so it was fun that's how i learned that's what i learned to to code with as jovial and the motorcycle and diamonds problem so it was film yes what happened to the film and came back yeah it came back so yeah so that so the film was in a canister and there was a way to release the canister and it was in its own little re-entry vehicle with its parachute and it would come down through the atmosphere just like any other you
Starting point is 00:25:53 know current satellite i mean not something but any manned mission uh parachute would open and uh there would be a c-130 a big cargo plane with the the rear doors open and a big net and they had this you can imagine just like these the spiders that hold the the web out behind them to catch flies right this c-130 would come along and snatch this uh film canister with its parachute out of the sky and haul it in i I think I saw that on the Avengers movie. You might have. It probably was after the thing was declassified. I think they did that to a person in Batman.
Starting point is 00:26:34 Yeah, maybe. It just sounds so fantastical. Well, it sounds so, how are we going to do this? Well, we're just going to do this. That's right. Yeah. Yeah. I mean, one of the pilots worked in the control center, one of the guys that had been a pilot. And he said, yeah, it's really, it's right. Yeah. Yeah. I mean, one of the, one of the pilots worked in the, in the control center.
Starting point is 00:26:46 One of the guys that had, had been a pilot and he said, yeah, it's really, it's not that hard. You just. Well,
Starting point is 00:26:50 you do have control over when it launches its payload. Oh yeah. So you're not going to do it when it's in a thunderstorm or whatever.
Starting point is 00:26:56 Yeah. But I don't think GPS was deployed at this point. No, no, it was not. Definitely not.
Starting point is 00:27:03 I had to do a little more navigational triggering probably. Well, and, and, well, I mean, they didn't really know where it was not. Definitely not. I had to do a little more navigational trickery, probably. Well, I mean, they didn't really know where it was going to come. I mean, exactly where it was going to come down. I mean, it was, you know, within a, you know, some hundred mile kind of range, but. Well, you didn't really want it to touch the ground because you didn't want the chance of intercept. Yeah, well, it was over water, but yeah, yeah. I can just see how interception would be bad
Starting point is 00:27:28 because the motorcycle and diamonds problem doesn't actually specify the part where you don't want other people to know what's valuable to you. Right, exactly. Or what resolution you can gather information at. That was probably the most important secret of the secrets. I mean, everybody knew everybody was taking pictures of everybody else.
Starting point is 00:27:48 As fast as you can, as much as you can. But the quality that they were getting was really pretty good. Huh. Okay. And before that was college, right? Yes. Okay. And you did math and then you also did a teaching credential.
Starting point is 00:28:04 That's right. Yeah. Yeah. I spent a year learning that I wasn't cut out did a teaching credential. That's right. Yeah, yeah. I spent a year learning that I wasn't cut out to be a teacher. Oh, yeah. It's different. I mean, teaching versus engineering. Well, really what it was is that teaching somebody,
Starting point is 00:28:17 I had done some tutoring and stuff in high school and college and, you know, the sort of the imparting of information, that sharing and the sort of the aha moment from coming from the other side, you know, that's really fun. But it's way different teaching somebody that wants to learn than teaching a classroom full of kids that really don't want to be there, you know. And I didn't have the way, I didn't have the tools to get through to that level. So I wound up not teaching. Okay, so how old are you? 65.
Starting point is 00:28:51 Any plans on retirement soon? Not soon. But I have a new granddaughter. Congratulations on that. Yeah, she's six months old now. And it has occurred to me that by the time I'm 70, she'll be five. And that's a fun age.
Starting point is 00:29:13 And that's about the right time to teach her how to paddle a canoe. So, you know, I have a canoe, I know how to use it. And that's kind of my rough plan is I'll probably keep going another five years. Because you're still having fun. Yes. I love it. I love what I do. I go into the office and I look forward to it. I work out at the gym.
Starting point is 00:29:36 That's work. And then I go have fun. What do you like best about it? The problem solving. The sort of throwing your brain at a at a a situation you know it doesn't it doesn't almost doesn't matter what the problem is i mean you've talked about my career i've worked on a lot of different things but uh having a an end result in mind that you want to make something happen whatever whatever that is
Starting point is 00:30:10 it doesn't matter if it's a physical thing if it's a visual thing uh and or whatever and then making that happen making it work i think that's what draws most people into engineering. Yeah, it's the practical aspect of it, you know. I mean, and I really enjoy mathematics. I'm not really that good of a mathematician, but I enjoy it. I loved working on, I actually got to do a little bit of work on the square root one time and that was that was fun because it was it was an optimization and it was but it the thing that that i do in interviews is i is i i have a bit manipulation quiz problem that that i ask people to solve and see because it's not
Starting point is 00:31:08 something that a lot of people really have to do and see it happens that i'm doing that now again but but that's that's that's i really enjoy that that level of of kind of fiddling around with things and the the optimization was basically fiddling around with the exponents of the transform, rather of the... Function. Function. Well, no, actually the exponents of the floating point numbers
Starting point is 00:31:35 and range checking and sort of the just really, really basic stuff, but just masking and shifting and, you know, whatever and making that faster. And finding the pattern so that you can do this optimization. Oh, yeah.
Starting point is 00:31:50 Yeah. I mean, if it was a random number, you couldn't optimize out the steps, but square root isn't, but it isn't linear and it isn't anything else. It's special. Yeah, that's right. And so, you know, I got to relearn a little bit of calculus and I got to, so, you know, that was a lot of fun. I sometimes feel that as I get older, I get more forgetful or it becomes more difficult to learn. Do you find that? Yeah, no. I mean, the forgetful part, sure. I mean, you know, the Dave Barry quote, the nouns go first.
Starting point is 00:32:26 Yeah, they do. But he was an engineer, right? He isn't an engineer. I have to tell you that the three-letter acronyms go first. At least that's what I find true for me. You know, I'll be struggling to spell FFT one moment. Luckily, most of them go out of date pretty fast. Yes, that's right. Well, and people appreciate from, you know, luckily most of them go out of date pretty fast. Yes,
Starting point is 00:32:45 that's right. Well, the people appreciate it around you if you don't use them so much. Yeah, I know. I actually had my, my current manager, uh,
Starting point is 00:32:54 asked me not to, to acronymize my thing. So I spell it out every time I write it down, I spell everybody else's, you know, is, is got the initials for it, but,
Starting point is 00:33:03 but I always, I always write it out longhand. So how do you stay current? By solving problems. I didn't know C++ until I joined the math group. But I got a real bath in the FFTs because they're highly, highly templatized in our implementation. And so, yeah, the compiler earns its keep when we build our FFTs. So do you like C++? We've had some discussions about C versus C++ and kicking and screaming
Starting point is 00:33:46 engineers going into the new world and finding out it's both much worse than ever promised and much better. The new world. Yeah.
Starting point is 00:33:55 Yeah, I mean, you know, the language has some benefits. You know, I mean, the thing that's really good about it is, again, not having to write all that stuff out. That you can have a consistent set of operations on different data types.
Starting point is 00:34:19 That's really useful. I like that part. It's also possible to completely bamboozle yourself with with template spaghetti you know so and and so that you know there's trade-offs it's you know it's like any other tool you know you can you can abuse it you can use a a monkey wrench to pound in nails but it's really not what you should do so in your career it didn't look like you had any startups no that's true I always worked for big companies the best experience I had
Starting point is 00:34:51 was working for companies that I was working at headquarters I didn't know that that was the case until I worked for 3Com which was kind of late into my career but it's much better
Starting point is 00:35:06 working at HQ than not, at least in my experience. We work remotely a lot, so I'm sort of out of the habit of working at HQ. What makes it better? You know, I think you're just closer to where the decisions are really getting made. And I think that's better. The communication is better. Usually the food is better. Yeah, I wouldn't be too surprised. They really have a pretty decent cafeteria at NVIDIA. Every once in a while they fall down.
Starting point is 00:35:45 I was on the Apple campus recently and a friend had moved from one of the buildings that was just across the street to the central part and she was like, this is totally different. It's like a different company.
Starting point is 00:35:57 Yeah. Yeah. When I was at, I guess, HP turned Agilent, all of my friends were going to startups and it just it was like uh 1999 and it was just it was so the bubble you weren't drawn to any of these wackadoodle places in a way you know i mean when i when i joined nvidia they were just really kind of
Starting point is 00:36:27 coming on online in terms of of so that they were pretty close to a startup i mean they're they still had pretty much startup mentality when i joined them uh and that was my big leap of faith you know i mean as far as joining a quote-unquote small company. My badge number is 1111, which has all the Asian guys really jealous. But one's a good number. But yeah, anyway. But a thousand people? That's so many.
Starting point is 00:36:56 Yeah, I understand. I mean, because of course... Well, they got there pretty fast too, because I mean, it was the mid, let's say 96, 97 when they first released their first product right right yeah that's right yeah yeah so they were really growing fast when i when i joined and you didn't look like you had any big breaks in your resume no stints for consulting for a couple years no going back to school no just no i don't have with all this i don't have the
Starting point is 00:37:21 discipline to go back to school that would be i don't think i could do that yeah no i i haven't uh haven't felt like i needed a break i've had a couple good sabbaticals but uh do you do anything technical on your sabbaticals or did you use it as a time to really get away from tech uh well so 3Com was actually the only place I got a sabbatical. And I went backpacking for
Starting point is 00:37:48 three weeks. And I did a week on my own. I did a week with my Girl Scout troop. And then I
Starting point is 00:37:54 did another week on my own. And that was a good break. That was a good break.
Starting point is 00:38:00 And I came back and the first meeting I went to was this organizational thing, a project tracking meeting. And I swore at them and I said, whatever I said, and I've been away in the wilderness for weeks and now I'm back at work. You brought me back that fast. You know, it's too bad.
Starting point is 00:38:23 Because 3Com was not always a fun place to work. I liked the job. The work, the technical work was great. But they were kind of on the way downhill. You know, I rode them down quite a ways down their slide. Is it more important to have a good team or to have interesting technical problems? Hmm. Yes.
Starting point is 00:38:48 Ideally both. Yeah, yeah. I mean, a team where there's not a lot of mutual respect can really ruin a good technical problem. But I haven't had that experience. So that's, I have to say, I've been lucky. With many senior engineers, there's a lot of bitterness and cynicism. Hey, I'm right here. And it does seem to correlate with experience, possibly with startup experience, which might
Starting point is 00:39:21 be how you seem to be avoiding that. But how do you avoid it? How do you help others prevent becoming cynical with teams? I mean, teams don't always respect engineers. Teams don't respect each other. Yeah, that's true. I mean, I think it goes both ways, right? I mean, you get reflected back to you a lot of what you carry into a conversation and uh the one thing that i that i will say does happen
Starting point is 00:39:54 it's happened everywhere i've worked is there there are individuals that don't have a very wide input channel they have a wide output channel and that's just not my style you know i i i try to try to have some balance between hearing what the other person has to say and i'm not always good at it but hearing what the other person has to say first and then you know putting in my own two cents and sometimes it's hard to get that the the two-way conversation going yeah i guess the other thing is there's some style things you know uh and i had a boss one time who was uh like a shotgun he would do 20 things 20 approaches at once to solve a problem and and keep them all going in parallel and that's not my style uh i'm more of a you know pick a direction auger in that way and if it doesn't
Starting point is 00:40:52 work then back out and try another direction but um this guy and he was effective at it you know so fine you know i just got out of his way you know it was okay um so yeah so it's a matter i think of of a certain amount of tolerance yeah and the reflectivity is a good point the people i know who have a lot of bitterness and bring it to the team tend to make the team more bitter and that makes them more bitter and it it really is a downward spiral um but what about boredom you're you've been doing ffts at least twice now um don't you get bored doing the same thing yeah if you i mean if you look at it every everything i've done what i'm doing what i'm doing now is is wildly different than working on FFTs, which was wildly different than doing random numbers, which was, it was going from 3Com to NVIDIA and continuing doing network drivers. You know, that was kind of probably the one thing I did for longest.
Starting point is 00:42:12 But there's always some new challenge. I mean, in the days when I was working on Ethernet drivers, it wasn't enough to fill the wire. It was to fill the wire with the fewest CPU cycles expended. And so there's always a way to improve, to invent another widget in the hardware that helps you not have to spend as many CPU cycles. And so it's not the same problem. It's a different problem.
Starting point is 00:42:43 And you don't get lost in the tediousness. No, no, I don't. I mean, I'll sometimes get a little frustrated when I'm trying to get some code to work and I've just been kind of sloppy with the way I put it together. And so slogging through the 200 compiler errors, you know,
Starting point is 00:43:10 is, is tedious, but you know, that's, that's just part of the job. When I, when I started in, in,
Starting point is 00:43:17 on the CDC 3,800, it was key punch days. And so you write everything up on a coding sheet and you hand it to the key punch operator who punches it up for you you get your card deck back and check it and then you wrap it in two layers of brown bags because it's top secret classified and you hop on the back of a motorcycle with this other guy that i was working with and go over to the to where the computer was because it was in the satellite test center uh not in the office we didn't work in the same building as the as the 3800s um anyway so you know go down the street and and put in your card deck and run it or if you have somebody else do it and get it back overnight the first time i had a compiler that
Starting point is 00:44:06 i could actually run iteratively from a console that was just heaven that was like oh my gosh you know i don't i don't actually have to wait overnight thinking i can i can make a mistake and and it doesn't take me forever the fftFTs, on the other hand, because they're so heavily templated, if you change one of the inner files, you're in for an hour wait to build them. And that was just painful. Don't you work at a company with massive supercomputers? Yeah, yeah, but they don't...
Starting point is 00:44:39 We don't compile on them, unfortunately. That's the next job. So what's been like that more recently? What tool or feature or change has had that level of, oh, wow, this is better? Oh. Well, so when I started working on this new project, uh, I'm, I'm sort of integrating what I'm doing into another set of infrastructure. And as I start to talk to them about that, they say, well, could you use protobuffs? I don't know. What's a protobuff? You know, and this is, this is the way my career has been, right? Can you code in C++'m sure let me let me go learn i can't not code yeah right exactly i mean yeah so it's it you know and and that actually is another thing if you want to know about the the boredom factor is i don't i
Starting point is 00:45:36 don't go out and and take courses and stuff i learn what i need for the job when I'm doing the job. So anyway, so Google has this construct called protocol buffers that basically are a scripting language that you write, and they generate all the C++ objects for you. And they do all the tedious bits about, well, they do compression and you can add elements. They have repeated elements and you can just sort of add them at will. And they take care of all the allocation stuff behind the scenes. They generate all the C++ methods for you. And so a lot of the sort of the drudge work of writing itty bitty C++ objects is taken care of for you by this protobuf thing.
Starting point is 00:46:28 It's a useful tool. I don't know if it's efficient. I'm almost afraid to look at the code it generates. Well, sometimes you need efficiency in getting things done fast for yourself. And sometimes you need the processor to do it fast. And those are different coding styles. Yeah, they are. And I'm not too
Starting point is 00:46:50 worried actually at the moment about the sort of the run time efficiency of what I'm working on. It needs to be within reason, but it doesn't have to be optimal. Do you think your experience over your career has made you a better engineer?
Starting point is 00:47:09 Oh, yeah. In what way? I think I know where the bodies are buried. I think I know what to look for. I think I know when something's going to be a train wreck. I can pretty much always tell when some other engineer is telling me what he wants to think is true when in fact he hasn't done his homework, you know. We do get good at faking it. Yeah. And it's good that people can call us on it sometimes, but we get away with it much too often.
Starting point is 00:47:41 Yes, I know. I know. So yeah, so i'm in the process of one of those little exercises now and it's it's it's interesting does anything surprise you or do you uh find the kind like you said the kinds of similar mistakes cropping up and it's oh it's this again oh yeah well yeah well the thing that always surprises me and it doesn't happen all the time but every once in a while um i'll generate a piece of code and it'll just work the first time, but every once in a while, I'll generate a piece of code and it'll just work the first time. Isn't that a shock? That terrifies me and worries me. I just assume that I must not have compiled it
Starting point is 00:48:13 or it's just broken and I don't know how yet. Why does this work? I'm not observing correctly. It looks like it's working, but it's really not. Exactly. Are there ways that your experience works against you oh no i not exactly i i would put it a different way maybe i i tend to um as i had said you know i tend to take a direction and kind of run it to ground and a lot of times i'll have a
Starting point is 00:48:42 preconceived notion about in case of a you know looking for a bug or something'll have a preconceived notion about, in the case of looking for a bug or something, I'll have a preconceived notion about what must be going on under the covers. And I tend to hang on to that a little bit too long sometimes, I think, before I start getting my head back up out of that particular morass and think about what all the inputs are. Am I using all the data? Back to my sort of problem-solving roots. So if anything, but again, that's a case where I know that about myself. And so as I get older, I think I tend to kind of self-examine. Maybe I'm sticking with this one too long. I'm better as an engineer than I was at 20, for sure.
Starting point is 00:49:30 I'm more patient and more persistent and I'm much better with people. What can I expect for the next 20 years? I think it's just a matter of evolution. I don't think it's, I wouldn't say that I'd expect anything revolutionary. At least I haven't experienced anything revolutionary. But you just get broader. You learn new things. You adapt to the way the environment, the programming environment uh the tool sets whatever you just you just sort of adapt to that and it it gets easier it gets easier to learn if you if you're used to learning you know that's the the thing that um yeah that's that's the thing i think that's that's
Starting point is 00:50:22 most important is just assume walking in that you can learn whatever you need to do to do this job. I was going to ask if you had any advice for new college graduates and I think you just gave it. Yes, in fact, and that's a true statement. You know, you go to college, you should be learning how to learn. Yeah. You should, and you know, it almost doesn't matter the subject i mean it's it's helpful i mean if i if i had had formal courses in c++ uh i would be more familiar with the standard libraries and i would know more about the standard you know all the the usual suspects and i would know about
Starting point is 00:50:57 uh the patterns and those things you know but i can learn that stuff you know it's if i didn't if i didn't know how to learn i'd be stuck i'd be stuck with whatever i had studied i know some people have taken a break voluntarily or not and now they're afraid sort of or or trepidatious, is that a word? That's the same as afraid. All right, well, they're worried that they can't get back into the tech world because there's too much to learn and it's just a giant wall. Do you have any advice? Yeah, don't do that.
Starting point is 00:51:44 Don't be afraid or don't take a break? No, I mean, it's fair to be afraid. I mean, you know, when I took the leap from the math library stuff to what I'm doing now, I was afraid. But that's not a reason to stop. You know, the thing that I think would be difficult having been away would be kind of being out of the habit of learning, for one thing. And it's true, you know, the technology goes pretty fast. And I could imagine that might be a time when you might want to look around and say, okay, here's a, here's a technology that I really should learn and go through the
Starting point is 00:52:28 act of learning again, even if it's not going to be the thing that gets you your next job. But, but just the, the idea that you're, you're keeping your hand in, you're, you're, you're making progress in your own development. I mean, it's easy for me to say i haven't ever had the experience but but i think that practice is very important it's one of the reasons i really like the online courses because you can make that measurable progress and remember that learning not only isn't always painful, it can actually be fun sometimes. Oh, yeah.
Starting point is 00:53:06 And once you remember that joy, it all becomes a lot easier. Yeah, that's right. I mean, it's like backpacking. You know, there's the getting there and the being there, you know, and both are worthwhile. Yeah, but sometimes you're hiking up that hill and you're like, why? Yeah. Why am I doing this? This is my free time? Yeah. Well, I like what you said about it's okay to be afraid because that is, I mean, you don't want to be panicking, but a little bit of fear is a signal that you're
Starting point is 00:53:36 challenging yourself, right? Oh, yeah, absolutely. Yeah, you should be a little bit. I think the thing that I would say to employers, though, is that I think that a lot of employers don't understand the value of somebody who assumes they can learn whatever they need to know, as opposed to who already has on their resume exactly the thing that the employer thinks is needed. And so I think a lot of resumes don't get looked at twice that maybe should, because they don't have the right buzzwords. It's hard to put enjoys learning on a resume
Starting point is 00:54:22 and have anybody take you seriously. Yeah, I know. I know. Exactly. And I think that's a problem. It's like my greatest weakness is my willingness to work too hard. Come on. Yeah, yeah. Have you, well, I know some people.
Starting point is 00:54:41 We had a guest not too long ago a talented engineer who said uh well i'm 40 and i'd better work on important things because i'll only be an engineer for a few more years and that it just kind of made my brain fizz like really why what um do you see people like that? Um, not so much. Um, I see people that, that are in engineering that really aren't enjoying it. Uh, and that's too bad because it's, it's too much fun to, to, to not enjoy it. Um, and I could, I could imagine, you know, somebody with that kind of mindset or that just wasn't really having fun anymore, thinking that it's getting old and that they're going to burn out on it. But that's not me, obviously. I've been at it for 40 years now, so 42, I think.
Starting point is 00:55:39 And do you ever feel like you've topped out? No, I mean, I... What does that mean? Topped out like you can't learn anymore or topped out like you can't advance any further? Not advance any further. Yeah, I mean, you know, they ask you, where do you want to be in five years?
Starting point is 00:55:57 You know, that's always the... Yeah, how do you answer that now? Because I haven't had a good answer for that in about 10 years. I like that question. I mean, now I have a pretty good answer. I don't want to be on a canoe with my granddaughter. But, yeah. And my answer for probably 20 years has been, you know, I'm enjoying working at the level I'm working at.
Starting point is 00:56:18 I'm enjoying being an engineer. I want to learn new stuff. I want to work on different projects. That's enough for me. I don't want to be a manager for sure. Have you done the manager thing? Oh yeah, I did for a couple of years. Everyone should do it for a couple of years. That was not the picture of, oh, that was fun. No, that wasn't fun. That wasn't fun. And it wasn't because of the people under me, it was because of the people over me. But there's a story there, but I don't need to go into it.
Starting point is 00:56:47 I just, I got crossed by one of my upper managers and it had to do with the salary of one of my reports. And it was really unpleasant. Yeah, I think that's experience that a lot of people have when they move from engineering to management. It's not, oh, you have this whole team and now you can accomplish this. Oh, no, you have to talk to these people and your job is to actually protect these people from these people.
Starting point is 00:57:11 And it's not what you think. The upper people don't think your job is to protect. They think your job is to exploit the lower people. And you think your job is to protect and it goes very badly sometimes. It doesn't have to be that way. But I had a bad experience and I just said never again. So that was.
Starting point is 00:57:28 Did it make you a better engineer? That's an interesting question. For me, the answer is definitely yes. I gained a much greater understanding of why my managers do what they do and why they want schedules and what's probably going on in their lives when they tell me stupid things. Yeah. of why my managers do what they do and why they want schedules and what's probably going on in their lives when they tell me stupid things. Yeah, and I have a manager now
Starting point is 00:57:50 who's really good for me. He's got a way of helping me be a little more disciplined about my organizational skills and setting sort of short-term goals and hitting them one after the other. And that's really healthy for me, you know. And so that's fantastic. I mean, I haven't, you know, there are all different managerial styles and I just happen to have fallen into another good one.
Starting point is 00:58:20 And you're still getting advice and you're still taking it. Oh, yeah. Yeah. Yeah, I think that's important. Do you have any advice for people feeling like they've reached the end point of their career and they can never be more than senior engineer? Is that a problem? That's the advice. That's it right there.
Starting point is 00:58:39 That is actually the advice. Yeah, I think so. Why is that a problem? Sure, you went from intern to junior engineer to engineer to senior engineer in five years. That was great. You were fantastic.
Starting point is 00:58:50 You were a genius. But what about brigadier general engineer? And there it stops. Admiral engineer. Why is that a problem? Yeah. Yeah.
Starting point is 00:58:57 You know, it's not for me. You know, go find another problem to solve. If you're working in a company that everything is the same every day and you're tired of it, go find another problem to solve. If you're working in a company that everything is the same every day and you're tired of it, go find another problem to solve. It happens to be a fairly good time in the industry now to be looking. Oh, yeah.
Starting point is 00:59:15 If you're tired of what you're doing, go do something else. There are so many jobs. Was there a time when you went from being one of the youngest people in the office to realizing you were one of the oldest no no although i guess um it there was a point in a meeting where i realized it happened to be my birthday where i realized that the digits of my age in hex were the reverse of the digits of my age in decimal. And so I mentioned this to the- I feel like we should make that a puzzler or something.
Starting point is 00:59:56 I mentioned this to my group and anyway, and so I won't give it away. Everybody else can figure it out on their own scram match scribbling on the paper here but uh but anyway yes uh and it turns out really at nvidia you know it's it is a pretty young company uh they have a lot of young guys there but they have a lot of graybeards too you know there there's there's some some some seniority in the upper ranks and the higher engineers and architects. And so I don't feel stranded at NVIDIA in the least. Silicon Valley has a bit of a reputation for ageism.
Starting point is 01:00:37 Have you ever noticed it? No, although I'm pretty sure that, although I don't expect it to happen, but, but that if I were to be laid off, I would experience it right now, you know, at, at my age, would I expect to, you know, just drop into another great tech job? Probably not. Probably not. That's tough. And you have been in NVID nvidia for long enough you haven't had to look for a while that's right that's right and and you know the the job i'm on now kind of just came to me uh which is great you know but that's a result of being you know established at a place and for for a number of years i have built up sort of a reputation, you know, for being competent. And, you know, people trust that if I take something on, I'll get it done. And that's, that would be a hard thing to sell, I think, at my age, if I were just looking off the street cold, if I didn't have a reference, if I didn't have somebody on the inside that,
Starting point is 01:01:41 that had worked with me before and knew what I could do. But you've worked all over the industry, probably do have people on the inside for a lot of places i do that's right yeah so you know it might it might go both ways uh but yeah when i when i joined nvidia there were a couple of questions they weren't i mean they hired me obviously so it wasn't it wasn't like that that they were concerned, but they're kind of along the lines of, uh, you know, you're, you're, you're getting along in your career, you know, and I just said flat out, I'm not tired yet. I'm still having fun. As a manager, when I asked people, what did you want to do in five years? If they didn't have an answer,
Starting point is 01:02:25 it was hard because it meant that I didn't have a way to motivate them. I didn't have a way to encourage them. And I found that difficult. You know, everybody has buttons and levers and you just took away one of my buttons. Now I have no way to A, tell you you're doing a good job or b convince you that this job will continue in a direction you want to go have you had managers try to push you in directions you didn't want to go no not really not really man you just had a charmed career it's annoying i it what i've been lucky i will freely admit i've i've been lucky i've i've enjoyed it you know if you were 20 something and unencumbered by grandchildren or children or girl scout troops what what would you go into oh you mean would i do it over again
Starting point is 01:03:21 would you do this would you do biotech would you would you do embedded systems would you do it over again? Would you do this? Would you do biotech? Would you do embedded systems? Would you do space? What is the most exciting thing for you right now if you could choose anything to start? Yeah, I don't know. I guess I would be hard-pressed to pick something that is better suited for my, sort of what I see as my skills, my abilities.
Starting point is 01:03:48 Than to be working at the interface between hardware and software. And designing on both sides. That's contributing to the problem solving on both sides of that interface. That's what I, I understand how that works. And it'd be hard to pick something else. It'd be hard for me too. So, I totally agree with that answer. And I don't think
Starting point is 01:04:14 the whole embedded software is going away anytime real soon. I know. I think we've got a while yet for the robots to figure out how to replace us. A friend of mine, her husband moved up to Seattle some years ago. This is back from Olivetti days. What is he going to do up there? Work on windows for pay toilets.
Starting point is 01:04:38 I just thought of that as a really odd answer. I believe it was embedded Windows. Yeah. No. Things we get to do as engineers. What? Do you have a final question?
Starting point is 01:05:00 Oh, is that what the nod was for? Well, it was actually because I typed you a suggestion for your final question in case you didn't have one. Paying attention to the interview here. I'm not just... I know, I know, I know. And then you tell me my typing's too loud. This is, yeah. 151 episodes.
Starting point is 01:05:15 Insert Bacardi rum joke right here. Okay, one more question. Was there any point you made a decision that you look back on and think, well, if I hadn't made this, things would have gone much differently? Oh, yeah. Well, yes. That would be the very beginning of my career. Because it was kind of a tough time. It was after the first big oil crisis.
Starting point is 01:05:40 And first time people had experienced, you know, lines at gas stations and it was a little hard looking for work when I was just out of, uh, out of my, my, uh, teacher credential program with just a math major. And, uh, I had two offers. I had an offer in San Francisco in a high rise to be an actuary for an insurance company and i had an offer from general electric space division to go do uh satellite control basically a glorified operator computer operator uh and i took the GE job. And I didn't really know that much about computing. But I got there and I had a six-month wait before I got my clearance. And that's when I learned how to code in Fortran and Jovial.
Starting point is 01:06:38 And I haven't looked back since. So there's another universe out there where you're an actuarial person? Yeah, that would have been a possibility. I'm pretty sure i wouldn't have enjoyed it as much i might might be wrong but uh but that was a that was a that was a fork in the road you probably would have ended up at the nsa forensics accounting it's pretty cool i could see that all right well i think we have kept you long enough um do you have any last thoughts you'd like to leave us with? Yeah, I think that we already touched on it, but it's this. It's just assume that when you're looking at a project that scares the heck out of you, that you can learn whatever you need to learn
Starting point is 01:07:27 to make it happen. That is excellent advice. My guest has been Paul Sidenblatt, architect and software engineer at NVIDIA. Thank you so much for being here. Oh, you're welcome. It's been a great conversation. Thank you also to Christopher
Starting point is 01:07:42 for producing and co-hosting. And of course, thank you for listening. Please also check out our blog and newsletter. If you are so inclined to send newsletters, you can find it all on the Embedded FM website, along with a contact link if you'd like to say hello, which you're welcome to do, or to tell me what the answer is to that hex problem, which I will have figured out by the time you said, nevermind. We'll be here next week. In the meantime, here's a final thought.
Starting point is 01:08:09 This one is from Neil Gaiman, The Ocean at the End of the Lane, which was a fantastic book. Grownups don't look like grownups on the inside either. Outside, they're big and thoughtless and they always know what they're doing. Inside, they look just like they always have, like they did when they were your age. Truth is, there aren't any grown-ups, not one
Starting point is 01:08:31 in the whole wide world. Embedded FM 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, Thank you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.