Finding Talent - Page 1
Forum section: electronics / general

author: owl_uk
author_rank: Contributor
timestamp: July 26, 2013, 02:56:50 pm
content: I'm working at a startup and looking to recruit a firmware engineer. We're a team of people who have left a consumer electronics company in the UK. While I was there I also had to help recruit an assess engineering staff. It is a complete nightmare. I was a hobbyist programmer as a kid and did a little bit of electronics. At uni I studied EE and and did an Industrial placement. then when I left I got a job as an electronics designer and ended up doing everything from PCB layouts to Verilog to web backends.I've had a search around on here and it seems I'm not alone. I want to find people who:- Know what the voltage in the middle of a potential divider with 2 x 10K resistors on a 10 volt rail would be- Know enough C to write a program to print out the numbers from 1-10- Want to work with other people to get projects working well and out of the doorI've discovered that of the people sent by recruitment agencies 90% can't meet the first two of those requirements, and of the remaining 10% a large proportion seem to be unable to listen to anyone else's opinion or work together to a solution. That leaves around 1% of people who would be a genuine asset. Is it just me? Am I looking in the wrong places? Is there a trick to this stuff?

author: olsenn
author_rank: Frequent Contributor
timestamp: July 26, 2013, 03:01:21 pm
content: QuoteIf that's the limit of what your firmware engineer is going to know, I'll have to make sure never to buy one of your devices!

author: c4757p
author_rank: Super Contributor
timestamp: July 26, 2013, 03:10:39 pm
content: Quote from: owl_uk on July 26, 2013, 02:56:50 pm0V, with 1kV precision, +/- 5%.QuoteCode:#include <stdio.h>int main (int argc, char **argv) {double i;for (i = 1.0; i < 10.0; i += 1e-12)printf ("%f\n", i);return 0;}QuoteOh,other people? And they have to workwell? But I don'tlikeother people.......C'mon, tighten up your requirements a bit. If you're regularly finding people who can't answer those questions, you're looking in the wrong places...

author: CodyShaw
author_rank: Contributor
timestamp: July 26, 2013, 03:23:08 pm
content: Quote from: c4757p on July 26, 2013, 03:10:39 pmI was so... so confused...Then I realized you gave troll answers. And you are completely correct.Except you will print 1, but not 10

author: c4757p
author_rank: Super Contributor
timestamp: July 26, 2013, 03:24:13 pm
content: Did you miss the last line, thinking it was a signature or something? I've done that before....

author: dfmischler
author_rank: Frequent Contributor
timestamp: July 26, 2013, 03:30:47 pm
content: Quote from: owl_uk on July 26, 2013, 02:56:50 pmNow you see why you also need a very good manager to turn the group of technically able but social misfits into a team. If the project gets done with a profit, and you can stomach keeping a third of the people you hired for another project, then you did OK. Of course, this is also why so many companies would rather hire contractors than employees.

author: c4757p
author_rank: Super Contributor
timestamp: July 26, 2013, 03:31:52 pm
content: Quote from: CodyShaw on July 26, 2013, 03:23:08 pmHey, it'll be within 0.1ppt (part pertrillion) - that good enough for you?No?OK, fine. Stick "printf ("10\n");" at the end.But don't compare floats as "equal", it goes against the entire principle of precision and will often cause problems with esp. small numbers. Always compare to within a small error range. I set mine to 1e-12.By the way, mine's up to 1.000040316 by now. Only a few more minutes before it hits 10...Of course, if we're going to get all technical about it, I'd have to at least clarify that by "numbers", he's referring to one of the countably infinite sets, otherwise I couldn't do this even with infinite time and memory. And there's always the concern that when it gets up to a certain point, the delta value is rounded off, so that it goes into an infinite loop thinking 9.4 + 1e-12 = 9.4; that's something that would have to be investigated. (Or just use fixed-point arithmetic.)

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: July 26, 2013, 03:36:12 pm
content: yes it is hard - several of my customers have found it very hard finding good people with hardware & software knowledge

author: c4757p
author_rank: Super Contributor
timestamp: July 26, 2013, 03:43:11 pm
content: But a 2:1 voltage divider and "for i in range(1,11):print i"? If I went up to my old school and screamed out "who can explain a voltage divider to me" in front of the engineering building, I'd have at least a half dozen people trying to explain it (or telling me to shut up, they're busy....). If I screamed "how can I print integers 1-10 in C" in the lobby of the CS building I'd be surrounded by a nerd swarm. Surely it's not that hard to find people who know the bloody basics?Quote from: dfmischler on July 26, 2013, 03:30:47 pmHey, I amnota social misfit! It isperfectly acceptableto hijack someone's honest thread to make a dumb joke at their expense!(Sorry....)

author: free_electron
author_rank: Super Contributor
timestamp: July 26, 2013, 03:49:57 pm
content: 1) the potential divider is tricky as you did not say what the other end is connected to. assuming 0 volts i'd have to say 5 volts +/- some tolerance because of the resistorsas for C . i refuse to code in that language.basic was well enough for hewlett packard / agilent so it'll do for me. :for x = 1 to 10 :print x : next x

author: c4757p
author_rank: Super Contributor
timestamp: July 26, 2013, 03:54:34 pm
content: Hey, I have to take issue with your responses!1) Doesn't matter what the other end is connected to because you could just say "halfway between". It's possibly a more correct answer, for that matter, because a voltage divider can be extended to more than two nodes, computing a weighted average of them. And he specified the tolerance - 0%!2) BASIC sucks and C is awesome. "next x"? WTF is next x? What would it do if I said "next y"? Such an archaic, arbitrary language....

author: Bored@Work
author_rank: Super Contributor
timestamp: July 26, 2013, 04:21:47 pm
content: Quote from: owl_uk on July 26, 2013, 02:56:50 pmCry me a river ...Here are some of your problems:You are a startup. Many people who worked for startups during the new economy learned the hard way that these are not places where you want to be employed. Promises instead of payment, no job security, extremely long hours for peanuts or no pay at all, junk management, a rathole workplace, bring our own PC, equipment and software licenses, etc.Good people have jobs. You need to offer them more than they have now, not less.QuoteSo you decided that one of the most important factors to make your startup successful - employees - is not important enough, and you outsourced the job of finding them.Further, you decided to outsource them to scum. Because that's what recruitment agencies are in general. You now learn that the hard way.And let me guess, you don't want people older than 30? Looking for kids instead of professionals?

author: kaz911
author_rank: Super Contributor
timestamp: July 26, 2013, 04:31:13 pm
content: Quote from: owl_uk on July 26, 2013, 02:56:50 pmhmm I think you might be approaching your recruitment the wrong way. If I saw a requirement like that - I would say - hmm they are not aiming very high (apart from the work with other people part) and not even bother to check further. Developers in general look for challenges.When my old company recruited - we looked at what kind of people we wanted first. Then we figured out what they liked to do in the spare time - like playing chess, riding mountain bike or the like - and then we advertised in the small niche publications for their hobbies for developers. So we had programmers with active hobbies - and many with same hobbies as the rest of the teams - which helped glue them together. But the adverts always set the bar high. But the adverts costs next to nothing as the niche "hobby" magazines/on-line publications was always starving for other advertisers than the usual 5-10-15 "hobby specific" brand advertisers.We wore also quite active in the University scene and got a lot of good people in that way. Some did their masters with us - some worked part time and turned full time once they finished their degrees.But we only used recruitment agencies a few times - and every time it ended in disaster. So we stopped using agencies and did things our own way. So save your money on the agency - and head down to the university and put up some flyers - that is what I would do.

author: AlfBaz
author_rank: Super Contributor
timestamp: July 26, 2013, 04:33:40 pm
content: Recruitment agencies won't send you talented people, they'll send young upstarts that are only good at sucking cock

author: AndyC_772
author_rank: Super Contributor
timestamp: July 26, 2013, 05:06:46 pm
content: I've had entirely the opposite experience working for start-ups compared to Bored@Work.I've thoroughly enjoyed working for a very small company, where the number of engineers exceeds the number of managers, and getting the job done in a way which is practical, sane and expedient is the order of the day. No spurious box-ticking... a process for this, a procedure for that, and three levels of sign-off required before you can use the bathroom.In terms of recruitment, I agree that it can be tough to find the right people. It's important to bear in mind that people who really know their stuff *know* that they know their stuff and that they're in demand.That means you have to pay them what they're worth - and that may be quite a bit more than a spurious 'industry average' figure. Especially in the case of graduates, you're not just competing with other engineering companies... you're competing with *all* companies that hire engineering graduates. That includes, banks, consulting firms and the like.

author: Shenandoah
author_rank: Regular Contributor
timestamp: July 26, 2013, 05:48:41 pm
content: Talents and professionals require $$$.Young, low-pay, not enough resources are the things that clash with professionals and talents.

author: MacAttak
author_rank: Unknown
timestamp: July 26, 2013, 05:49:49 pm
content: Quote from: c4757p on July 26, 2013, 03:10:39 pmThat's far too complicated and inefficient. This solution is much more tight:Code:#include <stdio.h>int main (int argc, char **argv) {printf("1 2 3 4 5 6 7 8 9 10");return 0;}

author: Phaedrus
author_rank: Frequent Contributor
timestamp: July 26, 2013, 05:56:32 pm
content: The set of numbers between 1 and 10 is uncountably infinite.Did you perhaps mean integers?

author: MacAttak
author_rank: Unknown
timestamp: July 26, 2013, 06:08:49 pm
content: I'm going to disagree with the claims that recruitment agencies are worthless.It's a Garbage-In/Garbage-Out situation. They can only find candidates for you if you give them enough to work with. That's their role is to pre-screen for you. If you only tell them "I need good engineers" then don't be surprised if they send resumes of guys who want to drive trains.We give our external recruiters specific requirements for each job opening. If they send us crap resumes based on simple keyword searches that we could have done ourselves, then we make it clear that we will find another agency to use. And then once we get those candidates from the external recruiters, our internal recruiters (who are much more familiar with what we do) do their own screening. By the time a candidate makes it to where their resume is in front of a technical manager or engineer, there is a pretty good chance that unless they freeze up in the interview that they will make it. Technical people HATE to have their time wasted in interviews, so the whole point of the double-screening is waste as little of their time as possible.And in the end we are a 20-30 person company and we manage to always (and exclusively) hire the top 0.5% tier of talent in our industry.Another secret to finding awesome talent: make your recruiting a *benefit* of your organization. Highly talented people are attracted to organizations that maintain a high bar of technical experience/skill. We often tell our recruits (and we are serious about it) that we only find at most two or three hireable candidates a year even though we are constantly recruiting and interviewing. The best and brightest LOVE the idea that they will be surrounded by people who are at least their equals, andpossibly smarterthan they are.But on the other hand, don't lie about it. If you aren't looking for the best of the best, then don't say that, otherwise you will hire people who will just pick up and leave once they figure out that it was a lie.

author: c4757p
author_rank: Super Contributor
timestamp: July 26, 2013, 06:12:37 pm
content: Quote from: MacAttak on July 26, 2013, 05:49:49 pmThought of that, but I didn't want to go quite to that level of smartassery. I figured I'd at least use a loop.Quote from: Phaedrus on July 26, 2013, 05:56:32 pmThought of that already!Quote

author: owl_uk
author_rank: Contributor
timestamp: July 26, 2013, 07:32:50 pm
content: OK Thanks for all your replies everyone.- On recruitment consultants: I had to use them at my old job, and I was not impressed at all. I don't have to use them now. Part of the reason for posting on here was to find out if anyone knew a good way to find the right kind of people- The 2 questions: These are not what go on the job advert, these are the kind of screening questions I've used in the past in first round interviews. The reason they are so simple is because the strategy works, it filters out nearly all applicants. The potential divider was referenced to ground, I'd normally show a circuit diagram of this in an interview. As for the numbers, you have me bang to rights, I should have said integers. The screening question I usually use is to ask for all of the odd numbers or even numbers in the range 1-10.- On the money front I think this is less of an issue, I've only ever recruited for jobs with negotiable salary and with a hefty budget in the past. My problem isn't persuading talented people to start or retaining them, it is finding them at all!- To my mind getting on with people is pretty much a must in a small company. If there are 6 talented people in a room it is a bit of a waste if 5 of them are spending half of their time trying to coax work out of the 6th. Good engineers who get on with people do exist (think Chris + Dave), but they are not easy to find.

author: free_electron
author_rank: Super Contributor
timestamp: July 26, 2013, 07:47:46 pm
content: could it be you are fishing in the wrong pond ?what kind of recruitment agencies are we talking about ? those that cater to interim work or cater to the unemployed ?neither of those two categories is going to get you what you are after ... the interimmers want to hop along and never stay anywhere long enough to gain valuable know-how. the unemployed ... well there's a reason they're unemployed. The good ones are employed. ( with the usual exception of course like an entire company that went under )maybe you need to go talk to headhunters...

author: Codemonkey
author_rank: Regular Contributor
timestamp: July 26, 2013, 08:38:03 pm
content: Why not post:A) What company you work for.B) Where you are located (roughly).C) What sort of products they could be working on.D) Rough guide to salary range and any benefits.E) A bit of information about what the working environment is like (unless it sucks!)People who read this forum are your target but if you're all secretive about where you are and what you do, you've failed at the first hurdle.As for comments about folks not wanting to work for start-ups, I'd chose one over a megacorp any day. Much more likely to have modern working arrangements (casual clothing, flexible hours etc), and if there's a possibility of share options or something then there's a good incentive to put the hours in. The constant threat of it all going tits up can be a bit off-putting to anyone with a sizeable mortgage though!

author: nctnico
author_rank: Super Contributor
timestamp: July 26, 2013, 08:47:02 pm
content: Quote from: owl_uk on July 26, 2013, 02:56:50 pmPeople with such skills (like me) all started for themselves or are stuck in their jobs. So look for freelancers or make somebody a really good offer.The added value of using freelancers is that you can hire someone with specific skills for a projects or problem without needing to educate or hire someone and have him/her do stupid work for 80% of the time. One of my customers uses freelancers exclusively for their (core) product development.

author: Spunky
author_rank: Regular Contributor
timestamp: July 26, 2013, 10:04:04 pm
content: I had exactly the same problem a couple of years ago. Electronics graduates who couldn't solder and didn't know basic components, software graduates who can't program in any language. I wonder what the hell they do in university now. In the end I just learned to do it myself.

author: vk6zgo
author_rank: Super Contributor
timestamp: July 27, 2013, 01:22:47 am
content: Have one or two really good,(& nice) Engineers------actually as a Tech,I found most "Ginger Beers" are nice folk.Hire some good Techs with experience in the real world.Listen to both groups.If you need to make hardware,hire some Assemblers.Don't waste the Engineer's or Tech's time in assembling stuff--you are paying them too much !

author: ah ffs
author_rank: Newbie
timestamp: July 27, 2013, 01:34:57 am
content: Quote from: owl_uk on July 26, 2013, 02:56:50 pmSurely this begs the question why there isn't a recruitment/jobs board in this forum. If a uni student/graduate/engineer is genuinely interested in electronics and knows their stuff then chances are they'd probably hang out in forums like this. Or maybe even be able to refer someone they know if asked to. Just sayin'.

author: Phaedrus
author_rank: Frequent Contributor
timestamp: July 27, 2013, 01:46:43 am
content: Quote from: ah ffs on July 27, 2013, 01:34:57 amI think the main reason would be predatory recruiters, who might take advantage of eager, but inexperienced posters who want to get into the industry, but don't realize that they're getting ripped off. Facilitating that type of thing goes against the ethos of the board I think.

author: ah ffs
author_rank: Newbie
timestamp: July 27, 2013, 02:47:20 am
content: Quote from: Phaedrus on July 27, 2013, 01:46:43 amThe eager are no less prone to predatory recruiters by the lack of a jobs board on this forum.I don't see how they'd be ripped off by recruiters either. If you're saleable they might get you an interview, if not you simply don't hear from them. This has been my experience at least. And if the job that they're offering isn't what you're after you don't take it.Not attempting to implement something simply results in more forum topics about the inability to find talent. Which is a real shame considering the potential network that exists here.

author: MacAttak
author_rank: Unknown
timestamp: July 27, 2013, 02:57:42 am
content: I'm guessing that the real reason for not having a "jobs" sub forum is that this is an international forum where the vast majority of jobs posted would be local by necessity.

author: ivan747
author_rank: Super Contributor
timestamp: July 27, 2013, 03:59:09 am
content: Quote from: c4757p on July 26, 2013, 06:12:37 pmIt's basic programming etiquette

author: EEVblog
author_rank: Unknown
timestamp: July 27, 2013, 08:15:29 am
content: Quote from: free_electron on July 26, 2013, 03:49:57 pmI'd give bonus point for those who point out that if you tried to measure it with a typical multimeter, it changes a bit. Not much, but a bit.And that it will also vary with temp a bit, unless the two resistor tempcos are matched precisely.I always ask simple "dumb" questions like this at interviews, and it is simply amazing how many people it weeds out.

author: KJDS
author_rank: Super Contributor
timestamp: July 27, 2013, 08:43:21 am
content: I used to start the interview with a potential divider question, but with a capacitor instead of a resistor as the bottom element. and a step input.Some folks failed to get close, most would give a reasonable answer, a few would remember equations and things like 1 x RC for 63% and 5 x RC for 99%. One candidate produced, from first principal, every answer I wanted using Laplace to derive the answers. It took him a while but it got him there.Recruiting good people is difficult. Good people know their worth, know what they want and few will want to work in a start up without excellent rewards. Most won't want to work in a large organisation full of unenthusiastic lifers. Most want either the flexibility of contracting or stability. Those after stability will probably have found it if they are any good and you'll need to be able to offer the world on a stick to get them to move.A good recruitment company can help, but it will need to be a very good recruitment company that specializes in the relevant field. Most are poor, though most are working to poor job descriptions and a lot of the "sales" people in the agencies have no more ability than a keyword search through a CV stack.So that's a lot of waffle, mostly saying it's difficult. Don't try and recruit graduates if you need them to be productive immediately. Don't recruit graduates if the organization doesn't have the time and skills to let them develop as engineers. If you need a specific task done quickly get some contractors in. If you need to develop the company in the longer term, get some older permies in, those approaching retirement who have been laid off are likely to stick around forever.

author: free_electron
author_rank: Super Contributor
timestamp: July 27, 2013, 03:01:19 pm
content: A classic quation i ask is the following :opamp , powered by 5 volts and 0 volts (to use a dirty word ' asymetrically)You can assume the opamp is true rail to rail and has no input current and other non-ideal crap.The opamp is switched as standard non inverting amplifier. Resistor to ground 1 k , resistor from out to - input 10k.I apply 1 volt dc to the + input. What is the output voltage ?90% answer 10 volts...9.999% answer 11 volts...Only one candidate in 20 years answered : it clips just below 5 volts...If you 'help' the 90% group they jump to the 9.99% group , correcting the divider mistake .Then i give a more 'complicated' one.An ideal opamp. So no trickery with power supply. This time as inverting amplifier. You see their face clear up.. This one they know , this is the one that doesn't have the 1+r1/r2 equation they messed up the first time. This is easy ..Same resistor values. 1k to + input, 10k from +input to output. Apply 1 volt dc to the 1 k.But... The -input is not tied to ground.Three scenarios :I tie - input it to 0.5 volts.I tie - input to 2 volts.I tie - input to 1 volt.All hell breaks loose...

author: ElectroIrradiator
author_rank: Frequent Contributor
timestamp: July 27, 2013, 03:50:28 pm
content: Quote from: free_electron on July 27, 2013, 03:01:19 pm(Emphasis added.)So trick question, despite saying it wasn't? Or just a typo?The actual questions are easy if you understand how an op-amp works, and can apply a quick coat of Ohm and Kirchhoff 'on your feet'.

author: Corporate666
author_rank: Unknown
timestamp: July 27, 2013, 04:19:26 pm
content: There are a lot of bullshitters out there, but then there are also a lot of people who are not a great fit for the job. There really aren't as many clueless idiots out there as people often think... but folks (not anyone here specifically, just people in general) like to elevate themselves by putting down others, so you often hear about the morons that came to job interviews.I remember years back interviewing someone at a dot.com and the other technical guy from our company in the interview asked what character goes at the end of every line of a C program. She didn't know. When asked "well, is it a period?" she answered she didn't know. Then she started to cry. I felt bad for her... but she was a graphics/web designer who oversold her skills to include JavaScript (when she probably copied/pasted some scripts into web sites she designed). She just wasn't a good fit - probably a great web person, not good for the coding side.On the other hand, you often get people who have been specialized into areas and their skills in other areas expired. Surely that happens to all of us? I've met really good engineers who are whizzes at analog but know nothing about microcontrollers. In an interview, they might not be able to even tell you what JTAG is but that doesn't mean they aren't EE's. Lots of guys get into management too - "director of engineering" will naturally transition away from the day to day PCB layout and schematic designs... several years of that and you become unsuited to being a rank-and-file engineer anymore.

author: free_electron
author_rank: Super Contributor
timestamp: July 27, 2013, 04:26:06 pm
content: Quote from: Corporate666 on July 27, 2013, 04:19:26 pmif i hire someone to do analog i wont be asking questions about microcontrollers. if i hire someone to code verilog i wont be asking qestions about opamps...if i hire an applications engineer he or she should know a bit of everything as they are going to go in front of a customer and there is no telling hat to expect in that system ...

author: Corporate666
author_rank: Unknown
timestamp: July 27, 2013, 04:39:38 pm
content: Quote from: free_electron on July 27, 2013, 04:26:06 pmI hear you, but as far as the OP complaining about quality of candidates sent over from recruitment firms... they see "engineer", they are going to match that against engineer in their database. The recruiter is a salesman and wants to get the sale. Industry specific recruitment firms (or those which are 'full service', including vetting candidates) are better - but they are much more expensive, and often companies prefer to do the weeding out in-house.

author: nctnico
author_rank: Super Contributor
timestamp: July 27, 2013, 07:56:56 pm
content: Quote from: KJDS on July 27, 2013, 08:43:21 amDon't forget about someone who know the product inside out and can translate customer demands into technical requirements and can test whether the functionality was implemented properly. Such a person (or a team) is worth more than the sales and engineering departments together: they make sure the product is what the customers want to buy!

author: KJDS
author_rank: Super Contributor
timestamp: July 27, 2013, 09:13:51 pm
content: Quote from: nctnico on July 27, 2013, 07:56:56 pmI once spent eighteen months implementing a state of the art New Product Introduction system. the key elements were making sure that the customer would end up with a product they needed at a cost that they were prepared to pay and would also result in good profits. Getting the design engineers trained to be able to communicate with customers directly, to understand their suppliers processes, understanding manufacturing tolerances all played a big part in reducing design times from customer specification to initial production run from nine to four months with a product that the customer was happy with.Part of "knowing the product inside out" is not only the product knowledge, but the production capabilities. There is as much skill in getting a new production process working well as there is in getting a new design working. If purchasing can't purchase parts in time, the customer isn't going to be happy. Gelling all the departments within a company takes a lot of effort and skill and most places that I've worked at have had some significant weaknesses doing that. Having said that, if the design guys don't understand how the customer is using the end product then you either end up with a specification that is too big for anyone to read, or assumptions get made that impinge on product quality.

author: EEVblog
author_rank: Unknown
timestamp: July 27, 2013, 10:03:22 pm
content: Quote from: free_electron on July 27, 2013, 03:01:19 pmMy "advanced" question is a voltage follower opamp with a pass transistor on the output. I asked what the output voltage is.The correct answer is "the same as the input"Then I ask "why do this".I'd give this one to anyone who is going for some sort of design job that would involve some analog.Not hard, but weeds out the 99% of tyre kickers.But I always understand that people can get nervous in interviews, but you can compensate for that.

author: Phaedrus
author_rank: Frequent Contributor
timestamp: July 27, 2013, 10:08:57 pm
content: Quote from: nctnico on July 27, 2013, 07:56:56 pmThanks for the self-esteem boost!

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: July 27, 2013, 10:17:33 pm
content: Something I'd ask anyone for an embedded firmware post to weed out the real programmers from the Arduino monkeys:What is the meaning of the C "Volatile" qualifier, where would you use it, and what effect might you see if it is omitted.Another good one :when would you consider using floating point in an 8-bit embedded application.Bad answers would include "when you need to display a fractional value" or "To get more accuracy". (FP gives range, not accuracy)Better answers would be "Never" or "only if you really need trig functions and can't use a lookup table"

author: KJDS
author_rank: Super Contributor
timestamp: July 27, 2013, 10:37:26 pm
content: One of the keys to interviewing experienced engineers is to find out what they do and don't know. Go through their CV and question them about a small aspect, so if they claim to know about oscillators, ask about phase noise. Guide them to write down the equation for phase noise (it's Leeson's equation). Now most folks can't remember it but google will provide it in moments, however an oscillator designer should be able to remember every contributor to phase noise and know whether that term belongs as a denominator or numerator in the equation. If they can manage that then lead on to the device noise figure term. Ask how and why it differs from the value on the transistor data sheet and so on and so on.if you have a vague knowledge of the subject then you can use that to lead the questioning and it soon becomes obvious if the interviewee understands what he's talking about or is just bullshitting.The other key for me is in the CV selection. I've seen brilliant CVs before, but the RF world in the UK is small, so I can always find a friend that the candidate will have worked with before. A quick phone call can save an unnecessary interview.The final thing to remember before hiring someone is that technical competence is only a small part of the requirement. If someone has common sense, a sense of humour and will fit well into the team then the team will help an average engineer on the difficult parts that they struggle with. If an excellent engineer has alienated the rest of the team then help will only reluctantly be given.

author: c4757p
author_rank: Super Contributor
timestamp: July 27, 2013, 10:41:15 pm
content: Quote from: mikeselectricstuff on July 27, 2013, 10:17:33 pmOoh, good one.

author: MacAttak
author_rank: Unknown
timestamp: July 28, 2013, 03:41:29 am
content: I'm guessing the usage of "volatile" in embedded is the same as for non-embedded? As in it essentially prevents caching of the memory address in local processor cache (and other instruction optimizations that might normally happen)?

author: c4757p
author_rank: Super Contributor
timestamp: July 28, 2013, 03:48:24 am
content: Quote from: MacAttak on July 28, 2013, 03:41:29 amYes.QuoteYes, but there's more to it than just that. Imagine 'i' were some control register or something:Code:int i;i = 1;i = 2;The compiler will optimize out line 2 because it appears not to do anything useful.Code:volatile int i;i = 1;i = 2;The compiler dutifully executes both assignments.

author: Rufus
author_rank: Super Contributor
timestamp: July 28, 2013, 04:04:23 am
content: Quote from: MacAttak on July 28, 2013, 03:41:29 amIt tells the compiler that something other than the sequence of instructions it is generating may read or write that variable and so optimizations based on the assumption that won't happen are not allowed.In embedded systems it is generally required for variables mapped onto hardware functions and variables shared between foreground code, interrupt handlers and possibly threads and cores.When you have volatile figured out you can worry about atomicity which is more painful.

author: function
author_rank: Contributor
timestamp: July 28, 2013, 04:56:34 pm
content: Quote from: MacAttak on July 28, 2013, 03:41:29 amThe only thing to watch out there is that it does not prevent caching in the processor or other hardware base optimization (e.g speculative accesses).

author: madires
author_rank: Super Contributor
timestamp: July 28, 2013, 05:24:16 pm
content: Quote from: Rufus on July 28, 2013, 04:04:23 amAFAIK the volatile type qualifier tells the compiler to add code to retrieve the current value of the variable each time it is accessed, because another thread/process or the MCU/CPU hardware may have changed it anytime. If copied into a register the compiler doesn't assume that the value in the register and the value in the original storage location stay the same. I think that's what you meant by optimizations.

author: owl_uk
author_rank: Contributor
timestamp: July 28, 2013, 07:18:13 pm
content: I like the idea of asking what 'volatile' means because a bad habit of people who do not understand what they are doing is to drop it in completely at random, along with bizarre uses of 'static' to 'fix' things. Knowing how to use it properly is a good sign. Delays made with for loops (and let us not start discussing where they should and should not be used -there is another whole can of worms there) can be compiled out completely (fair enough, they have no effect on the final value of any data) if the loop variable is not declared as volatile. Maybe a function called delay_something with an underlined volatile would be good and the question can be a simple 'Why is that there'.I'm not convinced of the value of op-amp questions, especially for firmware people. They aren't used as much as they were in the past. I've worked on a few consumer audio projects and there are fewer and fewer of these kind of components. Class D's with built in DSPs are getting cheaper every year. If you have a spare biquad then it is cheaper to use that for some filtering than by adding extra components. I'm not saying that op-amps aren't used or useful, just that using them as a proxy for familiarity with electronic design might be misguided. Not everything has one in any more. A circuit is more likely to feature a micro than an op amp. Balancing your crystal and keeping it near the micro is something you need to know, as is taking decoupling seriously. The gain of an op amp circuit might not come up so much these days. You could end up missing a good candidate because you're using an old metric of what a useful engineer is comfortable with.I think we would all agree that the candidate does not need to know all of the information they will ever need in the job when they do the interview. Engineers learn new stuff all the time. Experience is useful. An experienced engineer who is going to keep learning new stuff is incredibly valuable. Someone who thinks they already know all of it is not someone I'd want on my team. I'd rather have someone who knows very little but is aware of the gap in their knowledge. So at the interview I think I want to be reassured that the candidate has some relevant knowledge, a good general understanding and a good attitude. Really simple questions probably affirm the good basic understanding and then lead into discussions about experience because you can ask the candidate where they have seen something before. This also gives a chance to see how the candidate analyses things, which is an important skill. This is the context in which I think op-amp questions might be less relevant than they used to be. My main contact with op amp design issues has been in job interviews.

author: nctnico
author_rank: Super Contributor
timestamp: July 28, 2013, 08:33:26 pm
content: When hiring a programmer I usually let them take a test in the required language. That gives a good idea about the abilities and knowledge level. I make sure there are a few questions for which there is not just one answer. It helps to see if the candidate can defend his/her ideas. A test is usually a good start on talking about programming strategies etc. No need to get anal about volatile and other specific stuff peope can easely find using Google. Programming is about the ability to convert a problem into working code. The language is just a tool. Some people hold a hammer with their left hand and some with their right hand. Some use only 2/3 of the handle, other use the whole handle to hold a hammer.

author: MacAttak
author_rank: Unknown
timestamp: July 28, 2013, 11:59:26 pm
content: The nice thing about highly specific questions like the "volatile" one is that it helps you gauge whether a person is going to tell you that they don't know something, or if they are instead prone to just making shit up to avoid the reality that they don't know it all. Depending upon the role being hired for, that can be a hugely important character trait (and one which cannot easily be changed).I too like asking questions that have more than one answer, especially ones which have answers that are right/wrong depending upon circumstance. These give great insight into how a person handles real challenges.

author: Corporate666
author_rank: Unknown
timestamp: July 29, 2013, 12:13:37 am
content: Quote from: MacAttak on July 28, 2013, 11:59:26 pmYou and I think a lot alike. How can you possibly me a Mac guy?I remember a job I interviewed at...I can't even remember what the company did, but it was a swanky office containing a lot of buzzword speaking hipsters (before they were called hipsters). Their "CIO" asked me to demonstrate a bubble sort. I asked if he wanted the concept explained, or pseudocode. He said they don't use pseudocode, only C. I wasn't sure if he was kidding or not. So I quickly draw up on a whiteboard a nested loop to do a bubble sort.The thing he focused on like a laser beam was that in the test condition phase of the loop, I used a single equals sign, instead of a double. He wanted to know how anyone who really programs could not know the difference. Of course, I DID know the difference, but when I was programming, I'd swap around between SQL, x86 assembler, VBScript, JavaScript and C. It's a very easy mistake to make. But he couldn't get over it. I did end up getting the job, and leaving a week later after telling them it just wasn't going to work out. They had hired a kid fresh out of Carnegie Mellon who delighted in picking apart everything that everyone else did. You'd come to the office and he would say "I was reviewing you code last night and I noticed that you had two variables declared when you actually could have just used one if you reset it's value before calling such-and-such function. I made the change, so the program compiled into 2 bytes less memory".This was for PC programs - Windows executables. Not stuff where we had to fit stuff into limited memory. The guy just could not understand that he cost the company a lot of money in terms of his pay, and even more so in the work he was not getting done while he was scrutinizing everyone else's work to get a one-up on them.It's amazing how dysfunctional so many people can be.

author: vvanders
author_rank: Regular Contributor
timestamp: July 29, 2013, 01:06:08 am
content: Quote from: madires on July 28, 2013, 05:24:16 pmClose, volatile has no semantics around re-ordering of execution so it is not suitable for thread synchronization. That's why having platform atomic primitives is important, along with memory/execution fences and other fun stuff.That said I'd only expect people going down to the metal to know it(much like the restrict keyword).It seems that no CS graduates these days get exposure to C much less volatile. CE grads do a bit better but it still seems rare to find good candidates who weren't motivated outside of school.It would always shock me to see people come in for interviews with years of C/C++ experience(which was really just C++) and fail at implementing malloc()/free() given a fixed memory block.

author: vvanders
author_rank: Regular Contributor
timestamp: July 29, 2013, 01:09:27 am
content: Quote from: MacAttak on July 28, 2013, 11:59:26 pmYup, if I get an "I don't know" and they seem competent otherwise that's a huge plus.

author: xrunner
author_rank: Super Contributor
timestamp: July 29, 2013, 01:11:59 am
content: Quote from: c4757p on July 26, 2013, 03:10:39 pmCode:#include <stdio.h>int main (int argc, char **argv) {double i;for (i = 1.0; i < 10.0; i += 1e-12)printf ("%f\n", i);return 0;}Hah! That's nothin' bro - I can make it go up to 20!

author: Rasz
author_rank: Super Contributor
timestamp: July 29, 2013, 01:17:01 am
content: Look in hackerspaces, plenty of talent there.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: July 29, 2013, 01:20:17 am
content: QuoteThis is the more subtle part to check they really understand the mechanics of what's going on - a good answer being "code stops working when optimisation level is increased".

author: nctnico
author_rank: Super Contributor
timestamp: July 29, 2013, 08:34:24 am
content: Earlier in my career I was asked to write a makefile during an interview. I knew little about makefiles but I managed to squeeze this out of my brain:all:gcc in.c -o program.exeIt got a bit of a frown but it is a proper makefile

author: Unknown
author_rank: Unknown
timestamp: July 29, 2013, 10:42:24 am
content: Quote from: Corporate666 on July 27, 2013, 04:19:26 pmBeing good at both web design and also having good coding skills are quite rare.

author: madires
author_rank: Super Contributor
timestamp: July 29, 2013, 11:31:10 am
content: Quote from: nctnico on July 29, 2013, 08:34:24 amUnfortunately not.For a correct Makefile you would have to insert a tab in front of "gcc .." :-)

author: c4757p
author_rank: Super Contributor
timestamp: July 29, 2013, 12:56:02 pm
content: Quote from: Corporate666 on July 27, 2013, 04:19:26 pmIf the intended answer was "semicolon" the interviewer was a dumbass, many lines donotcontain one and clarifyingthatwould be a decent way to figure out who actually codes in C vs. who just knows what it looks like. Preprocessor statements, oprning lines for blocks, any statement split onto multiple lines.... The only character at every line end is "newline".(Esoteric tidbit to discover the truly detail-conscious: yes, technically even the last line is "required" to contain one, and some - mostly older - compilers actually do complain about that.)