Where Can I Find NT Kernel Programmers?
1010011010 asks: "We're developing a new distributed file system and need a Windows kernel programmer to start porting (from Linux) it to Windows NT 4.0 and Windows 2000. Universities tend to churn out Unix-skilled people, not NT people, and kernel programmers for any platform are a little hard to come by. It's difficult to find someone with experience writing NT device drivers. We don't want to use a recruiter -- we've had bad experiences with them, and they're expensive. We would rather pay a starting bonus than a headhunting fee. Any ideas? Any NT programmers?"
Universities tend to churn out Unix-skilled people, not NT people...
:-P
I think this is a problem. I mean, as much as I like *nix, we all know it is not the solution for everything. We would all love to see linux on all the desktops, but I don't see it happenning any time REAL soon.
Yet real universities (i.e. Case Western Reserve) do not even OFFER courses in anything having to do with NT. I would love to get credit for taking a course in the Windows API - not because I'm obsessed with Windows, but because, let's face it, there is $$$ to be made in Windows. Hell, I can't even learn Cisco stuff at this school. I'm stuck with *nix-style programming on Windoze machines (we learn text-based stuff on VC++ or Codewarrior).
The argument i've heard is that "that kind of thing is for tech schools." Fine. Then what the hell should I learn in CS at a university? Windows is important in our world now, and it shouldn't be overlooked. I'll come out of school and have to learn a WHOLE new method and style of programming to get the kind of job I want, assuming I stick with programming. I really wanna do networks, but as I said - I have to pay for CWRU and then pay Cisco for the router and the damn CCNA test. I want to learn skills I'm gonna need, not stuff I'm gonna need to FORGET.
Hell, I'd go into NT kernel programming or driver writing, if only for the experience of it. Someone tell me what course number I need... oh, wait. Damn. One less job for me.
I see this kind of thing as a problem with our educational system. Other countries have skilled workers in fields the moment they get out of higher education, yet American students come out with "the skills to learn what they need to do their job." I'll get out of school and get a job somewhere due to the reputation of my school -- but I'll have to spend 6 months there learning all the new skills I need for said job, when those could've easily been taught in school.
Well, I'll probably get flamed to hell or moderated down for this Windows-slanted post, but oh well. These are my feelings on the issue, and i think it's big enough a deal to risk my karma.
--=[Dilbert]=--
From a motherboard manual, error beep codes: S-L-L-L-SS: Speaker Error
unfortunately NT kernel programmers are hard to come by since the kernel is not open sourced and writing kernel modules is discouraged due to M$'s high pricing. you can try headhunting at micro$oft directly using one of their ex kernel guys but this will be $$$. of course, you can scrap the idea and simply write a usermode application which does it..winnt allows a non kernel subsystem to add calls to its ring 0 subsystem. see phrack magazine for sample code (they wanted to write a winnt rootkit but the principle is the same)...i *dislike* (well ok..*hate*..*loathe*) win9x/nt/2k by default anyway, so im sticking with unix kernel hacking.
The argument i've heard is that "that kind of thing is for tech schools." Fine. Then what the hell should I learn in CS at a university? Windows is important in our world now, and it shouldn't be overlooked.
Whoa, calm down.
You simply do not understand how the American higher education system is set up. Universities do not exist to train you a specific set of skills, they prepare you for you future by teaching you how to learn. In a CS program, it is done using some arbitrary programming language and computer platform because those skills are just that, arbitrary.
Imagine being in school 10 years ago, when DOS was hot, and they taught you all about memory segmentation, specific DOS system calls, how to program the CGI card, etc. You would be in the situation of having to learn an entire new skill set now anyway.
That's why you have to take those physics classes, and calculus, etc, when you are in a university, because those classes teach you how to solve problems in the general case, and how to learn how to solve new ones you haven't been specifically taught how to solve.
You want to know about Cisco routers and the Windows API, huh? That's fine. Personally, I want to be the person who obsoletes those technologies. As Dennis Ritchie said in the August, 1984 issue of the CACM,
So, you are right. Tech schools are there to train you, while universities exist to educate you. If it's training you want, which is what it sounds like, either enroll in your local tech school or community college.
Some guy named Chris
Two thoughts:
1) wow, you got a free job posting on Slashdot. That has a LOT of value in and of itself. You might get the person you need just from this article.
2) Otherwise, hire a really bright programmer with vaguely related experience. Someone who has worked at the systems level in Linux or UNIX should be able to move over to the NT world - the details would be different, but the underlying ideas would come over.
... because they gave the world ctrl2cap. Sure, there might be other ways, but I like the idea of doing it with a kernel mode device driver. Try www.sysinternals.com I'm not sure if they do consulting work, but the site is well worth checking out.
I mean the concepts of CFG, push-down automata, dfa, np-complete and all that other jazz...hey, it's not where the money is right?
And let's face it, you're only in it for the money.
Hmm...20 years ago, I would've told those interested in the cash aspect to get into Cobol...10 years ago, C. Now, it's C++, Java, Perl, Python and a few other things.
Let's see...I've got Knuth's _The_Art_of_Computer_Programming_ sitting on my desk....wanna guess what programming language it uses?
Windows NT filesystem development, particularly
for distributed systems (so you need to interface
with a network transport as well), is very tough.
I'd recommend using a company like OSR
(http://www.osr.com) rather than trying to do it
inhouse.
I, and my company teach most of these classes to aspiring geeks. We ALSO teach linux- (- that's me proving I'm not totally assimilated :) ). As a person who has to find VB and C++ programmers from the MS world, I can tell you that if you want a really talented one, you're going to need to offer a very good salary package. I running your own ad on MonsterBoard, and American Job Bank (also any other job board you like), maybe a newspaper ad in your area, AND check with your local MS Training center (CTEC). You never know, they may be churning out a fresh crop of programmers- of varying skill levels. This si how I find MS programmers and Network personnel. It's worked for me for 7 years, should be universal. http://www.monsterboard.com http://www.ajb.dni.us http://www.panurgy.com above=(company I work for that does this sort of thing. One of our programmers did work on the NT4 Kernel) l0ki
"You never truly understand a thing until you can explain it to your grandmother" -Albert Einstein
it was CGA... and EGA, and MDPA, and so on.
Ahh, fondly do I remember bashing bits to registers in assembler, doing instruction counting delay loops, and the wonderfull 286 LOADALL opcode...
OK, not that fondly.
You can't know how happy I am that it is difficult to find NT Kernel geeks. I just made the big jump into that Microsoft quagmire. I quit my job 23 days ago because I was offered an amazingly good job if I could demonstrate skill in this area. I am currently spending my time preparing to take this job(either I'm dedicated or insane). It would be really cool if someone would offer me a amazingly cool job working with Linux....maybe setting up a 4000 node B........(I can still dream...
Please, don't take this the wrong way, but I think you are expecting the wrong things from school. It sounds trite, but you get from your education exactly as much as you are willing to put into it.
In other words, if you are interested in something, then learn about it on your own. When I graduated with my degree, I had real, professional experience in AIX and Solaris, as well as non-professional experience programming in several languages not taught at the school.
I did much more than what was required of me to get my degree. I went out and found a job as a sys admin for, of all things, a food distribution company. The pay was crap, but it was great experience for when I graduated. And I started reading source code, learning how things were done outside the narrow world of undergraduate studies.
I bought books about programming languages that interested me, and worked through them. I joined the local ACM, and got involved with programming contests. I started a student organization for people interested in artificial intelligence, and had a faculty advisor join us who's PhD was in neural networks. I arranged to take a self study course under that same professor researching algorithmic music composition.
I'm not bragging here. Nothing I did you cannot do as well. The key is to accept the limits of what your institution offers, and declare yourself responsable for anything else you want to learn. There is no shortage of information freely available on the internet and in your school library, if you are only willing to seek it out.
Good luck to you, I mean it. But, in the end, it is you alone who is responsible for what you get out of your education. Be willing to do above and beyond what is expected of you, be willing to work while in school for less than you are worth just for the experience, and be flexable in when and where you find learning opportunities. Those things will push you farther and faster towards your goals than banging your head against the wall wishing for the system to change.
Some guy named Chris
Thought no. 1.
NT is not UNIX.
It was written in a diferent culture with a different target and a different purpose ( make B.G. richer?). Two of the base assumtions you can make are that NT is not modular you cannot plug in a new file system because the rest of the OS expects an "NTFS" file system to be there, "NTFS" specific calls are embedded in MFC classes, and, therefore most programs. The second assumption is that the underlying file system and the widley distributed MFS classes will be subject to change at the whim of engineers in Redmond.
Thought number 2.
This should probably be implemneted as an NT service, not as device drivers. Anyone who can read and understand a manual and who can program (surpisingly few computer "profesionals" in my experience ;-) ) could write a viable NT service program.
Thought number 3.
Have you got an NT market?
The defualt NT file system is pretty good and can easily be distributed to other platforms via the various "NFS" on NT products. Plus NT installations have a culture of using databases when the underlying file system is not enough. I mean could you provide a File System with more functionality than Oracle V8.0?
Old COBOL programmers never die. They just code in C.
The other responses have highlighted very well the main reasons why you're wishing for the impossible and the inadvisable, so I'll add just a couple of small riders.
...]
There simply isn't the time during a 3 or 4-year degree course to teach the general educative material and also to provide the vocational training that you want. Educational lessons can be painted in broad strokes so a lot can be crammed in to a short period of time. In contrast, vocational training necessarily has to deal with a large amount of specific detail and only a tiny part of that has any real educational value. Even worse than the low educational density though is that the details can often obscure any educational benefits that might be had from the exercise, ie. you churn out IOS experts that don't know what *really* happens when you enable a particular feature. It's almost the antithesis of education.
There is also another point to consider: should education bias students before releasing them into a nominally free market? Of course it's impossible to avoid bias altogether, but one sure way of promoting bias is to do as you seem to want and actually *focus* on a leading market player. [Shudder
In contrast, everything you're looking for can be found in tech school, where there is no or little pretence at providing a general education. Go for it, but it will not serve you well in an ever-changing future, mark my words.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
NT is not UNIX.
It was written in a diferent culture with a different target and a different purpose ( make B.G. richer?). Two of the base assumtions you can make are that NT is not modular you cannot plug in a new file system because the rest of the OS expects an "NTFS" file system to be there
What utter bullshit. NT is a heck of a lot more modular than Linux. It's got a HAL (hardware abstration layer) and is a microkernel...have you EVER tried to even use the NT DDK? The kernel is compeltely modular, and writing your own Filesystem is supported. NT expects NTFS? uh huh, I guess NT's support for FAT16 and FAT32 are just imaginary.
"NTFS" specific calls are embedded in MFC classes, and, therefore most programs. The second assumption is that the underlying file system and the widley distributed MFS classes will be subject to change at the whim of engineers in Redmond.
ROFL, NTFS specific calls are embedded into MFC? Are you a complete utter idiot or what? Firstly, MFC source code is compeltely free, download the Windows 2000 SDK and you'll notice the 64bit versions of MFC are there too. If they are 'subject' to change, you can alwayus change them back. The filesystem in NT is 'transparent' there are no NTFS specific calls in MFC to make MFC work. That's the funniest thing I've read for a while now.
This should probably be implemneted as an NT service, not as device drivers. Anyone who can read and understand a manual and who can program (surpisingly few computer "profesionals" in my experience
Excuse me? An NT Service? Oh, and how the heck is he supposed to write a filesystem driver without writing a driver, but by writing a serice? Do you know what an NT service is?
The defualt NT file system is pretty good and can easily be distributed to other platforms via the various "NFS" on NT products. Plus NT installations have a culture of using databases when the underlying file system is not enough. I mean could you provide a File System with more functionality than Oracle V8.0?
Well, you seemed to have lost some of that ignorance here.
I'm an NT kernel programmer (though currently working on Solaris). I've written drivers for DOS, Win3x, Win95, and Windows NT 3.5x/4.0. I haven't yet written any drivers for Windows 2000 but I have kept up to date with kernel changes (including file system driver changes). Much of my work on filesystems relates to anti-virus software. You can contact me at smr@essemer.com.au if you'd like to chat. If it will relate to a potential job offer, you should know that I reside in Melbourne, Australia and am not willing to relocate (ie. I'd want to work remotely, assuming that you're in the US). There are other ways to accomplish what you have described, but it depends on the level of integration with components of the OS that you require.