Page 1 of 2

Applications of OSDev

Posted: Fri Aug 18, 2017 1:36 pm
by human00731582
Hey there, folks!

Apologies for making the title so generic (and possibly misleading), but I've had something on my mind lately...

Due to personal circumstances, last year I had to drop out of university (medical-related). Problem is, my financial aid, a willfully-chosen and devastating system here in the US, has officially run out. No more help to pay. This is disadvantageous because I come from a not-so-affluent family and would like to continue forward pursuing a CompSci bachelor's degree.

So basically what I'm here in the off-topic section to ask about is whether or not having my own home-brew OS would be a leg up over new grads if I can develop it into something very complex. Right now it is still in its inception: a basic GUI video driver (finally out of mode 03h), but still primarily shell-mode with a VGA driver (text mode), no FS because of USB booting (damn that 600+ page USB spec :roll: ), etc etc. Not so bad for Orchid being a little over a month old.

Would my OS provide leverage in the hiring process, even though I only have a mere business associate's degree? These days getting a good job is akin to breaking into a military outpost, no matter how much the government inflates our statistics.

This is not to make it seem like I'm here at OSDev for leverage -- I love doing this. Regardless of how much or little it helps me, I will continue developing my 32-bit OS in full assembly, and will eventually implement a UEFI x64/long-mode variant of my OS in C when I have the experience of the initial project behind me.

Thanks, hope everyone has a wonderful day!
-human

P.S. I like appositive parentheses. :mrgreen:

Re: Applications of OSDev

Posted: Fri Aug 18, 2017 4:06 pm
by simeonz
Certain employers in the driver-development and virtualization software industries will look favorably on knowledge and practice with OS development, even though it is an esoteric hobby project. I know, because I have seen people apply this to their advantage. Familiarity with existing mainstream OSes may sometimes be more helpful, depending on the exact needs of the employer. If you mean high-level application development, I cannot guarantee that it wont be even an obstacle to being hired. :)

Re: Applications of OSDev

Posted: Fri Aug 18, 2017 6:02 pm
by Geri
to be absolutely honest with you, this kind of skills are not honored any more. nowdays, corporations are looking for trained software operators, who can click in sap, or can put down a windows on c# where no real programming is needed to create any program, just a data processing interface.

today, computer industry is changed, computers are just clients displaying image files, diagrams, and terminals to send emails, enter an item to an ERP, or to send messages on facebook to somebody who you are dating, or watch videos, listen musics.

none of the above requires programming

with programming skills, you can be a freelancer developer, a game developer, an embedded system developer, or you can create something where programming is needed as an ,,added value'', so where not the software is the product, instead, you write the software to more efficiently create something (like you are mixing some acids to create some material which needs a program to precisely rotate it for x time, then it must rotate it for y time, then it must notify you with a sound to pour something else to it, then it must enable a heater for certain amouts of time, it must watch the color with a webcamera and stop when the color reaches a value, etc).

put the honest question up to yourself - would you hire a person who can write pixels on the screen with a vga driver? its prety impressive, but it does not worths anything.

computing have 3 layers. one is science, one is art, and one is business. you must at least understand two to create a living from it. 99% of people in this industry understands 0, 0.99% understands 1, and only the rest 0,01% can actually achieve things and live from it without becoming the libreoffice excel data guy in an office.

Re: Applications of OSDev

Posted: Sat Aug 19, 2017 9:40 am
by Korona
I don't think that writing your own OS helps that much to find a job. At least, I don't think that it will help you more than doing other complex projects. Kernel and driver development is nothing "special" and requires the same set of skills as other complex projects like games, database engines, web browsers orvirtual machine monitors. However contributing to an existing OS (i.e. Linux) might help you to get a job where you can do OS development.

Re: Applications of OSDev

Posted: Sat Aug 19, 2017 1:16 pm
by Solar
Generally speaking, trying to "sell" your hobby OS to a prospective employer (as in, "this cool thing I did", not as in, "give me money for my OS") might not be that good an idea. There are several different ways this could give the wrong impression -- too nerdy, or not having a sense of scope, to name just two.

If you have a project that has "gotten somewhere", i.e. more than a "hello world" boot image, then by all means include it in your CV, and if the employer is interested in talking about it, do so. Just be aware that, unless they are hiring you to do OS-related work, getting too "worked up" on the subject might, again, send the wrong message. They want you to be enthusiastic about their projects, not yours. 8)

What working on an OS project will do for you is giving you experience with all the things that go beyond the "let's whip up an executable" kind of development. Version control. Issue tracking. Build systems. Test environments and automatizing. Documentation. Working with third-party APIs. If you're lucky, collaboration. All these are important experiences and skills, and they will make you a better developer, both in reality and on paper.

Then again, so would any other kind of software project that goes beyond the "let's whip up an executable" stage. The difference OS work makes, as opposed to e.g. a game, or a handy app, or a web application, is if your prospective employer deals in these kind of things.

Re: Applications of OSDev

Posted: Sun Aug 20, 2017 6:47 pm
by human00731582
Wow! Some insightful replies here, thanks for all the responses!
simeonz wrote:Certain employers in the driver-development and virtualization software industries will look favorably on knowledge and practice with OS development, even though it is an esoteric hobby project. I know, because I have seen people apply this to their advantage.
I know driver development can be grueling work and a headache at best, but needless to say, I am interested in low-level applications and interfaces. Do you perhaps know a way one would break into the driver development industry? I imagine years of experience to be the most helpful, next to incredible skills.
simeonz wrote:computing have 3 layers. one is science, one is art, and one is business. you must at least understand two to create a living from it. 99% of people in this industry understands 0, 0.99% understands 1, and only the rest 0,01% can actually achieve things and live from it without becoming the libreoffice excel data guy in an office.
A wonderful perspective, and you are absolutely right. Technically, most of what we build here at OSDev is useless to any corporation or normal person because you're essentially reinventing the wheel. I suppose the above response (driver development) is the only one where an OSDever might hold some ground. Without a college degree, one would have to be an absolute savant to get a job from a hobby OS, I'm sure.
Mind if I quote you in my signature? I love the layered metaphor. :) Thanks!
Korona wrote:However contributing to an existing OS (i.e. Linux) might help you to get a job where you can do OS development.
I have considered taking up working on a Linux dist with others in a collab, but I'm not sure what's it is like to be on a dev team (another reason I am less likely to be hired), so I'm not sure what it entails other than pulls/tickets/etc on GitHub. Also, I'd like to contribute to a pure-assembly (Intel) section of a Linux distro. Though I'm sure there's one out there, it's got to be esoteric at best -- I'm not sure honestly, I have yet to look it up. :D
Solar wrote:Generally speaking, trying to "sell" your hobby OS to a prospective employer (as in, "this cool thing I did", not as in, "give me money for my OS") might not be that good an idea. There are several different ways this could give the wrong impression -- too nerdy, or not having a sense of scope, to name just two.
Another interesting and refreshing perspective. By your advice, I think I will boast about it during interviews, but not show them unless they inquire. Orchid is beyond just a bootable image (not widely tested, not ready to do that in the least), but it is basically just a shell that gives you system info and hex dumps when you request them. No file operations, complex drivers, etc etc, but it's getting there little by little. :)
Solar wrote:What working on an OS project will do for you is giving you experience with all the things that go beyond the "let's whip up an executable" kind of development. Version control. Issue tracking. Build systems. Test environments and automatizing. Documentation. Working with third-party APIs. If you're lucky, collaboration. All these are important experiences and skills, and they will make you a better developer, both in reality and on paper. Then again, so would any other kind of software project that goes beyond the "let's whip up an executable" stage. The difference OS work makes, as opposed to e.g. a game, or a handy app, or a web application, is if your prospective employer deals in these kind of things.
That's the thing though, this is all self-contained so far. I haven't collaborated before on a programming project. I don't use anyone else's libraries. I don't use github, it's all done on my PC through Atom and backed up on two external USBs regularly. The backup devices contain most of my old versions that have major changes, such as new commands and new compatibility changes. I do understand what you're saying though, about going deeper than building a surface-layer, single-interface application: OSDev is all about building a versatile and dynamic creature that can exist on as many systems as possible. I'll get there one day. :mrgreen:

In the meantime, by your advice, I think I'm going to focus some more on another language I can be passionate about (something a bit higher-level), and flesh out a portfolio somehow. Instead of the almost full-time work I've been doing on it, I will make orchid an actual hobby OS (makes me sad to downgrade it :-| ). I think I can build a fruitful portfolio with something like C++ in 6-9 months. Just have to find ideas for projects to work on. If you have any suggestions, I am all ears. :D Thanks again for the insight!

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 1:06 am
by Solar
human00731582 wrote:
Solar wrote:Generally speaking, trying to "sell" your hobby OS to a prospective employer (as in, "this cool thing I did", not as in, "give me money for my OS") might not be that good an idea. There are several different ways this could give the wrong impression -- too nerdy, or not having a sense of scope, to name just two.
Another interesting and refreshing perspective. By your advice, I think I will boast about it during interviews, but not show them unless they inquire.
The idea was more like, do list the project in your CV, and then see if they ask about it in the interview. If they do, answer, but apply some restraint.

Imagine yourself in the HR guy's shoes. He wants to know what kind of a developer you are, if you know your stuff, and how you communicate. If you start monopolizing the interview to talk about bootloader code or memory management going all nerd-crazy, that's probably not what he's looking for.

Unless he is. 8)

In my experience, I was never be asked in an interview to show previous code. Actually, I was never asked to show code, period. Not even a "how would you code this" question. Which coincides nicely, because I think that kind of question is stupid in an interview situation. It is much more about you as a person.

They could judge my technical experience from my CV. That's what it's for, and that's where you should list your hobby OS. (I certainly list the PDCLib there, even if it never really "got" somewhere. I know at least one prospective employer had taken a look at the sources before the interview, and it basically answered all technical questions for me.)

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 2:38 am
by simeonz
human00731582 wrote:
simeonz wrote:Certain employers in the driver-development and virtualization software industries will look favorably on knowledge and practice with OS development, even though it is an esoteric hobby project. I know, because I have seen people apply this to their advantage.
I know driver development can be grueling work and a headache at best, but needless to say, I am interested in low-level applications and interfaces. Do you perhaps know a way one would break into the driver development industry? I imagine years of experience to be the most helpful, next to incredible skills.
The living standards in my country are lower than those in the US, and the employment market in the IT sector is at least somewhat different. My impression is that C/C++ jobs are generally fewer compared to Java, C#, PHP, without even being specific about driver development. C/C++ programmers frequently have some sort of embedded development experience, because it is one of the more ubiquitous segments. Some people also quasi-freelance (on and off remote contracts), and land permanent jobs with their employer eventually. Some people contribute Linux driver code in their free time and attract job offers. I simply compete for an opening when I like it. My advice is to just try for any job that truly interests you. And if the first interviews fail or you land a job that does not motivate you sufficiently, don't worry. This is perfectly normal. Jobs change and your competence grows, no matter what you do. In fact, doing high-level development (or QA, support, etc) will improve your appreciation for low-level details in way that you never expected.

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 5:31 am
by glauxosdever
Hi,


I took some time to actually look at freelance IT jobs. At least 80% of them concerns web development. There are some embedded-development jobs (where OS development might actually be helpful). There are few driver-development jobs (where OS development might actually be helpful). And there are few jobs concerning writing Linux kernel modules (where OS development might actually be helpful).

Either way, it's a small minority of the total of jobs.


Regards,
glauxosdever

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 6:37 am
by Solar
I tend to think that is a function of software development as a whole having experienced such a growth. The number of C/C++ developers required has not really diminished that much, they just got drowned out in the plethora of web / mobile jobs.

Going to Jobs @ Stackoverflow, I get plenty of job openings matching my profile. (Geez, will you look at that? Unreal 4 game dev, Linux kernel development, embedded stuff left right and center. :twisted: ) Who cares if there are even more out there for web developers? There's more applicants for those, as well.

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 7:59 am
by simeonz
Solar wrote:I tend to think that is a function of software development as a whole having experienced such a growth. The number of C/C++ developers required has not really diminished that much, they just got drowned out in the plethora of web / mobile jobs.

Going to Jobs @ Stackoverflow, I get plenty of job openings matching my profile. (Geez, will you look at that? Unreal 4 game dev, Linux kernel development, embedded stuff left right and center. :twisted: ) Who cares if there are even more out there for web developers? There's more applicants for those, as well.
This is still the case. Job availability for system programmers has not really decreased. Even this website demonstrates how the opposite is true. A casual hub, with almost no interest in software commoditization, and instead a rather peculiar interest in innovative system design, which in all its forms and variety (not being even particular to OS) is a rather tame industry segment. Still, I seriously doubt that anyone who is capable of using certain relevant tools, who knows enough software and hardware architecture, can be unviable for finding a job at all. It is a different story whether OS development in particular is an effective way to teach people programming, or they should do that by other means and return to OS architectures later if they wish.

There is something else that is happening, however. At this point, so much money are generated by commodity software, that the academic focus has changed. The industry demands more streamlined skills, and that creates vacuum for different types of professional education. Not so much formal education is replaced by informal one, but the role of fields like computer science and system architecture diminishes in general. Take Knuth's books. Setting aside the academic style of the content at times, the algorithms and asymptotic analyses are heavily focused on skills that may end up being irrelevant for most job positions in IT today. Whereas 30 years ago, noone probably thought that the future of programming would be possible without them. At the end, the applications of classical programming and algorithmics may thin out to the point, where they will be considered some kind of elitist occupation. And as the projects involving such skills become too specialized and expensive to justify continuing investments, the industrial demand for such professionals will be driven further down. My point is that supply and demand exhibit positive feedback loops, and the software industry, high-tech as it may be, is no exception.

We are not at that point yet. But the money have been changing their focus for a long time.

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 10:32 am
by Solar
You'll always need the backends, though. Compilers. VM's. Databases.

It's not a coincidence that those are still written in C++, not Java.

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 11:01 am
by simeonz
Sure. System programming as an occupation will survive for some minority of engineers, like say, VLSI design. But there is no vendor variety for those products (databases, being still an exception, due to nosql and such.) For example, how many startups will create a full-blown compiler (i.e. not interpreter) as part of their product. There wont be many job positions created for those.

Re: Applications of OSDev

Posted: Mon Aug 21, 2017 3:21 pm
by Kazinsal
Anecdotal evidence in the positive: My current employer was interested in systems development being a hobby of mine, but not for the purpose of wanting to monetize my OS. It was more of a "clearly this person has passion for technology" situation.

I wouldn't say hobby OS development will win you a job outright but it certainly is something that can push a candidate from top five to top one if you're true about it.

Re: Applications of OSDev

Posted: Tue Aug 22, 2017 9:31 am
by Korona
simeonz wrote:Sure. System programming as an occupation will survive for some minority of engineers, like say, VLSI design. But there is no vendor variety for those products (databases, being still an exception, due to nosql and such.) For example, how many startups will create a full-blown compiler (i.e. not interpreter) as part of their product. There wont be many job positions created for those.
There are probably more maintained compilers than ever before. Granted, many of those are based on existing infrastructure like LLVM, but I do think that the usage of domain-specific languages is actually increasing.

For VMs there is a lot more variety.