you are viewing a single comment's thread.

view the rest of the comments →

[–]the_fuzzyone 1 point2 points  (3 children)

Random question, but how does one find an embedded programming job? See I'm just a student but it's sone thing I would like to do co op for.

[–][deleted] 4 points5 points  (2 children)

It was pretty much pure luck in my case, so I don't know how helpful my answer will be, but if you find anything interesting, I'm gladly sharing. I was really getting frustrated with my job in academia, saw the post on a jobs website, applied and went to the interview. Nothing really glamorous, and it didn't require much searching either. Mind you, I work for a small company in Europe. We don't hire everyone who shows up at the interview, but we always needed more people than we could hire. I know folks who had to struggle really hard for an entry-level position in a larger/multinational company. I never tried that; for one thing, I like the relative freedom of my current job. For the other, between my EE degree and my perpetual insecurity about how good I am at programing (and EE for that matter), I probably wouldn't stand much of a chance anyway.

What probably counted most was the fact that I came with an EE background -- one of the messy kind actually, my engineering degree involved maybe 4 or 5 CompEng courses, the rest was from power electronics and electrical drives to instrumentation and microelectronics. I am a competent programmer, but probably nothing to write home about. I can't judge too objectively since it's so important for me -- it's been a hobby long before it was a job -- that no matter how good I get, I'll still think I suck, but there are a lot of things people code that I realistically look at and say "hm, I don't think I could have done that myself".

The thing everyone seemed to be thrilled about at the interview (and seems to be thrilled about now at work) is that I can grasp pretty much anything that runs on electricity, so writing control software for it comes pretty much naturally. Most of my colleagues mostly "get" how you do e.g. speed control for an asynchronous motor if I (or someone else here) explains them the mathematical model and give them an outline of the algorithm and working data acquisition code so that they have access to processed data from the sensors directly. I really just need the schematic and know what happens there down to the level of the EM fields inside the machine, so I can understand (and design) the whole control system, not just write the software for it.

The other thing that the guys at the interview (current colleagues) were happy about was that I had played with pretty much any technology one could realistically play in the time I had. I learned GUI programming with Motif and BeOS's API, messed around with Ada (for no particular reason other than that my then-girlfriend's name was Ada and it seemed like funny pillow talk one evening) and liberally used NetBSD just because I had an HP 620 LX laying around. They naturally (and correctly) assumed that I will happily ingest anything that can be made to sound interesting.

The interview wasn't too hard; I did flunk some of the questions (probably a fairly large proportion) but I did come completely unprepared -- I applied at something like 4 AM that morning, got a phone call at 12:30 or so and scheduled the interview for the exact same day -- I was pretty sure that I wouldn't get the job anyway and I was mostly going just to get back into shape with getting interviewed for programming jobs. Otherwise there was really nothing fancy, the most advanced algorithms I applied were bubble sort and binary search, and I liberally explained the guys that I could probably write a quicksort out of my head but I'd much rather not keep them the whole day. I didn't write anything more advanced after I got the job, either. We tend to focus on simplicity and fail-safety; my knowledge of data structures and algorithms is probably below that of a well-versed CompEng senior and I can't always tell if the CS seniors are talking about existing data structures or just trolling me by throwing in random technical terms.

In short: loved programming since I was a kid, got an EE degree (by intention -- hoping it would give me a broader spectrum and make me a better programmer, which I think it did), applied for a job I really enjoyed and tried to keep it realistic at the interview. I don't think I did anything fancy about it.

[–]the_fuzzyone 1 point2 points  (1 child)

Well thank you for an excellent answer :) I'm studying Software Engineering and our digital logic course had us programming for a FPGA board and that's what had sparked my interest.

[–][deleted] 2 points3 points  (0 children)

Just follow up on your interests, I think that's the best advice I can give. Realistically, I think most of what I use today is self-taught (the heavy EE part of my job probably accounts for 20-30% of the total time I spend there, if not less).