PDA

View Full Version : devicedriver_position@opengl.org



glVertex3f
05-17-2002, 10:56 AM
Why are they having such a hard time filling this position?

V-man
05-18-2002, 05:08 AM
I guess there arent many people who learn that, or care for writing device drivers or do assembly.

A lot of students I know arent interested in low level stuff. They are pretty much content with VB and using other peoples libraries.

V-man

glVertex3f
05-18-2002, 06:23 AM
This job description is strikingly similar to the ones posted on the ATI web site.
http://www.ati.com/companyinfo/careers/marlborough/206.html
http://www.ati.com/companyinfo/careers/marlborough/207.html

So is it that no one wants to work for ATI? Or do the pay/relocation/benefits suck?

They've been advertising this position for MONTHS.

[This message has been edited by glVertex3f (edited 05-18-2002).]

jwatte
05-18-2002, 10:04 AM
I have no idea what the position is or why it's been open for months. Perhaps it's just a generic description to solicit resumes (common among recruiting). Anyway, having been involved on many levels of hiring in the past, I can offer this personal opinion:

Finding very good, very low level people with sufficient scope of experience is very hard. If you're doing things that literally may make or break your company, you probably can't afford hiring people who are "only half decent". If there's also relocation problems (you're not in a hot-spot) and you also have corporate budgetary constraints to worry about ("but our OTHER people at Staff Engineer IV level don't make that much") it can be very hard to fill these kinds of slots.

Hull
05-21-2002, 01:49 AM
Ever thought about they wanting more than one person? They are sucking the market dry from devicedriver developers. They are scarse indeed.

Robbo
05-21-2002, 06:01 AM
We have 2 device driver developers at our place. You never met a stranger couple. However, I will say that if you want to be a device driver programmer, its easier to come from the bottom up (from an electronic engineering background) than from the top down (a high-level software background).

These guys really know how the hardware works http://www.opengl.org/discussion_boards/ubb/wink.gif

And yes, they are like gold-dust.

Eric
05-22-2002, 07:47 AM
My fiancee did an engineering school in electronics (ENSEIRB, Bordeaux, France) but they never got to the point where they knew anything about writing device drivers.

Interestingly, one third of the school was studying computing and the two other thirds were studying electronics. If you look at the jobs they got in the end, one third was in electronics and the two other thirds were in computing !

I guess it is not that easy to become a device driver writer: you need to know the hardware, you need to know the software and both of them change when the device itself changes !!!

To be honest, I used to like low-level things (Assembler 68030, DSP 56001 on Atari Falcon 030) but I now tend to prefer high-level things such as software development in C++. Don't get me wrong: it is useful to know these low level things but they never get you very far if you do not use them for what they're intended: develop low-level stuff such as drivers !

Anyway, to summarize, I agree with V-man. People that could fill this position must be very rare these days...

Regards.

Eric

AdrianD
05-22-2002, 10:57 AM
Some years ago i had a job as device driver developer for 3D HW on Macintosh.
I was hired beacuse of my expiriences/knowledge in low-level hardware and assembly programming and my 3D-rendering knowledge. at this time - 1996 - it was ofcourse software rendering.

I was programming RAVE (=Quickdraw3D driver interface) and Glide for the companys Accelerators(Voodoo1,Voodoo2, Permedia 2).
As the first OpenGL implementation for macintosh was introduced (at the Apple WWDC'98 by Conix in San Jose - as far i can remember) my Boss told me to check it out, and to write an driver for his hardware.

After i checked it out, i quited my job, because i wanted to do all that cool stuff by myself, and not just "preparing it for others".

So what i'm trying to say ?
i think, this is one of the biggest problems in finding driver programmes for 3D stuff:
You need lowlevel guys which are also familiar with Highlevel graphics programming. And most of this guys choose a job, where they can do both. And this isn't driver programming. In most cases this guys end up programming fixed hardware configurations, where they can do their Low-level-assembly optimizations while still using fancy 3D hardware.
I know it and i did it. http://www.opengl.org/discussion_boards/ubb/wink.gif

This "fixed hardware configurations" are also called:
- PlayStation, PlayStation 2
- Nintendo 64, Gamecube.
- Dreamcast
- XBOX

that guys, which don't want/need to programm 3D-Stuff chooses HW like GameBoy and GameBoy Advance...


btw.:
one of the reasons, why i love to programm NVIDIA hardware is because i can do such cool low-level-assembly programming with their hardware... (vertex programms, Register combiners & stuff)

Elixer
05-22-2002, 11:28 AM
I also don't see very many chipset makers release full docs so you can roll your own drivers, and practice a bit. As it is now, you have to find REAL old stuff to practice on, and not to mention the crappy x86 ASM code (compared to say 680x0 ASM) (at least with windows platform).

What ever happened when companies like say C= Amiga would release their nice HRM, with all specs layed out? The good ole days! http://www.opengl.org/discussion_boards/ubb/smile.gif

jwatte
05-22-2002, 11:33 AM
> they never got to the point where they knew anything about writing device drivers

There is no college which teaches this.

There are a few classes and seminars which will get you an introduction. Then it's down to learning by doing.

Not only do you have to understand the implications of a device interface (sitting on the receiving end of a bunch of ioctl()-s) but the programming model inside a kernel is very different from that of a regular user program. Especially if that kernel is running on more than one CPU at the same time :-)

When your interrupt handler routine page faults (assuming you're on a kernel where this isn't OK :-) you'd better have a fair bit of experience in how to debug things and what the rules of the environment you're executing in actually are. Those things are part of "What they never told you at MIT" (although there may be one or two classes that go into overview or some subset of this if you're in a MS program)

mcraighead
05-22-2002, 12:16 PM
Bah. They don't teach any of the good stuff here at MIT any more. You have two classes that are 100% done in Scheme. An algorithms class that doesn't use any computer language at all and is taught with the CLR book, which is totally theory-heavy. If you're lucky, in the computer systems class they'll show you a "scheduler" written in... Java. My compiler class had us write a compiler -- in Java -- for a clone of Java.

People without a doubt graduate from here without even knowing what a pointer is, or without being able to write C code. And yes, they graduate _in_ computer science.

Bitter at the failure of this school to provide a decent computer engineering curriculum,

- Matt

mcraighead
05-22-2002, 12:23 PM
To add to my bitter remarks...

They also overemphasize AI. The labs that get all the hype are the AI Lab and the Media Lab, but as far as I can tell, both of them seem to just be sinkholes for donors' money. The required AI class is laughable; they take this attitude that practically everything done with computers is "AI", and so you get to learn about search algorithms that belong in an algorithms class, not an AI class. Oh, and of course, you learn them in Scheme.

LCS puts out some decent research here and there, but some of it (can you say "Raw Project"?) is just pie-in-the-sky absurdities.

Maybe I just hate academia in general. http://www.opengl.org/discussion_boards/ubb/smile.gif

- Matt

PH
05-22-2002, 12:31 PM
Originally posted by mcraighead:
My compiler class had us write a compiler -- in Java -- for a clone of Java.


You wouldn't happen to be talking about JOOS, are you http://www.opengl.org/discussion_boards/ubb/smile.gif ? It's used everywhere...

[This message has been edited by PH (edited 05-22-2002).]

mcraighead
05-22-2002, 01:14 PM
They had "Decaf" (easy) and "Espresso" (for crazy people with too much free time).

I took it earlier, but:
http://web.mit.edu/6.035/www/

- Matt

V-man
05-22-2002, 02:09 PM
>>>Maybe I just hate academia in general.<<<

Im surprised that you are saying that about MIT. Isnt MIT on the #1 wish list of every techy wanna be student?

PS: I definitly hate it. Math for computer science was BS. I prefer calculus courses. ... and those not-so-great linear algebra courses turn out to be extremely useful now!

Ah yes, the big creativity drain that is school in which everyone must learn the same thing in short amount of time while keeping things as general as possible.

V-man

Humus
05-22-2002, 02:28 PM
Originally posted by mcraighead:
My compiler class had us write a compiler -- in Java -- for a clone of Java.

Ah, sounds very very similar to "fika-projektet" ("coffee-project") we did here at Luth. http://www.opengl.org/discussion_boards/ubb/smile.gif A java-clone implemented in java. Cool for learning the language. I'm quite disappointed at my university too, they teach too much java, too little C and hardly anything C++. I have classmates who hardly are able to deal with malloc/free and basic string, char *, operations. Even some of the base code we have been using in labs in some courses where we used C it's strikingly obvious that the guy who wrote it is from the java generation of programmers. Lot's of malloc(), no free(). And that's what we're supposed to build our apps on http://www.opengl.org/discussion_boards/ubb/rolleyes.gif

mcraighead
05-22-2002, 04:19 PM
MIT isn't so great. I think the program is far too theory-heavy.

- Matt

jwatte
05-22-2002, 06:05 PM
I was a CS guy. In our school (KTH), at least at the time, the Comp Sci people had the most required math of everyone (even more than the physics people, IIRC!)

Evenso, I now (ten years later) wish that I had either gone to a math program (for getting really hardcore on something that has a 1000-year half-life) or gone to an EE program (where they taught a lot more of the things I actually had to learn on the job).

Comp Sci is mostly useless if you want immediately applicable skills. Software Engineering is where it's at for that, and even there it's a lot of "here's how to write SQL report parsers in Visual Basic."

I guess to be good, you gotta have all three: Comp Sci for theory, Soft Eng for practice, and actual experience doing the real thing.

Anyway, which goes to show that I'm not surprised that job postings like this stay up for long. In fact, I think any company in need of a person like this might need more than one, and will just keep running the posting as a feeler to get good candidates.

cass
05-22-2002, 08:57 PM
Well, this thread has gone wildly off-topic, but I'll add. http://www.opengl.org/discussion_boards/ubb/smile.gif

The most useful things I ever learned in school were the basics of math and science. I learned a lot of useless specifics, too, and I think that's the reason that universities try to be theory-heavy. In school, it's better to learn important ideas in a useless language than useless ideas in an important language.

Plus, it's easier for the professors to keep track of the important ideas. They change less frequently.

Along the same lines, academia doesn't track transient stuff well. They can tell you all about sorting algorithms, but don't ask them about current graphics architectures. A game programmer's likely to know much more about current graphics architectures.

I'll end my irrelevant musings now. http://www.opengl.org/discussion_boards/ubb/smile.gif

Cass

tiger-ed
05-23-2002, 01:03 AM
Just read through this thread, very interesting.

We are currently looking for someone to undertake OpenGL Graphics Driver and chip development here in the UK.

Device driver writing and hardware level programming is a pre-requisite.

Bit of a longshot but anybody know of a developer based in the UK/EU?

Thanks.

Eric
05-23-2002, 01:32 AM
tiger-ed, can I ask which company you are working for ?

Regards.

Eric

Shag
05-23-2002, 01:42 AM
It is an interesting thread.

It's funny how the things that used to be considered important never get mentioned in modern CS courses. I remember one of the first things I was officially taught (almost 20 years ago now) was two's complement math. I (being a contractor) worked with a couple of graduates not too long ago who had never even heard of it!

As for a basic programming skills, if you didn't know assembly forget it. I suspect many people who graduate nowadays wouldn't know what assembly even looked like, let alone how to program with it. I still go bleary eyed thinking about the XY registers and the accumulator! (remember those?)

I accept that CS in general is very diverse, and that perhaps there is a need for many different skills - but I also think learning the basics should be forced upon everyone ... much like learning latin was!

BTW Eric and tiger-ed ... where abouts are you in the uk? I'm in Kent.

CViper
05-23-2002, 02:38 AM
I just had a programming course at my school, which happened to be c++ (i already knew c/c++ (and even some assembly http://www.opengl.org/discussion_boards/ubb/biggrin.gif) before, but reading the stuff is required for reading on).

Most of the people sat there about 1/3 of a year trying to figure out input using the cin/cout classes. During that 1/3 of a year we didnt even "learn" how a string works, actually we only barly covered functions/variables.

Guess I wont be looking forward to the next year's courses :p And I especially choose Mathematical/Computer Sciences ("Natur - Matte/Data")... Oh, well at least the math part is ok.

Robbo
05-23-2002, 02:48 AM
Originally posted by mcraighead:
To add to my bitter remarks...

The required AI class is laughable; they take this attitude that practically everything done with computers is "AI", and so you get to learn about search algorithms that belong in an algorithms class, not an AI class.

- Matt


I majored in `Intelligent Systems' - what you are talking about is `classical' AI, which essentially all boils down to a search problem (across some database that in actuality must be probably near infinite in size!).

Neural Networks were more interesting though. Neither paradigm is suitable for consciousness and hence, in my opinion, true intelligence.

But thats another story..... http://www.opengl.org/discussion_boards/ubb/wink.gif

HenryR
05-23-2002, 02:49 AM
Do you guys think it is possible in a computer based degree to provide adequate levels of both computer *science* and computer *engineering*?

My university course falls between two stools. We don't do enough maths, but the systems courses have been rather mediocre (main project was building a voltmeter out of a z80).

Perhaps there is a need to branch computing off into two related courses: computation (maths heavy, plenty of algorithmics, solid treatment of Godel and the like) and computer engineering (more electronics and hardware work).

As it is at present, graduates from here can not necessarily either read Knuth or write an operating system. (as a result of the course alone; people here are pretty bright in general though).

Henry

Robbo
05-23-2002, 02:55 AM
Originally posted by HenryR:


As it is at present, graduates from here can not necessarily either read Knuth or write an operating system. (as a result of the course alone; people here are pretty bright in general though).

Henry

Well, I think if you asked the academics, they will tell you their goal is to provide a broad-based introduction to any given area for a student. In most cases, specific skills are taught either by the company you work for after or by post-graduate study (or by self-teaching of course).

In general most unis do this well. You will learn enough of the basics to be able to find further information you might need for any given task.

HenryR
05-23-2002, 03:58 AM
Well, I think if you asked the academics, they will tell you their goal is to provide a broad-based introduction to any given area for a student. In most cases, specific skills are taught either by the company you work for after or by post-graduate study (or by self-teaching of course).

In general most unis do this well. You will learn enough of the basics to be able to find further information you might need for any given task.



Well, yeah, but my point was that perhaps computer science as it stands now has too broad a base. I don't mean to suggest getting more *specific* in the teaching (until the last year perhaps), but giving yourself room to get *advanced*, which is obviously distinct. I don't want to be taught how write device drivers for Linux. I do want to be taught how to write device drivers (if I were a computer engineering kind of guy).

Different places strike different compromises, especially with regards to how much you are expected to pick up for yourself. A good example is the question of language teaching. Some universities have a C++ / Java / your OOP language here hand-holding course, where you are taught a specific language thoroughly, where other places assume that you are bright enough, given a rough understanding of procedural techniques and a textbook, to pick up all the languages you need.

I could go on for ages. But I won't http://www.opengl.org/discussion_boards/ubb/smile.gif

Henry

Robbo
05-23-2002, 04:48 AM
True enough. When I was at University, writing a DD would have been a good dissertation project. Of course we learn about devices and how they integrate with the OS at a higher level but most students would lack the lower level skills to be able to understand\write one themselves. Of course, you being the brightest student in the class could manage it!