what is "embedded development" in 2015? (was: poking around for opportunities)

Joshua Judson Rosen rozzin at hackerposse.com
Sun Feb 8 09:46:39 EST 2015


On 01/07/2015 09:19 AM, David Rysdam wrote:
> Tyson Sawyer <tyson at j3.org> writes:
>> I've seen a good number of systems with plenty of memory and CPU.
>> However, they don't have a keyboard/monitor and updates or normally a
>> significant PITA and crashes/visible bugs are unacceptable.  ...so
>> don't write crummy code. ;-)
>
> I've written plenty of needs-to-run-for-weeks-by-itself software running
> in a headless environment. And all my code is always reasonably
> efficient, then evaluated, and then parts that aren't efficient enough
> are rewritten. (Premature optimization is the root of all evil.)
>
> I guess I can put "embedded" on my resume now...

Yeah, basically. I mean, I've been doing "embedded" development almost 
continuously for the last 15+ years, and most of it has been awfully 
similar to the experience of developing either "server" software or 
"back-end desktop" software, or "web development". More and more of the 
"embedded" applications have been Linux for the last 15 years.
I'll refer you back to something I wrote when we had the "Linux has won"
conversation here ~4 years ago:

	http://www.hackerposse.com/~rozzin/journal/linux-has-won-silently.html


And as far defining "embedded" goes, I'd say it's generally anything
that runs software but that the user doesn't think of as "being a 
computer". Sometimes that means "headless" and/or "runs for weeks by 
itself"; sometimes it doesn't. I've worked on embedded Linux-based 
systems that needed to run for *years* at a time; one of the things that 
I've liked about the embedded project I've been on for the last few 
years is that it only had to run for *4 hours* before the batteries ran 
out and needed to be swapped.

There _is_ something somewhat distinct that we can talk about as "deep 
embedded" or "bare metal" programming, which is what's not Linux.
When I look at that, the big difference that I see is how much code you 
need to write and maintain yourself because you the (lack of) platform
means that you don't have a big set of libraries available to you
like you would on Linux.

-- 
"Don't be afraid to ask (λf.((λx.xx) (λr.f(rr))))."


More information about the gnhlug-discuss mailing list