Ask HN: Is it possible to find remote job on C/C++?
I am an engineer experienced mostly with C++, Python and Node.js, total 6 years of experience.
During the last few years I have been having deal mostly with scripting languages, but now I realized that I want to switch back to C++ (or may be better to plain C) because I want to be more close to metal and write code that is really fast. I interested mostly in networking, DSP or implementing of some learning algorithms, and I would like to develop it for GNU/Linux.
The problem is that I am looking for this kind of job only remotely, and it looks for me like jobs of this type are usually on-site. There is a plenty of remote jobs for Node.js or Python, but it is nearly impossible to find a job that suppose working with C++ or C, is remote and not looking for a guru (I do not feel me a junior, but I am not a guru too).
What do you think about it, HN? Am I looking for not good enough, or it is really impossible to find one of such type?
52 comments
[ 3.3 ms ] story [ 93.5 ms ] threadExplaining C++ lookup rules or convincing a teammate that a particular piece of code contains undefined behavior... it helps to be in person. I haven't tried this sort of work over video chats, though.
That can't be explained over email? How do the LKML people handle this?
If I look at actual sit in office jobs.. I see something like
Java > PHP > .NET > Node > Ruby...
but if I look for online jobs, I see something like
Ruby > Node > <sharp dropoff> > Java??
Sure it changes by area for the local job breakdown.. but while trying to find a remote job, I sometimes regret being a Java/Scala guy instead of a Ruby guy. (But when my code doesn't take 300 servers to run on due to Ruby perf, I am sure that regret will soon fade).
I have a feeling it has to do with the general demographics of those languages users. Python/Ruby/Node positions would be mostly filled by young people working on web stuff (so they're more open to remote work), and Java positions would mostly be in BigCorps with a more traditional organization. But that's just a conjecture.
The comment about performance made me chuckle (Most of my colleagues work with PHP)
My last Django project, a remote developer had the app up and running in their environment and was fixing bugs before lunch to get a feel for our code.
C/C++ jobs tend to be more more like the former than the later. Many C/C++ jobs are not even possible to do remote; the last time I managed a C programmer it was for an application appliance and I would have had to ship them prototype hardware if they were remote.
I also helped hire and support a consultant who was updating some C++ drivers for some proprietary hardware we had. He never actually came into the office, I just shipped him the device, supporting software, and emailed instructions.
So it's definitely possible to do, but it isn't the easiest type of job to get, especially if you can't visit the premises at all.
For the OP, I'd suggest relaxing your preferences on what type of code/language you want to write for now. Try to find a job doing something you already have the most experience in, but at a company that either has the C++ projects that you're interested in, or seems likely to have connections to companies that do that. Once you establish your competence with them, you may find it easier to switch over to C++ while still being all remote.
The job and the community are nice enough that I don't mind evangelizing.
It's probably easier to find an Objective-C job than a C job.
There's tons of embedded work using C/C++, but indeed remote work is harder to find there.
Having said that, getting the job was more a combination of luck and knowing the right people than anything else. I expect it's harder trying to find advertised jobs.
(well that's video, but close enough)
I can recommend these: http://www.amazon.ca/gp/product/0240825152?psc=1&redirect=tr...
http://www.amazon.ca/gp/product/0262014467?psc=1&redirect=tr...
I can also write Java (done that for Android), various bits of SQL (used PostgreSQL, MySQL, MS SQL and Informix), C# where necessary and PHP/JavaScript/HTML but would prefer sticking to C++ nowadays instead of front-end web stuff.
Swift/Obj-C is coming along slowly for me.
I am in the UK and would welcome any interest / work.
http://careers.stackoverflow.com/jobs?searchTerm=c%2B%2B&job...
There are plenty of them available and most pay on an international level. Not the kind of rubbish pay that freelancing sites offer. Since you have some experience with Python and Node, you'll see that you're good for a lot of jobs over there.
So there is actually no jobs on stackoverflow careers which satisfy the requirements I mentioned in the question.
(Offtopic - do you support non Intel platforms?)
I know COBOL isn't C, but it's the same concept - systems programming/secure stuff rather than bashing out websites.
1 - Companies want cheap productivity developers (yeah :S), it's very common that they force you to use some hype productive new framework/language regardless of what you think about it.
2 - If a company is going to invest in system level development, it's very hard to find another new decent C++ remote programmer. This is a very critical point. If you fire a javascript/python developer you can find another on in a matter of hours.
3 - If a company needs stuff in C++, probably the company is scaling and needs to recode some components. Usually they have the budget to hire decent C++ developers non remote.
4 - Myths like "C++ is for genius", "You can't be productive in C++", etc.
5 - C++ is not trending these days and it impacts the hiring and/or project stack decisions.
6 - Most remote projects are easy shit, you'll be amazed by the quality of projects and, sometimes, the freelancers hired themselves. Most of the time the projects don't need a fast runtime but new managers.
7 - Agile methodology is often used as an excuse to change the requirements every 2 weeks or so, it's not rare to find such management. You need to have the right tools and community to survive such environments. C++ was my 3rd language but I never used it during freelancing/remote work. Today I feel very comfortable using node because I know this kind of stuff happens, and when it does, it's much better to have things like NPM and a big community just to remain sane and keep up with deadlines.
Keep in my that these "reasons" are based on my personal experience as a freelancer. It's possible to find some remote work for C++ but you'll find to try much harder than, for example,a node/python developer. Try to focus on areas where C++ is critical. If you contribute to well know C++ open source projects, it's just a matter of time to get noticed and hired remotely.
That are plenty of C/C++ jobs inside banks and telecommunications but they will not advertise remote job opportunities and if they to, they do it thru recruitment agencies or consulting firms that subcontracts to freelancers. However I think it is quite possible to build a relationship with say a departement at telco thru regular consulting that eventually will let you work remotely.
It just requires some legwork and that you work on-site in the beginning.
I'd be a little concerned of the culture at Mozilla though.
Mozilla's current board considers pandering to external forces more important than the old ways - merit, the hacker ethic, professionalism.
I can confirm they have vacant positions, I talked to a few who found work elsewhere after coup removed Eich.
It's sad when a company loses its way, but thankfully chromium is much faster.
Interesting. Do you have a source on that? Not denying what you're saying or anything.
My impression is that companies which aggressively embrace new technologies and markets are also more likely to embrace new management/logistical models such as fully distributed teams. Therefore the pickings overall are better, but mostly in certain technical areas - notably not in low-level areas such as networking and DSP (which you mention). I think you'll have to make some compromise between your preferred technical areas and your preferred working environment, because the overlap between the two isn't very large.
Try asking in the /r/gamedev and the /r/gameDevClassifieds subreddits. I'm sure someone is wondering how to contact a C++ developer.