HACKER Q&A
📣 speeder

How I get a job that uses C?


My wife is pregnant and I need a job urgently... and like when I needed a job urgently in the past to pay student loans, I feel inclined to accept whatever offer I get.

But what I really wanted was work with C. But even searching for that is hard (often a company writes C/C++ and they mean only C++ and not C at all).

I tried in the past seeing if embedded would work but even entry positions require experience.

So no idea where to look for such jobs.

The vacancies list I found right now is just a long list of full stack, frontend, backend, sometimes java, the occasional SQL, nosql, and sometimes python or ruby. Not a single C job.

Where the C users are hiding? Is living programming in C even possible or it became a purely hobby language for people doing angular.js on their day jobs?


  👤 constantcrying Accepted Answer ✓
>Is living programming in C even possible or it became a purely hobby language for people doing angular.js on their day jobs?

C is still widely used. I think if you really want to just work with C you should focus on embedded stuff, surely not every job in embedded requires experience.

One industry which is quite C heavy is aerospace. You do not need to work for Boeing/Airbus though, there are many, many suppliers who are doing embedded work.


👤 brundolf
It's strange to see the juxtaposition of the urgency + the major career leap... I don't want to tell you how to live your life, but if it were me I'd take the job I can get for right now, and look around for my dream job while employed

If you were miserable at your last job (not explicitly stated, but reading between the lines) there might be a middle-ground job that you can get easily, and may not be the ideal you're holding out for, but at least won't make you miserable. It can be a gradual transition to better pastures instead of a single huge leap


👤 ilc
C programmers are systems / embedded programmers.

I made my living doing C when I worked on Samba + Illumos.

Really, if it isn't systems or embedded, C is very rare, even for someone like me with 20+ years of it, I won't code in C unless it is really the "language of choice" for the problem. And that ain't often.

That said... I do write some C time to time, still.


👤 superfamicom
Right now Handmade Seattle is happening and has job booths specifically target low level programming, check out some of those companies https://handmade-seattle.com/

👤 OJFord
It sounds like you're exclusively looking at 'webdev' jobs, where, yeah, approximately nobody uses C.

Try embedded. Never had a directly embedded programming job myself, but see a lot of it from recruiters 'C/C++' as you say, but in embedded my adjacent experience is that there's not a lot of C++, that's more likely to be the tooling than the firmware or whatever itself. (Binary size & stdlib issues I believe, or perhaps merely dogmatic assertion that that's the case.) Not to say it can't be & is never used of course, it can be and is.


👤 woodruffw
Automotive, aerospace, industrial control/signals, and systems programming/engineering still lean heavily towards C (and C++). The ratio between the two will vary widely by individual company and domain.

👤 oneng
Companies that make a lot of embedded products still use C extensively.

I can guarantee Garmin uses plenty of C, and continues to make new software libraries in C.


👤 jrmg
> I tried in the past seeing if embedded would work but even entry positions require experience.

Apply for those jobs anyway. Requirements are often flexible.


👤 jacobjwebber
Hi!

I got a job as an embedded C programmer after a MSc in "High Performance Computing". Weirdly the biggest supercomputers can use similar techniques to tiny microprocessors.

First of all I get why you like C, I loved learning it, and think it is a really elegant language (with obvious flaws).

I have some practical advice. Embedded is your best bet for getting to use C professionally. Are you into electronics at all? I would recommend getting some microprocessor/electronics kits, like the Arduino ones. If money is tight, Arduino clones are very cheap indeed. You could get going for < $20. You'll need a "bread board" some wires and a microcontroller. I remember getting a _very_ cheap oscilloscope kit too. You can make some cool stuff with sensors etc. I recommend any video by Ben Eater, if you want to know more about digital electronics. If you come up with a cool project idea you can write a blog post or even just talk about it in a cover letter. It would show you are very keen, even if you don't have professional experience.

You could also learn more about low level computing stuff by doing the excellent "nand-to-tetris" course, which shows you how to build a CPU. This is quite a commitment, and not essential, but I enjoyed it a lot!

Embedded Linux is also very widely used, so a project with a Raspberry Pi would look good too.

Good luck with a child on the way! Perhaps any electronics kits you buy could have a second life in 10-15 years...


👤 thechao
We say "c++" not scare off applicants; but, it's really c/asm/machine-code. Interview at c++ shops & ask how they manage lifetimes in their codebase.

👤 ivraatiems
Have you written any C at all? This post sort of reads like you don't know what you are asking for... C is a lot of fun, I don't want to discourage you, but if you don't have any experience with it the odds that you are going to be able to get a job in it are low. C is a high-risk high-reward language and writing programs in it competently requires a lot of patience and practice. It isn't shocking that even entry-level positions would want you to already know quite a bit about it.

Speaking from my own experience (and this is a route that might work for you if you are sure you wanna do this): At a previous employer, I worked as a C# developer at a transitioned into a C/C++ role when there was an opening on that team. I didn't do it because I wanted to learn C specifically, but that was one of the appealing things about the opportunity. (I also had already written some C in college, though that was years ago.) So looking for an organization that does C and other stuff and starting in the other stuff might be a valid way to go.

That said, the company only took a chance on me because I was already fully competent in the organization's domain and I had proven myself in a less challenging position; they believed I could learn. It was a huge learning curve for me and it took several months for me to get up to speed and be useful as a pure C developer, and this was with more experienced developers mentoring me every day. I am still nowhere near being a C expert; I am just good enough to be useful. (I also no longer work with it day-to-day, because I'm not at that company anymore, though I miss it sometimes.)

Honestly, it sounds like you should focus on your family first and your C aspirations at home or as a hobby. Think about how this ends: If you get into a position using C, and find it hard or just decide it isn't for you, do you really wanna be worried about losing your job or doing badly at it while dealing with your new baby?


👤 starfleet_bop
Most embedded jobs use C, some C++. But if you’re good at programming you should be able to pick any language fairly quickly tbh so I’d just tailor my CV according to whatever language is in their job spec.

Embedded, firmware, systems jobs all tend to use C. So using those terms to widen your job search may help.


👤 cardosof
Here's a personal anecdote: my father is an engineer at a small, 8-person company. He's 68. They use two languages: C and Java. The short story is, they created a system for telco companies in late 90s. Said system deals directly with specific Telco hardware and needs to run real-time fast. The system is over 20 years old and despite this or that patch over the years its core remains the same. So there's a C part, which is the engine and is really performant, and a Java part, admin tooling, testing and integration.

So I guess if I had to find companies with C jobs I would try: - niche jobs/industries - small companies - decades old systems

The problem is that those aren't usually on the mainstream channels for job searching, and they may take years to open a single position.


👤 Jtsummers
Do you have a CS or EE degree? Are you based in the US? Are you willing to move within the US if so? Then you should be able to get an entry level embedded job with C, but yes you might have to learn or use some C++ as well. Embedded devices aren't as limited as they used to be so it's become common to have a full version of Linux hosting even real-time systems that were formerly bare metal or sitting on a minimal OS and written in C. With that change, C++ has started to enter the field more.

Look into the aerospace and defense industry in the US for a large contingent of C systems. Though greenfield ones may not be C anymore, there's a lot of C code out there needing maintenance too as they move to new hardware or add features.


👤 olodus
I have been happily working in telecom for ~3 years now developing in C and I actually got the job without any prior experience.

However, prior to working there I did my Master thesis at the company, which enabled me to show commitment and learn a lot about their product. As you might have realized, this also makes me quite new to the job market, so take my advice with a grain of salt for these reasons.

Furthermore, I can't guarantee telecom is a good place to look for C work. We are the only section of our company with a purely C codebase from what I know.

But I still wanted to comment and suggest that Low level Networking might be a good option to look at. A good search term might be places that use DPDK.


👤 femto113
If you really want to write C just do it--most popular languages have a defined way to interface with C code, and if not you can almost always find a way to communicate with a C program via stdin/out. You can always justify to your teammates/bosses on "performance reasons" and they'll probably think you know some deep magic. (In practice most interpreters have gotten fast enough that it can be difficult to come out ahead after the overhead of going through an interface layer, but they might not know that.)

👤 zh3
Plenty of C jobs around, most are where there's a need for extreme performance (optimising usage/making the best of limited RAM/limited CPU), talking to bare metal or for things that have to last a long time (kernels, telecoms, other critical stuff).

There is less turnover though (stability again) so employers are selective (and quieter). One suggestion would be put C as your preferred language on your CV, with a little background why (not if you want to work with BigCo or anywhere with a buzzword-driven culture though).


👤 cperciva
Operating systems, especially kernel.

👤 notacoward
In addition to those specialties already mentioned, I'd add older databases and storage systems. Some quite large, quite critical codebases that do still need maintenance in their original language. There are also some organizations, e.g. Linux Foundation, with specific initiatives to support "critical infrastructure" code which is often in C.

👤 bellyeye
Vulnerability research jobs often involve some use of C if it's low level enough, either to write proof-of-concept exploits, or doing code review (e.g. Linux kernel), or both. Perhaps an option if you also have an interest in this area? Though you will likely need to know assembler too, probably for multiple architectures.

👤 heinekan
I think if you’re interesting in C you’re just going to have to deal with also working with C++.

When I started out I was looking for the same thing in the embedded space but there wasn’t any jobs strictly using C.

The “best” you could find out there is old code base is in C, new code is in C++. Which there are good reasons for.


👤 habibur
You will find jobs in embedded and games.

But embedded pays 40% less then frontend/backend.

Games pay good, but is stressful and demanding.


👤 stephc_int13
Anything with embedded/real-time software.

Believe it or not this is still a very large part of the industry.


👤 elektrontamer
I understand this isn't the answer to your question but given what you've disclosed I'll have to advise against limiting yourself to embedded jobs alone. A job isn't the only way to follow your passion, in fact it may cause you to hate your passion over time. Find the most in demand skill that is somewhat interesting to you and focus on that. To follow your passion buy a cheap embedded linux board and hack away in your free time. I was in the same boat as you but now I've come to realize most jobs in tech are interesting to me, so I might as well focus on the ones that are most in demand. Just keep an open mind. Edit: Typo

👤 InitialLastName
What is it about C that you want to work with it so badly, despite having no experience with it? It's a great language for what it does, but the difficulty level for avoiding bad decisions is so high that I would be very hesitant to hire someone with no track record to operate solely in C.

I'd have been inclined to say embedded would be essentially your only option, but without some experience and/or an EE background, you'll have a very hard time finding your feet in that world.


👤 zerr
Besides embedded and kernel spaces, which might not be everyone's cup of tea, try looking into Linux distro shops who contribute to GNOME, GTK apps, desktop experience that is.

👤 camtarn
> Where the C users are hiding? Is living programming in C even possible

About half my work is programming B&R PLCs in C, albeit it's C with a custom IDE and code generation that makes it quite different from a normal embedded environment. (The other half is Python, networking, radio comms, sysadmin, etc etc)

But it's actually somewhat rare to find people programming PLCs in C. The vast majority seem to be using a PLC-specific language, and even B&R is starting to move towards Python.


👤 alain94040
Where are you located?

👤 tluyben2
In the embedded space it's used quite a bit. I see a lot of handwaving about c++ and rust, but most that I encounter irl is c (with some asm sometimes).

👤 anta40
>> Where the C users are hiding?

Not hiding... C domain are rather "limited" these days, like embedded system, microcontroller, OS kernel, robotics, etc.

I worked at a local smartcard manufactur for a few years, and the team who worked on our smartcard OS were C coders.

Well, try to apply those embedded jobs. I think experience requirement are negotiable through interview.


👤 ryanianian
There are a number of SaaS and other offerings that offer C drivers. E.g. postgres, mongodb, oracle, snowflake all have C drivers or company-backed C work that isn't embedded systems. But as "framework" level code, I would expect pretty extensive knowledge and experience requirements.

👤 jobsort
Shameless plug: https://jobsort.com/search?q=lang:c%20-lang:c%2b%2b

I built Jobsort to support negative filters, so the query "lang:c -lang:c++" will give you only C and not C++ jobs :)


👤 explaingarlic
You in the UK?

If so, electric chargers are the way to go :) I got to touch plenty of IoT-type firmware at my previous employer. Current one doesn't deal with firmware but we're pretty specialized, business-wise. I'm sure that a similar industry is opening up in America


👤 the_only_law
The embedded world, certain legacy domains (just saw a job the other day working on what I assume were old C business applications on AS400), and domains that are a pain in the ass to get into without a lot of work and a decent amount of luck

👤 QuillianR
Search for companies using ebpf, like Cilium, Cloudflare, Sysdig, etc. Might not start on a team doing ebpf/c, but you could get exposure there (and depending on your level, maybe they will hire you on that team, who knows).

👤 patrogizmo
Definitely focus on embedded. You might try looking for startups. Many may list prior experience as a must-have, but will make exceptions depending on the candidate and skills of the other candidates who are applying.

👤 loxias
They exist. Hard to find, but there. I found mine through a recruiter, first time doing so.

Searching through my email, "Triple Crown" and "EdgeWater" are two recruiters I had good conversations with.


👤 jonahbenton
LOTS of open source software in heavy industrial use written in C. The linux kernel for crissakes. Compilers. Web servers.

All those roles require deep technical domain expertise. That is the nature of C.


👤 cjtrowbridge
You can write C++ code in C, it will still compile the same way. Anything that is "written in C++" can also simply be written in C.

One of the most interesting cases I've seen is artists that work with addressable LEDs writing microcontroller code in pure C. Lots of super interesting pieces in SF that are done this way. Also some of them design pieces that communicate with each other across art installations to react to the audience together, etc. C is great for controlling physical art pieces.

Outside of embedded systems and kernel maintaining, there aren't many modern use-cases for C and some go so far as to argue that C is no longer really a programming language.


👤 iExploder
Linux Kernel and its drivers, but I would assume you would need to put up a lot of upfront unpaid labor before you are picked up by a company who wants to pay you

👤 equilibrium

👤 ipython
Have you looked at jobs in the security space doing reverse engineering? Leverage your low level experience tearing stuff apart.

👤 bpye
I work at Microsoft on the hypervisor. The hypervisor and the NT kernel are mostly C - as are many other kernel mode components.

👤 Bhurn00985
Look at people working with embedded systems. Often in companies supplying equipment to manufacturing or similar industries.

👤 qiqitori
I just left a job that was mostly C towards the end. Linux kernel and TEE stuff. Mostly used in car entertainment systems.

👤 system2
So much to unfold in your post but I can guess you are very stressed due to your wife's pregnancy and your job hunt situation.

If you are looking for remote work and already know C enough to find a job, you can search Indeed for listings and apply to all of them. Otherwise, fiverr and upwork could help if you post your own skills with C and probably people are searching for small projects.

If you are not very well experienced with C and already making money from it already, you can try switching languages a little, focus on PHP and Python and you can find so many remote jobs fairly easily. Unsure if yours is a temporary solution or lifelong change, you can simply decide what you can do and make that change in 3-6 months or so.

Any panic induced decision will be wrong so please make sure you don't get your expectations high finding a remote job in 1-2 weeks because it is an emergency. Give yourself 3 months for the transition and meanwhile find out what you want your life to be in the next 5-10 years. If you don't like what you do at work, you will hate every minute of it.

TLDR; Find a job preferably online related so you can find remote opportunities that don't require you to be in an office. Most web related jobs are remote friendly. Congratulations again.


👤 Am4TIfIsER0ppos
Video. Audio. Anybody who uses ffmpeg.

👤 sshine
> My wife is pregnant and I need a job urgently

> what I really wanted was work with C.

I'd understand if the second sentence was "Where can I find a job that (pays really well | allows for parental flexibility | has high security | ...)" -- what is it about your wife's pregnancy that triggers selecting a rare job you really wanted?