351: Dextral or Sinistral
Transcript for Embedded 351: Dextral or Sinistral with Christopher White and Elecia White.
EW (00:06):
Welcome to Embedded. I am Elecia White, here with Christopher White. This week it's just us.
CW (00:12):
Just us.
EW (00:14):
So what do you want to talk about?
CW (00:16):
I want to talk about nothing that has happened in the last two weeks.
EW (00:21):
Okay. Well, I don't know if we're going to succeed entirely in that.
CW (00:25):
Okay.
EW (00:28):
So one of the first things I wanted to talk about was transcripts.
CW (00:32):
Again?
EW (00:33):
I know, I know. But I'm so excited about them and I'm not sure anybody's really using them.
CW (00:37):
Okay. All right. Go for it.
EW (00:38):
Somebody should take them and do something with them.
CW (00:43):
Like read them?
EW (00:45):
Read them or, I don't know.
CW (00:48):
All right. Well, we have transcripts.
EW (00:49):
We have transcripts. Still pretty exciting.
CW (00:51):
They're fun to read. Let us know if you use them.
EW (00:54):
Yes. That's probably what I should've said at the start.
CW (00:58):
All right. That's the show.
EW (00:59):
Okay, so NumPy or Matlab?
CW (01:05):
Who am I?
EW (01:08):
Christopher White?
CW (01:09):
No, it's hypothetical. I'm this hypothetical person who's choosing between the two. Am I a software engineer? Am I a graduate student doing computational simulation of something?
EW (01:22):
Let's go with the graduate student.
CW (01:24):
I don't know that I still wouldn't choose Matlab if it was provided to me, because, look, okay I used Matlab in grad school for my research, which was mostly solving differential equations, nasty nonlinear differential equations, for simulating, what was I doing? Solar system formation or something like that. Basically, it was a lot of the fluid dynamics kind of stuff with some gravity thrown in. It didn't work, I never got it to work. Anyway. Matlab is focused on doing math entirely, so there's not a lot of machinery. It didn't feel like I was sitting doing programming exactly. It felt like I was just doing math.
EW (02:16):
And you don't get that from NumPy?
CW (02:18):
No, because there's all the Python involved.
EW (02:22):
I mean, you can do just math. It's just that you can do a lot more.
CW (02:26):
You can do a lot more with Matlab, too. I'd want to know what the least friction was for somebody to get going on solving computational problems if they've never done programming before. Traditional programming. That's kind of where I'm coming from with the question. If you've done programming before, fine. NumPy and Python is probably the way to go. But if your focus isn't the programming, it's on doing the computational stuff, I don't know. I mean, it's not a strong preference.
EW (03:01):
But see, I actually wrote the question initially NumPy versus Python, which kind of shows my biases there. Just a little bit. I mean, I used to use Matlab all the time. I spent, I think, four years seriously using Matlab as part of my career. Some of which was spent taking somebody else's Matlab script and making it work in an embedded system. But still, I was very fluent. And every time I left a job, I didn't have access to Matlab anymore, because it's so expensive. And NumPy is free with the Jupyter Notebooks, it's super easy to share. And I just-
CW (03:50):
For our hypothetical-
EW (03:51):
... I love it.
CW (03:52):
... graduate student, NumPy is not enough, because I don't think NumPy does complex... I think you need SyPy-
EW (03:59):
Well, yes.
CW (04:01):
... on top of that, plus some graphics packacges.
EW (04:05):
SimPy and Matplotlib. But I don't think they should be teaching Matlab. I think it would be better to start with NumPy as a graduate student.
CW (04:14):
Yeah, I don't know. Like I said, it's not a strong preference, and certainly you can do everything in either.
EW (04:22):
Yeah.
CW (04:24):
Matlab had the toolboxes and stuff, which made a lot of things a lot easier.
EW (04:29):
So does NumPy.
CW (04:29):
Does it have the DSP toolbox? I don't know. I'd have to sit down and think about it and look at how I would've done, maybe I still have my old grad school stuff, and see how easy it would be to translate.
EW (04:41):
With OpenCV it has a huge-
CW (04:44):
OpenCV?
EW (04:46):
... imaging processing.
CW (04:48):
Oh. Yeah.
EW (04:50):
So I bet there's a DSP out there that I've never used. I know there are a couple of PID libraries. Of course, the problem with that is choosing one, and that's one of the nice things about Matlab is it's all, "This is what you're supposed to use."
CW (05:04):
Right, right. And I guess that's my point.
EW (05:05):
But if you stick to the big packages for NumPy and not the things that are single files off of GitHub that you really should be reading instead of just using. I just, I really like NumPy. I guess because it's free and open and so many other people use it and it's so shareable.
CW (05:26):
And that's probably what pushes it over the edge. I mean, like I said, you can do it in there. I just felt like Matlab, I felt like it was a little easier to translate whatever was going on mathematically into code and after spending several weeks of trying to do that a particular ML problem I've been having, there's some arcane things in NumPy.
EW (05:51):
Okay, that's true. I shouldn't have asked you after-
CW (05:53):
If you're trying to manipulate matrices and arrays, I mean, obviously, that's what NumPy's designed to do, but it's not 100% intuitive.
EW (06:07):
Do you think you could've chosen some random section out of an array in Matlab?
CW (06:13):
Yeah.
EW (06:16):
As easily, I mean-
CW (06:17):
I think so. I think it had similar slicing capabilities.
EW (06:21):
Oh yeah, similar slicing capabilities but you're trying to-
CW (06:24):
Oh, the thing I'm trying to do? Oh, the problem I'm doing. Ignore the immediate problem, the final bit that I'm trying to solve. But all those things that I was talking about, I don't know, somebody write in and tell us we're both wrong and that you should be using Mathematica.
EW (06:37):
Octave.
CW (06:40):
I remember trying to use Octave all the time and it's fine and then I end up buying a Matlab license.
EW (06:44):
Yes.
CW (06:45):
I don't know. Yeah, I mean, I also use Matlab at work doing image processing stuff and I don't use Python in kind of immediate mode.
EW (06:57):
You don't bash at the keyboard. I do bash at the keyboard.
CW (06:59):
I mean, I know I can, but I don't tend to do that, because I feel like I'm in programming language and I forget that there's the REPL. Matlab I always felt like, "Oh, okay. I got to figure out how to do the processing pipeline. Well, let me just start typing and I'll load in the file and I'll do this and this and this." And then, at the end of it, I've got a history of commands that happen to do what I wanted and then take that and put it in code. That's probably my failing, not approaching Python correctly.
EW (07:21):
And you've used Jupyter, so you know that you can do small commands at a time.
CW (07:26):
Okay. You've convinced me. Stop using Matlab everyone.
EW (07:28):
That wasn't really where I was going, but sure. Have you been up to anything fun lately?
CW (07:41):
No. Not at all. I've lost the ability to motivate myself to do anything. Oh sorry, this isn't my therapy appointment. What fun things have I done? Well, for Halloween we did a bunch of stuff, did we talk about that? We didn't talk about Halloween at all.
EW (07:56):
We talked a little bit about it with Ben, but that was hard because we were doing timey wimey things.
CW (08:01):
I've done more 3D printing in the last month than ever. Having had a 3D printer for years, I think I used it way more in the last week then the entire time I owned it.
EW (08:11):
You printed the little articulated thing, which went over swimmingly.
CW (08:18):
I printed a bunch of toys for some kids that came over and did our outdoor socially distanced-
EW (08:24):
Scavenger hunt.
CW (08:25):
... separated by glass and doors scavenger hunt. And I printed a light saber, which was super cool.
EW (08:31):
Oh that was super cool, we should have a picture of that.
CW (08:33):
It's an exact replica of Obi-Wan Kenobi's light saber.
EW (08:36):
It went really well with your bathrobe.
CW (08:37):
That took a long time to print. My bathrobe. It's a Jedi robe.
EW (08:46):
And it's fuzzy.
CW (08:51):
Yeah, and then I painted it, which was kind of cool. I hadn't done a lot of model painting, and I actually did a decent job, I thought, with this stuff called Rub 'n Buff, which I'd never heard of. Yeah, it sounds bad. But I spray painted a... this is what people listen to the show for, right? I spray painted primer on the 3D printed thing and then gun metal, and then let that dry. And then, I used this stuff called Rub 'n Buff, which is like a wax-based paint, but you just apply it with your fingers. I wore a glove... it smelled pretty nasty. But it came in a four pack of gold and silver and very metallic shiny colors, and then you just rub that on the thing, and it comes out looking really old and burnished and dirty and kind of used. So the metal sections of the light saber came out really good. It was really simple and made me look like I knew what I was doing when I absolutely did not.
EW (09:50):
It did. It looked really good. Let's see. And I made origami-
CW (09:55):
What? You made origami.
EW (09:56):
... I mean, we also gave out candy for the Halloween thing, but there was origami and 3D printed things. I guess, next on the list is to talk about Python seashells. Should we really talk about that? Do you think anybody really cares?
CW (10:15):
Yeah. Yeah, I care.
EW (10:18):
Okay. Imagine you have a snail shell and there are a few parameters that can describe the snail shell, and one of them is how far up it goes. If you're looking at the snail tummy side down or the shell with the open side towards you, the aperture, then you're going to have an axis of coiling and you're going to have a translation, which is how far does the shell coil that isn't around a single plane. A single plane would be planispiral, and that would be a nautilus. But snails don't do that, they coil out a little bit, to the left or to the right. And yes, snails can be left-handed or right-handed, it's called dextral or sinistral.
CW (11:14):
Okay, let me catch up.
EW (11:15):
Okay.
CW (11:16):
Catch my breath. Okay. Dextral or sinistral. I got that.
EW (11:18):
Axis of coiling. Dextral or sinistral. Aperture. Blah, blah, blah. Anyway, there are all of these parameters that can describe shells and there was this guy in the '60s who said, "Okay, I have a way to describe seashells and it's better than anybody else's. So what I'm going to do, I'm going to go to this new thing called a computer and I'm just going to model all of them, and we're going to see which seashells actually exist." And so, there's this four-dimensional grid of where seashells actually exist, but there are also great chains of extinct seashells that used to exist in this small area over here of this four-dimensional space. And bivalves, clams and stuff, exist over here, and snails over there. And it's just really, really cool.
EW (12:20):
And so, I was looking at this, and I've been trying to make these paper nautiluses with some success. Although, the initial success was luck, because now I've tried to do it mathematically and it's much much harder. But I've been working in Python to develop different patterns that I can then put on my Cricut to score the paper and then I fold the paper, and then, if I'm lucky, I get some sort of shell out. And, for paper, it's much easier to do the planispiral, to make them center-based. Although, I have done a few that have some translation. So yeah, I didn't really expect to get origami and Python in the same-
CW (13:07):
But now you have a Python script or you have it on GitHub, right?
EW (13:10):
Yeah.
CW (13:12):
And it models and gives you the folding patterns to, not print, well, to print or score for any of these parameter spaces?
EW (13:20):
Well, I'm still working on that. I can do some parameter spaces now. Translation is the one I really want and it's the one I don't have. But I'm also looking at growth rates. Some shells you have six whorls per rotation, where the whorls are the thing that goes around.
CW (13:45):
Yeah, I get it. Sort of. It's hard to visualize.
EW (13:49):
And some have a dozen, and some have one. So that's a parameter that depends in paper on the angle you use to fold over. And so, that's a parameter that can be used, and that works okay. And then, how big they get in the end is pretty easy to modify. How many, quote, years of growth they have. Fake years. They're paper, they don't grow like that. So yeah, I've been doing a lot of Python on seashells, and I didn't expect that to be a thing.
CW (14:34):
Not Matlab though?
EW (14:35):
No, I'm using NumPy, Matplotlib.
CW (14:42):
And snail lib.
EW (14:46):
Snail lib. Bezier curves.
CW (14:47):
Are you going to release a snail module? So you can do import snail?
EW (14:52):
I wasn't, but now it's tempting. No, probably not.
CW (14:58):
All right.
EW (14:59):
No, because, actually, it's weird that these same four parameters that this guy Raup came up with also describe bivalves and clam shells. They're the-
CW (15:11):
They're like a trivial corner or some kind of degeneracy?
EW (15:16):
... kind of like a degeneracy, but not entirely. I mean, as this value approaches zero, you start getting the two, the clam shells.
CW (15:32):
Where do you see this shell journey taking you?
EW (15:37):
Well, I want to be able to get to a few different kinds of shells. Nautilus, some snails, and maybe a fancy shell, one that has little protuberances, like the tropical shells. Which, by the way, are only in tropical shells, because cold water shells don't have enough luxury to grow spines and evolution has never made them, because there's just not enough food. Anyway, I want to do something with weird spines and I want all this to be curved creases, which is different from what most people are doing. And, hopefully, at the next gift-giving opportunity, I will be getting a book called Spirals, which is all about flat folding and how to make snails with flat folding, but then they're flat snails, which is kind of sad. Although, they're flat the other way, than the usual flat. Okay, any other questions about...
CW (16:37):
No.
EW (16:38):
I mean, you've seen them around.
CW (16:40):
Yeah, they're around.
EW (16:43):
Well, the open ones are cool.
CW (16:45):
The cross-sections? Yeah.
EW (16:46):
The cross-section that shows all of the septa the little areas inside the shell. That one has been pretty good and it's pretty easy to fold. The octopi are pretty easy to fold, too.
EW (17:03):
This week we are sponsored by Triplebyte. If you're an engineer, Triplebyte is the place to prove your skills, develop your knowledge, and find a job. Triplebyte is unique, because they're a team of engineers running their own centralized technical interview. They evaluation quality is so good that over 450 startups and companies like Apple, Facebook, Dropbox, and American Express use Triplebyte as part of their hiring process. Engineers applying to jobs use Triplebyte because they provide detailed personalized feedback after all of the skills assessments. The Triplebyte team knows that a traditional resume doesn't represent your full potential.
EW (17:48):
Their quizzes and interviews help you prove your technical skills, not your resume writing skills. The Triplebyte network helps you focus on the roles that you are most excited about and find companies that offer what you value most, whether it's challenging technical projects, remote opportunities, generous compensation, great benefits, or all of the above. It's free and background blind for engineers. Take Triplebyte's 20 to 30 minute online coding quiz and let them help you level up faster.
CW (18:22):
You actually did this and took the quiz. What was it like?
EW (18:25):
Well, I was a little embarrassed, because I was trying to get through it really fast just to see what it was like, so I didn't score as high as I would've liked to, but I think I can do better next time. Oh, and I took the machine learning one. I'm not a machine learning engineer, and boy did they let me know. And yet, for the generalist one, I did get invited to do more technical interviews and go further in the process, which would lead to more people looking at my profile. Of course, I'm not looking for a job so I left that all blank.
CW (19:03):
It stills sounds pretty cool and different than the normal Monster.com approach.
EW (19:08):
Yeah. And for people who don't do technical quizzes live, there's still a timed aspect to it, but there's nobody staring at you.
CW (19:18):
Cool. Well, thank you, Triplebyte.
EW (19:20):
Thank you, Triplebyte.
EW (19:28):
Okay, so listener questions. Realistically, I think we have four or five questions and they're all pretty much the same question.
CW (19:42):
Well. I mean, they're not exactly the same.
EW (19:45):
Okay. So from Nixbytes, who likes the show and embedded technology, is a Linux admin engineer by trade and wants to break into embedded programming.
CW (19:56):
Oh, I see. It's this question.
EW (19:59):
BS in computer science, likes programming, open source projects, Linux, C++, Java, Python, JavaScript, Shell. Has played with a Raspberry Pi many times, ESP8266, Rust, low-level kernels. All of those are at home. And he's got a job, and that's cool, but how would he get more into embedded? How would he get more into a job that does things like coding?
CW (20:30):
Oh, he's an IT person it sounds like.
EW (20:32):
I think he's more in the admin, yeah.
CW (20:34):
Well, jeez, I mean, already sounds like he's doing the right things. He's got a lot of experience with embedded things and the kinds of skills you need, so that's not the problem.
EW (20:47):
And yet, I've seen admins totally get sidelined.
CW (20:51):
Yeah, yeah.
EW (20:52):
They get stuck in the, "Can you fix my IP router?"
CW (20:55):
Well, I mean, it depends on if the company he's at even does embedded things. There's plenty of places with Linux admins that don't make things, so that may be an issue, too. So if he wants to change jobs, the question would be how to parlay being an IT person with home embedded experience into an embedded job.
EW (21:19):
Yeah.
CW (21:21):
Go ahead.
EW (21:24):
Okay. You're doing the right things. You're seeing different kinds of chips. You're seeing different kinds of things you can do with them. And now, if you're willing to change jobs, you probably want to go to a startup, because that's the place where you can do two jobs at once, until it becomes untenable and they hire someone or the startup collapses. Of course, if the current job pays well and the startups are a little scary, that's not so easy.
CW (21:57):
Right.
EW (21:58):
You could talk to your current manager and ask. Tell them that this is what you want to do going forward and you'd like them to help, and if they can't, then you'll do more outside and polish your resume. I mean, I wouldn't make it a threat.
CW (22:14):
Yeah, well, and it depends on if there's anything there to do. If he's Linux admin at a healthcare data company, then that's not going to do much for them.
EW (22:25):
I mean, sure, then go learn more about the data and programming to maintain it. And, I mean, some of my best programming at the emergency level has been monitoring systems to find out what's wrong.
CW (22:45):
Yeah, I guess they didn't say really embedded necessarily. Although, they did say, "best way to break into embedded programming," so that's kind of what I was thinking. But if you do want to do more programming at your current job. Then, yeah, you're right, that's a great way to do it. Writing scripts and things and tools, there's always a tool-
EW (23:04):
There's always a tool.
CW (23:04):
... that needs to be written that's specific for your company or your particular area.
EW (23:11):
But you can also bring that into embedded, you put a BlinkM in there, you put a Raspberry Pi that shows lights.
CW (23:17):
Yep, yep.
EW (23:19):
Something that can call you or do something from a scripted point of view. And not just an if this, then that. But a more serious, "I have a Raspberry Pi server that I can log into that will summarize what I need to know."
CW (23:38):
They mentioned Rust and, you know what? That's probably a really good crossover thing, because a lot of companies get their toe in the Rust... boy, that metaphor is not going anyway.
EW (23:56):
Tetanus? The Rust tetanus?
CW (23:56):
No, a lot of companies get started with using Rust by doing tools, instead of throwing it onto their shipping product or something. They start, "Okay, we're going to rewrite this tool or rewrite a new tool that is in Rust. We'll get some experience with it, and then we can add new things with Rust, instead of doing a rewrite." And it works just as well on Linux devices.
EW (24:22):
And Raspberry Pi could do that.
CW (24:24):
And that way, he's learning embedded skills, because learning how to program in Rust is definitely an embedded skill, by way of the job he already has. And so, he can demonstrate something when he goes to another company and say, "Oh, well yeah, I wrote this Linux scripts in Rust to do X, Y, and Z," this monitoring script or whatever, "Let me show you how it works." Having something you've done that's even vaguely embedded-
EW (24:50):
Having a physical thing you can bring in.
CW (24:51):
... of course, you could do that in C, as well. But, if you're trying to break into embedded having something a little unusual like Rust experience, especially now, that's not a bad idea.
EW (25:04):
Sure. And look at companies or activities that have Linux computers as part of their embedded systems. That's a growing area.
CW (25:15):
Yep, yep, yep.
EW (25:16):
And a lot of people don't really know how to use Linux effectively.
CW (25:22):
Does anyone?
EW (25:25):
This person probably would've typed dmesg long before I thought to.
CW (25:31):
That was just a jab at Linux.
EW (25:33):
Well. Okay, so let's go onto the next one.
CW (25:37):
Okay.
EW (25:37):
Brian.
CW (25:39):
Brian.
EW (25:40):
Currently working and going to school, an older student, computer engineering degree. Working non-technical jobs, but would like to eventually do embedded programming and/or FPGA programming. Not sure what to look for. Has talked to the school's resource department, but for some reason, the school says they don't have much in the way of engineering internships and the job place still said there will be stuff on graduation. That's kind of weird.
CW (26:18):
Yeah. Let's come back to that, but go on.
EW (26:20):
Year and a half to go. Wondering if we had any suggestions to look for in the line of a job that would help build skills to put on the resume for the embedded FPGA space.
CW (26:32):
Okay. An internship. I don't know what these people are doing, but they're doing you a disservice, because there's a ton of engineering internships. Even now, with remote everywhere, there's a ton of engineering internships. They tend to be time-boxed, like there's summer internships.
EW (26:54):
And there's winter internships.
CW (26:55):
There's winter internships, but there's a lot more summer ones. I think you need to break out of the school resource department and just find those internship jobs and apply to them.
EW (27:11):
I agree, and being an older student, and having a lot of experience. Well, let's see, he's been the general manager of a Domino's, commercial web printing press, mechanical skills, soft skills. I'm going to again say startup, because you have a bunch of different random skills.
CW (27:32):
Yeah, yeah. The problem with startups is they're-
EW (27:34):
They're not going to help you as much.
CW (27:36):
... and they're also not looking for people straight out of school that often.
EW (27:39):
It's true.
CW (27:41):
So that'd be a worry for me. That's why I think internships are just a great foot in the door.
EW (27:47):
They really are.
CW (27:47):
You can demonstrate, in a low-stakes environment, how good you are. And then, it's pretty often that the convert to full-time.
EW (27:56):
And it goes both ways.
CW (27:58):
Right, right.
EW (27:58):
Because you can decide, "Do I like this company?"
CW (28:01):
And there's a lot of companies, there's a lot of very, very big companies, they all have internships and they may do things that you don't expect them to do, even companies like Netflix or Google or the big names.
EW (28:13):
Well, and Google Summer of Code. This might be a good one.
CW (28:16):
That's an excellent idea.
EW (28:17):
Because they do pay and it's always remote. And if you can find a company who is being sponsored by the Google Summer of Code, an open source project that's being sponsored by Google Summer of Code and you start looking at it now and you start really figuring out what you really want and how you can contribute, well, that may actually turn into a school project. Yay. Double credit. And it may turn into an internship that you can put on your resume.
CW (28:47):
Yeah. I think it's really kind of sad that their school resource department is claiming that they don't have much in the way of internships. That makes me question their relationships with companies.
EW (29:01):
Well, I mean, if it's a small school.
CW (29:03):
Yeah. Yeah, that's true.
EW (29:05):
Check with your professors, too.
CW (29:07):
Definitely. Yeah.
EW (29:09):
It doesn't have to be anything really invasive. You can just drop an email to a professor you like who you think likes you and say, "I'm really looking for an internship. I'm not having a lot of luck. Do you have any guidance."
CW (29:23):
Because they're going to have seen hundreds of students and they're going to know-
EW (29:26):
And companies are going to come to them, and say, "Do you have anybody you want to send to us this year?"
CW (29:32):
They're going to know where students are going, where they've had success, so that's a really good idea.
EW (29:36):
And alumni. Alumni is always a good thing and the professors know the alumni and where they went, and maybe they can help you. Okay. Onto John. We might've talked about John before, but I wanted to do this again.
CW (29:49):
Okay.
EW (29:51):
Final year student in Nigeria. Has been doing embedded projects FPGA projects, some PCB design for years, since his first year of college. Co-founded a makerspace and a company.
CW (30:10):
Okay, what's the question?
EW (30:12):
The problem John has is there aren't any jobs for electrical engineers in Nigeria, so he doesn't think he can get a job there after school. Wants to find out how to get a hardware job outside the country, some place like the US. Some of his friends have suggested getting a Master's abroad, because once you're in the company it'll be easy to get a job.
CW (30:35):
In the country.
EW (30:37):
Getting a Master's degree abroad and then you can get a job in the country, right?
CW (30:42):
Right.
EW (30:44):
But he doesn't really like academics, so he's not excited about a Master's degree. What tips can we give that will help in getting a job abroad straight from Nigeria, considering that he can't get any work experience after school to put on the resume, except for the company he co-founded?
CW (31:03):
That's a difficult question that I'm not sure we're equipped to answer exactly.
EW (31:07):
Actually, that is my answer, is we have no idea.
CW (31:10):
Yeah. I think, first off, wait until next year, for no reason at all, because not much is going to happen-
EW (31:25):
Actually-
CW (31:25):
... in the short-term.
EW (31:26):
... I saw Microsoft jobs for embedded sorts of things in Nigeria today.
CW (31:34):
So that was going to be my question, is there really nothing in Nigeria? It's a very, very big country with a lot of industry.
EW (31:43):
And they have tech.
CW (31:43):
And a lot of tech, so that's curious to me.
EW (31:47):
We've got listeners in Nigeria.
CW (31:47):
Maybe I just don't know what I'm talking about, but it's a bit surprising that there's nothing there. The oil industry is huge there, I think. So I'd want to know more about the jobs space in Nigeria to know why that is. But yeah, the intricacies of immigration are very complicated.
EW (32:12):
And remote work in immigration-
CW (32:15):
I don't know how that works.
EW (32:20):
... there's some weirdnesses that happen.
CW (32:20):
I don't know if that even is possible.
EW (32:20):
I wouldn't...
CW (32:22):
The Master's degree idea is not terrible.
EW (32:25):
No.
CW (32:26):
It is, as you say, an easier way to get into the country, theoretically.
EW (32:31):
But it might be very expensive.
CW (32:32):
It could be expensive and it might not be as unpleasant as you think. It's different than undergraduate.
EW (32:42):
Yeah, you get a lot more freedom.
CW (32:43):
Especially for something hands on like engineering, you're probably doing basically a bunch of projects and stuff and building things and learning some cool skills, but it's not going to be nine to five sitting at a desk writing notes all day. So don't discount that entirely, that's not a terrible idea, and a Master's degree is two years. Plus you can explore the work environment while you're doing that. But beyond that, yeah, with COVID and the political situation, there's just too much up in the air to even say whether it's possible to get a job in the US right now.
EW (33:24):
Or other abroad locations.
CW (33:27):
Yeah. He said, US, I guess. Oh, like the US. Well, yeah, try some other countries. Canada's very nice, I hear.
EW (33:38):
Realistically, we aren't the right people to ask, because we've never tried to do that, so we don't really have advice.
CW (33:44):
But if you do listen and are from another country and have experience getting a job abroad.
EW (33:52):
Or if you're in Nigeria-
CW (33:53):
Specifically Nigeria, yeah.
EW (33:53):
... and want to meet a final year student in the university, we're happy to connect people.
CW (34:05):
Yeah. Okay.
EW (34:06):
Yashesvi, apologies if I didn't get that right, is in a uni pursuing Bachelor of Computer Applications in India. Wanting to know about the idea of going to college to get a degree or finding your own way into embedded systems through the degree you already have. Computer applications is pretty close.
CW (34:31):
I don't know what that means. I'm assuming it's programming.
EW (34:37):
Maybe programming, software programming.
CW (34:38):
Yeah, let me look that up real quick.
EW (34:44):
I didn't get a degree in embedded systems and I don't know how I'd go about it. Now, there's computer engineering, which is closer. But I think you probably could find your way from the degree you have, as long as the degree you have is fairly heavy in programming.
CW (35:02):
Okay, I found it. It's a specific type of degree in India, very common, alternative to the engineering counterpart, computer science and engineering. It's a little shorter, it's a three year degree. Technical degree that prepares students for a career in the field of computer applications and software development. Non-math students, so it's a little more web-focused, it sounds like. Traditional applications. So yeah, yeah, applications, that's software engineering. So somewhat different than the kinds of things you do in embedded.
EW (35:40):
I have to admit that the math that I spurned years ago I have used so much now. I mean, trigonometry, statistics, all these things-
CW (35:55):
Calculus?
EW (35:56):
... calculus, yes. Differential equations. I wish I could take differential equations again, because at the time, I was like, "I'm never going to use this." And now I'm like, "There are so many things I want to do and I'm not quite sure that I remember right and if I pick up a book I'll just get lost in it."
CW (36:13):
Yeah, so if your program of study leaves out a lot of mathematics that would be something to maybe augment with.
EW (36:24):
Yeah. Or that might be a reason to get an additional degree, to see how that works.
CW (36:32):
A Master's degree.
EW (36:33):
But, once again, we have never been in your position.
CW (36:36):
Right. Well, we sort of have, neither of us have degrees in computer anything.
EW (36:42):
No. But, I mean, my degree was half engineering math, so it was okay. It was actually a really good starting point. I didn't know at the time. Okay, Steve. Had a brief history of working for an embedded software company and really misses it. Has been doing business application development for internal clients for five years. Our podcast has helped Steve feel connected to the things that Steve loves doing. Inspired to brush up on skills, do some fun projects on the side, maybe apply for some jobs. And applying for jobs is tough, because there aren't many companies that need embedded software developers in the Midwest of the US. Maybe with the pandemic more companies are open to remote work. Well, that's for sure.
CW (37:38):
Definitely.
EW (37:38):
There's a lot of tech in the Midwest. I mean, it's a lot of tractor tech, but it's still tech.
CW (37:44):
Well, I mean, it's not even just tractor tech. I think there's-
EW (37:47):
Ag tech.
CW (37:48):
... a lot of bio.
EW (37:48):
There's a lot of bio.
CW (37:51):
I think there's some defense.
EW (37:54):
It depends on where in the Midwest we are. I mean, if we're talking Chicago, there's plenty of stuff.
CW (37:58):
Chicago, yeah. Chicago, Minnesota.
EW (38:04):
Yeah, we've Minnesota. We've gotten things where people are hiring in Minnesota.
CW (38:10):
So, I don't know. I mean, it's true, there's less there than on the coasts, so the chances are smaller of finding something you really want.
EW (38:22):
But now is a good time, because of the pandemic, more people are open to remote work or remote work for a year and then reevaluate. So yeah, apply. Check it out.
CW (38:36):
Yeah, I get the sense from all of these-
EW (38:42):
There was a theme.
CW (38:43):
... which is mostly the same question over and over, is people are, and understandably, a little afraid to reach out and apply to stuff.
EW (38:54):
I've been working with a young woman who has applied to a lot of companies, and sometimes outside of her skill set and sometimes inside and she's had a hard time and she gets the call backs, but she doesn't get the jobs and it's super frustrating. It's frustrating for me to watch. And we talk about how she interviews and her coding questions and all of these things. The thing I saw today was that she's exhausted of being turned down. It's hard not to take it personally, even if it may have nothing to do with you why you were turned down. It may just be that the boss's son interviewed for the position. And so, that's not a reflection of you at all. And yet, more than about three, it really starts to get old. So you have to go at it with the attitude of, "I don't need this."
CW (39:53):
Yes.
EW (39:54):
And that's a really tough attitude to cultivate.
CW (39:57):
Yeah, or that this doesn't reflect on me. And it doesn't, because there's a lot of randomness in interviewing and hiring.
EW (40:03):
So much randomness.
CW (40:05):
There's politics involved. Like, "Oh, so and so wanted to hire this person," and so it's their buddy and so they just brought in somebody else as a cover, and you're the somebody else. So you don't get the job not because you didn't do well, but because they were never going to hire in the first place, you were just the person to bring in, so they hired so they could interview more than one person, so it didn't look they were just hiring their buddy. There's all kinds of stuff like that that happens and it's terrible. And you don't know the reason at the end of the interview process maybe why somebody has rejected you, and you got to be able to brush that off and say, "Well..."
EW (40:39):
Their loss.
CW (40:40):
Yeah. And sometimes it's generally not the correct fit and that's fine, too, but that doesn't mean you're bad.
EW (40:48):
Right. It doesn't mean you're bad.
CW (40:51):
It may mean you wouldn't have enjoyed working there in the first place.
EW (40:53):
A lot of times, yeah. What they're saying is, "We don't have a position for you right now," and that doesn't mean never, and it doesn't mean that there's anything with you that's wrong. It's means the position and you don't fit, maybe because the position's been filled. Maybe because of politics, where someone really wanted somebody who could do this sort of thing, but the job description said something else. There's just so many variables and try not to get too burnt out and depressed about it.
CW (41:33):
And if you get good at interviewing, you're good at interviewing, that's a real good skill for your whole life, and you can't get it without doing it a lot, and you can't do it a lot unless you apply a lot, and you probably can't do it a lot unless you get rejected a lot. Yeah. My message to all of these people.
EW (41:51):
Yes, yes. It's not easy.
CW (41:54):
Reach out, and look around a lot.
EW (41:57):
And it's not easy for anyone. I mean, there was a job I really wanted and I didn't get it. And then, months later, I got a contract with them, and I'm really glad, because I would've hated the job.
CW (42:09):
Yes. I'm really sad about that one.
EW (42:14):
Okay. Let's see. Changing the subject, from Jim G., have you seen Devs?
CW (42:19):
No.
EW (42:20):
It's a program on Hulu it has quantum computing, possibly not precisely, physically correct. It's created my Alex Garland who did Ex Machina. And Jim thought we would like it because of the quantum computing episode, so something to look at.
CW (42:45):
We'll check it out. Having seen Ex Machina, if it has a lot of stabbing, I'm not in.
EW (42:50):
Yeah.
CW (42:51):
Let us know if it has a lot of stabbing.
EW (42:55):
We've gotten some weird emails lately and I haven't responded to all of them. If you're a listener and you would like to be on the show or you would like to tell me about your company, maybe let me know that you're a listener. Maybe tell me something that indicates that you aren't a spam bot. So maybe we're just having spam trouble, but I have done this. I have asked people to be on the show and they reply with unsubscribe.
CW (43:30):
Turnabout is fair play.
EW (43:33):
Yeah. If you have contacted me recently to be on the show or to tell me about something you think is really interesting and I haven't responded and it could possibly be because I thought you might be spam, feel free to email me again, but look less spammy. What was I trying for there? That was not the thought process.
CW (43:54):
If it's not clear you don't know what the show is or what it's about, then we're likely to ignore your email.
EW (43:59):
Yeah. I mean, you could mention Kitty's show or some other show you liked.
CW (44:03):
Obviously, this show is about a very narrow set of topics that is consistent from show to show and we never waver. Yeah, and also, if you're a PR person-
EW (44:18):
Oh, that's actually the other thing. If you are a CEO of a company and you get your PR person to contact me, I'm not going to respond. The PR people, they're great, they probably have a place in the world, but it's not for me. When you mail the show, you mail us, you're not mailing a PR firm. And so, all that shiny glossiness, I don't dig it.
CW (44:48):
Yeah, we're not about to respond well to, "When can we pencil you into so and so's schedule."
EW (44:53):
Yes. Oh gosh. I was super annoyed.
CW (44:58):
You cannot pencil us into that schedule.
EW (45:07):
What was the other one?
CW (45:07):
Well, I don't want to be too mean.
EW (45:09):
There was one that was, "Let us know everything about your show so that you can be visited by the fairies of this company." No, that wasn't how it came out. But it sounded like they were going to come and sprinkle fairy dust on our podcast. And I'm like, "I don't think so." And the company you say you're representing, which has nothing to do with your signature, I don't really want to have them on the show. So yeah, sorry, spam and some social awkwardness. I have some social awkwardness, if you do too, we're going to have to be careful about-
CW (45:53):
It doesn't cancel out?
EW (45:54):
No, it doesn't.
CW (45:55):
Oh, that's too bad.
EW (45:58):
Okay, so now that I've told people not to contact us or to be very obvious that they're humans, there was a request for a show about engineering in difficult places, adverse conditions, not just having your boss yell at you, but having your device go out into the desert.
CW (46:23):
Not hostile work environments, but hostile work environments.
EW (46:24):
Exactly. Things going out into the desert, things that are hard to get to, like going into space.
CW (46:32):
Things that go on the bottom of the ocean.
EW (46:33):
Bottom of the ocean, radiation hardening. I mean, I can talk about some of the software aspects of it, but part of the question was hardware. And even the software, I would love to talk to somebody about that. So if you are thinking, "Wow. I could do that." Definitely email me and include the words, "I am a human." Sorry.
CW (46:57):
No, definitely. So what you do is you email us and you include a picture of five bicycles or crosswalks, your choice, and with a little thing that says, "I am a human," and then we'll believe you.
EW (47:09):
No.
CW (47:10):
But you've worked on something that works in a harsh environment, right?
EW (47:14):
Yeah. I mean, even ShotSpotter-
CW (47:16):
That's true. I forgot about that.
EW (47:16):
... I considered a harsh environment.
CW (47:17):
So what kinds of software things do you do for a harsh environment? Run the chip at high-frequency so it melts the ice off?
EW (47:32):
There were some things that went in cars that had that problem. Some of it is choosing the right parts, Mil Spec parts is always fun.
CW (47:40):
That's not software.
EW (47:41):
But that's not software. You can get the R chips that have the dual core that have to link up-
CW (47:48):
Agree, yeah.
EW (47:51):
... agree. I mean, for me it's about if you can update the firmware it has to be not brickable, because that is so dangerous to brick your units in the field. And it's just painful. Some of it goes to testing, that this needs to be tested to a higher degree. It's not a desktop test, this is a written test plan test.
CW (48:17):
And it's not just a matter of this is enduring swinging environmental conditions or something. It's also that it might be extremely difficult to get to, right?
EW (48:26):
Yes. And it's so easy on my desk to think, "Oh, why doesn't somebody go out and fetch it," when I know very well it's not going to me, and it's not fair to think that way. You should make your software as robust as possible. But I don't want to do a whole show about that.
CW (48:51):
That's fine. Yeah, yeah.
EW (48:51):
I mean, we can talk more about that. For me, it's a lot of robustness, unit testing and firmware updates. I don't know about... I mean, radiation hardening sometimes has to do with error correcting codes.
CW (49:09):
Different RAM.
EW (49:10):
Different kinds of RAMs, that's a speed thing and a power thing. I did have a unit that would turn off it was too cold, on the assumption that it wasn't supposed to work when it was cold.
CW (49:24):
That's how I feel.
EW (49:28):
There were other things in the system that would warm up and it could come back on when it was warm enough.
CW (49:35):
What do you think of these ARM Macs, huh? Pretty excited, huh? ARM Macs.
EW (49:41):
I heard about ARM Macs. I do use ARM processors a lot with the TX2. And I can tell you not everything runs on them.
CW (49:51):
Yeah, yeah, yeah. Come on. It's Linux.
EW (49:55):
I'm always a pessimist.
CW (49:57):
It's Linux. Not everything runs on Linux. No, you're right.
EW (49:59):
No, I mean, not all the Linux tools I want run on ARM.
CW (50:02):
I know. No, it's going to be a long process.
EW (50:06):
20 hours of battery life is really nice.
CW (50:10):
Yeah, if it comes close to that. I mean, even 10 hours is pretty spectacular for a computer. So, I don't know, I'm optimistic. I'm sad because I'm very acquisitive, I like buying things, as you might not be aware.
EW (50:25):
I'm aware.
CW (50:25):
I do need a new laptop this one is starting to-
EW (50:28):
Yeah, it's almost full of stickers.
CW (50:30):
It's full of stickers and it's exhibiting behaviors. But the problem is, if I was just a normal software developer, yeah, I could get... and the ones they've announced I don't really want one of is the 13 inch MacBook Pro which isn't big enough and MacBook Air, which is not capable enough, and a mini, which is cool, but I don't what I'd use that for. I'm waiting for the larger Pro laptop. But even if they had one, if I was just doing the normal development stuff I'm doing now, I'd be fine. The Xcode, of course that's going to work. And Python, Python's going to work, so problem solved there.
CW (51:08):
But all of this audio stuff is never going to work, because the audio companies are so slow about updating their stuff. So one of the pieces of hardware I use just got updated for Catalina a few months ago, for Catalina which came out a year ago, which is just an OS upgrade. So that plus, and I just got an email from them that says, "Don't upgrade to Big Sur. Just don't. Don't upgrade to the next OS. It won't work. You'll be doomed. Turn off auto updates immediately." We'll figure it out. But that, combined with an architecture change, I'm not optimistic that's going to happen quickly, so that kind of locks me out for a while. And then, if you need anything that needs intel, then I don't know what's going to happen there exactly, there's some rumblings about various... I mean, you can run Intel Mac code, but if you needed to Windows, Windows VM's running x86. I don't think there's a path for that foreseen.
EW (52:13):
Yeah, that sounds awful.
CW (52:16):
It's not awful. I mean, it's wonderful not to have to use Windows.
EW (52:20):
Well, but I could go anywhere and buy a laptop.
CW (52:24):
No you can't. You can't go anywhere right now.
EW (52:26):
Well, okay. I could order a new laptop that has almost all the specs I want, and it would be half the price of your-
CW (52:37):
No, no. I don't think you remember how expensive your current laptop was.
EW (52:41):
I remember how expensive yours was.
CW (52:43):
Yeah, but mine's very...
EW (52:46):
He's petting the computer. You can't see it, but he's petting the computer.
CW (52:49):
Yeah. It's not a Dell. Anyway, it's going to be interesting to see what happens, because I don't think this is going to stop with Apple.
EW (53:01):
No, and it shouldn't. I mean-
CW (53:03):
And if it's any way successful, the kinds of benefits that companies are going to get in terms of thermal stuff and battery life, it's just going to make keeping Intel around a real hard proposition.
EW (53:18):
Okay. Switching to GPUs, when are going to get Nvidia's new GPU for-
CW (53:25):
Never.
EW (53:26):
... our home server.
CW (53:27):
Never, because they made four of them. Three of them they gave to reviewers and one of them they put in Lexan and they just mounted it over the entrance to Nvidia's headquarters.
EW (53:37):
That's what's happened?
CW (53:39):
There aren't any. You can't buy them.
EW (53:40):
There seems like there's so much that's unobtanium right now with technology.
CW (53:44):
Well, I don't think this is new. I mean, the Nintendo switch goes in and out of unobtanium. That's happened with the 1080s, this happened with the 2080s from Nvidia. It happens every time and then it's six months, you're deep into the year after their release before they're widely available. It's just, it's hard to make these things. They have a lot of transistors and big chips.
EW (54:09):
A lot of transistors.
CW (54:10):
And then people snap them up. Everybody wants them for their gaming rigs. So if you want to do anything professional with them, you got to wait at the end of the line.
EW (54:19):
I heard someone say that it was bots buying them and then reselling them on Ebay for 2X.
CW (54:24):
Probably some of that.
EW (54:25):
But I don't think that was-
CW (54:26):
There was probably some.
EW (54:27):
... I mean, I figured that was some, but not the bulk.
CW (54:28):
Yeah. I mean, I think the early ones there's a lot of that. But I think, now, maybe they're in between production runs or I don't know. I've been looking, because it would make training a little easier.
EW (54:41):
Yeah, I've got some big machine learning training things to do.
CW (54:44):
You can still buy the big pro ones the Titans and stuff, but they're less capable than the 3080s and 3090s. So, it's kind of sad. All right. That's fine. That's all I got.
EW (55:01):
All right. That's all I got. So, I guess, thank you to Christopher for producing and co-hosting. Thank you to our Patreon supporters for their support. Thank you to Triplebyte for sponsoring this show. And, of course, thank you for listening. You can always contact us, show@embedded.fm or hit the contact link on embedded.fm. And now, a little bit of story time.
EW (55:29):
(Winnie the Pooh except, ending with Piglet saying, "Between, as I was saying, the hours of twelve and twelve five. So really dear Pooh, if you'll excuse me, what's that?")