What type of low level programming jobs are there?

Pages: 12
What type of jobs could a CS grad who know C, C++, and x86 assembly get?
Financial programming, embedded development, Operating Systems, games.

Most large high-performance systems are still developed in C++.
What kind of jobs can you do in the embedded development and operating systems?
Development. Head to a local or large international job site and do a search for C++ jobs. (eg www.monster.com)

edit: Linux was written in C, Windows in C/C++. So that should give you an idea about the size of the projects they have.
Last edited on
What kind of jobs can you do in the embedded development and operating systems?
You find them everywhere in the industry like 'automotive' or [home] automatization. Today you can even program keys.

Operating systems in in the 'backend'/sever world.

What type of jobs could a CS grad who know C, C++, and x86 assembly get?
With this you usually won't have any problems to find a job for a C derived languages like Java, C#, PHP or other as well.
So I'd say it's a very good entry point...
Last edited on

Financial programming, embedded development, Operating Systems, games


Nice, but a fresh CS grad has virtually no chance to get those jobs, unless he has some outstanding experience/portfolio already or he is the second Fabrice Bellard, in which case he wouldn't be posting that on a forum.

Financial programming - nope, because you need to know also lot of things in economy; additionally low-latency coding is not something 99% CS grad know about (being able to write something in asm or C does not automatically translate to low-latency or high-performance). And by just my humble observations, good 90% of this market is dominated by Java, C# and Excel (I'm not joking); and knowing C/C++/asm does not really help learning them much.

Embedded development - without serious knowledge of electronics and high-level maths (signal processing, control theory), chances of getting a job more interesting than programming fairy lights or other toys are near-zero. No-one will risk crashing a plane or overheating a nuclear reactor because of your code.

Operating Systems - unless you're PhD with a good track of publications, forget about any serious job there right now. How many operating systems are being developed at this point? You might get a non-paid hobby by contributing to Linux or Haiku kernel - that might be a good start. Then maybe someone hires you to write a device driver for some proprietary crap like USB controlled fairy lights (usually low-paid stuff). Then, after 10 years of hard-work in the field, if you're lucky, maybe someone at Google or Microsoft reads your resume...

Games - chances to get into AAA companies at this point are near zero. However, you might have some luck developing apps for iPhone or Android or some indie games. In those cases the language set you mastered is useful, but not sufficient, though.

If it feels harsh, I'm sorry. I know lots of great developers with this skillset here and actually getting a good low-level programming job is really, really hard, even though they are pretty competent. This is a low demand and high supply situation (C and C++ are obligatory things taught in almost every college, so everyone knows them, and low-level coding is generally easier = hard to get a job).
Last edited on
Indeed, rapid is once again posting on things he has no experience with.

Financial programming - nope, because you need to know also lot of things in economy

Absolutely wrong. This is what I do, and it is most certainly not required, necessary, or expected of a software engineer to know business. It's not a bad thing if you know, but it's mostly inconsequential.

Operating Systems - unless you're PhD with a good track of publications, forget about any serious job there right now.

Absolutely wrong.

How many operating systems are being developed at this point?

Commercially - at least a dozen.

Incidentally, embedded OS development was my first full-time programming job after college, and it was one of the best things ever -- dealing with every kind of hardware, from awkward end-of-life contraptions from Motorola to early prototypes (Intel XScale was one of them), traveling to customers with their giant rigs (small things would be sent to our lab), and spending long hours there in the kernel debugger.

(I have no experience with games so I can't say much about that)
Last edited on
I'm not saying there are no such jobs, but that there are few enough, that getting *interesting ones* is very hard, especially fresh out of college. A dozen commercial OSes vs hundreds of thousands programmers graduating every year is nothing - dozen to hundred thousands doesn't look like a good demand vs supply ratio.

Even though most colleges shifted strongly to Java and Python, C is still being taught and every second graduate could get easily hired as an embedded software programmer - barrier of entry is much lower for embedded software, than say, financial business analytics.


This is what I do, and it is most certainly not required, necessary, or expected of a software engineer to know business


It is not possible to design good software without understanding needs of the customer. So I agree, if you replace software engineer with a code monkey, that just blindly implements what designers/architects request.
closed account (N36fSL3A)
rapid coder why do you bash C++ on C++ forums. At least do it on some java forum.

You make anything not Java seem like absolute sh*t.
rapid coder is a joke.
closed account (N36fSL3A)
lol
well there a lot of jobs that is related to programming out there but the problem is how hard it can be for you get it as a fresh graduate. so you might have to think of some work (related to your studies) that you can get first. get some experience build up some resume then you can try asking for a job that is specific to your studies. the first check that i received was for a database that i did for a school using Excel. doing some website work would also help.
Huh? Where do I bash C++ here? Just saying low-level jobs are scarce, especially the ones that are interesting.

Please stop telling people they can do OS development fresh after college, when they know C or C++. This is like telling people after physics/engineering they will design nuclear reactors, which is plain nonsense. Thousands if not millions of people know C or C++ after college, yet there is only a dozen of operating systems and just a few that really count (Linux, Windows, iOS, Android, *BSD). Companies like Google or Microsoft or any other A-class companies like that don't hire freshman after college, unless they're convinced they are the next Linus Torvalds, Guy Steele or Fabrice Bellard, or unless for writing some non-critical boring stuff, like fixing their CSS on the website.

You need to know much more than just some programming language to get an interesting job. Regardless if you know C or Java.

And BTW, quite a lot low-level embedded programming jobs you can get is writing applications for some embedded platform. So probably no one will let you touch the kernel, but you may be allowed to write some custom kernel module / device driver or more probably just a userland app, which is not much more different than programming a mobile phone nowadays.

Oh, if you really want to test how easy is to get into OS development, here is a simple way: write a new I/O or process scheduler for Linux. Or just even modify the existing one. Code is free out there, tools are free, what else is stopping you? Then get your changes accepted into the mainstream kernel... good luck, especially if you write that in C++. :D
Last edited on
@rapidcoder

I don't know where you get all your wisdome from

Just saying low-level jobs are scarce, especially the ones that are interesting.
Why scarce? automobile industry isn't small. What about mobile phones?

Define interesting

Companies like Google or Microsoft or any other A-class companies like that don't hire freshman after college, unless they're convinced they are the next Linus Torvalds, Guy Steele or Fabrice Bellard
That's nonsense. They hire junior programmer for instance when they think the the team is overaged. I'm pretty sure that there're plenty of job offers directed to freshmen. huge company rather than smaller ones, because the huge ones can rather afford that younger programmer need a while to get productive.

writing some non-critical boring stuff, like fixing their CSS on the website.
No, since the companies want their employees become productive.

And BTW, quite a lot low-level embedded programming jobs you can get is writing applications for some embedded platform. So probably no one will let you touch the kernel, but you may be allowed to write some custom kernel module / device driver or more probably just a userland app, which is not much more different than programming a mobile phone nowadays.
I don't know what you're talking all about here. The programmers will do what's required. Neither more nor less.
I wasn't even thinking of linux/android, or bsd when I said a dozen. I meant like aix, z, hp, solaris on one end of the spectrum and vxworks, lynx, qnx,, etc on the other.

Of course a recent graduate who studied C++ or C and can explain KMP or reverse Cuthill-Mckee in their sleep, typically has no clue how to program, but the companies are well aware of the costs and benefits.
coder777 wrote:
That's nonsense. They hire junior programmer for instance when they think the the team is overaged. I'm pretty sure that there're plenty of job offers directed to freshmen. huge company rather than smaller ones, because the huge ones can rather afford that younger programmer need a while to get productive.


Those big name companies typically target M.S. grads. This doesn't mean it's impossible for a B.S. grad but it is far less common. The primary way to get in without an M.S. would be via work experience.
Last edited on

What about mobile phones?


Mobile phones are no longer embedded for 10 years or more. In that case Java and Objective-C would be #1 languages for embedded software development.

Have you ever programmed anything for a *modern* mobile phone? Those toys have nowadays multicore CPUs and GBs of RAM. Calling that embedded is a good joke.


Those big name companies typically target M.S. grads


Not just any M.S. grads, but grads who have already some substantial experience in the field, not just a few college assignment projects.


They hire junior programmer for instance when they think the the team is overaged


There is no such thing like an overaged team. You hire people for skills and not for age. Yeah, we recently hired two "juniors". Both are about 30. Of course, not every company is like that, and some companies do hire freshman and give them trainings. However, even if you get hired by one of those big-names immediately out of college, you won't be doing core-development; more likely writing some infrastructure tools or fixing CSS on the website.


I meant like aix, z, hp, solaris on one end of the spectrum and vxworks, lynx, qnx,, etc on the other.


Nice, but all of those are niche systems with a marketshare < 0.01% each. How many developers are needed to maintain them worldwide? 100? 200?


No, since the companies want their employees become productive


Yeah, that's why they hire already experienced people to design new systems or implement new ideas (interesting) and juniors write tests, run reports and fix CSS (boring, but someone *has* to do that). I can't see anything non-productive in this setup.
Last edited on
Nice, but all of those are niche systems with a marketshare < 0.01% each. How many developers are needed to maintain them worldwide? 100? 200?

You'd be surprised.

run reports and fix CSS (boring, but someone *has* to do that)

If your company makes programmers (even interns) do that instead of their actual jobs, it's either an early startup or is something right out of Dilbert.

juniors write tests,

Every programmer writes tests, you can't check in code without full unit test coverage (in decent companies). I'd even say juniors are less likely to write tests, since they have less new code to make.
Last edited on

Every programmer writes tests, you can't check in code without full unit test coverage (in decent companies)


Full unit test coverage is wasting time and resources. Such stupid guidelines result in writing tests for getters and setters. I'm working in a decent company, and we don't have even 50% unit test coverage, because there are much better and more efficient ways of achieving high code quality (like static code analysis / reviews or functional testing).

Also, programmers should not write tests for their own code. Giving tests to interns/juniors is actually a very good way of improving the code quality and letting interns/juniors know the codebase quickly. But of course it depends what you mean by junior. Juniors at our company have already usually 5-10 years of experience, so this might be much different that your definition of a junior.


You'd be surprised.


I asked how many? Even if I ask indeed.com for a list of entry-level jobs related to Solaris or AIX, I get only offers for sysadmins, and not programmers. So those programming jobs must be extremely rare. So please give me a few links to job offers for a fresh junior programmer that will be responsible for core OS development (and not just app development). I'm really curious.

BTW, the market of specialized OSes and specialized hardware is shrinking because companies are switching from big-iron $1,000,000 machines (e.g. Oracle's with Solaris) to Linux-powered clusters based on cheap commodity hardware (e.g. $5,000 per node). Look e.g. what happened to Azul Systems - they started as a company building their own JVM on top of their custom OS on top of their custom hardware, and now the only thing they offer is their custom JVM running on any Linux based machine.

So again, this is like recommending a physics student that he will be able to get a job as a nuclear reactor designer after he graduates, but forgetting to mention there are only a few companies doing research in this area, and the total market is going down, because countries are replacing nuclear plants with sustainable power sources (e.g. Germany which already shut down all reactors built before I guess 1980 and are planning to shut down all of them in the near future; a similar story happening in Japan).
Last edited on
Pages: 12