| General > General Technical Chat |
| freelancing as an embedded developer? |
| (1/3) > >> |
| kamtar:
I was playing around with the idea of freelancing as an embedded programmer, not sure if I would like to build a business from it or just a part-time few months experience. I spent 5 years as an embedded programmer in a small company rather isolated from the industry as a whole so I have no perspective on what to expect from this "market" if you can call that. I'm working on a few references projects to show that I can do decent firmware and electronics design too (really usefull in a case of a freelance remote job). My question would be, is it even viable? I can't imagine a lot of companies wanting to deal with somebody remote working on their hardware. I know there are a few freelance devs. but aren't they more of an exception? If somebody has some experience I would be glad to hear it. Thanks! |
| scuzzyTerminator:
--- Quote ---I know there are a few freelance devs --- End quote --- Wrong. There are lots and lots of freelance devs wherever lots and lots of devs are needed, but you could have a problem if you stay "rather isolated from the industry as a whole." Silicon Valley was very good to me. I have done a lot of embedded systems programming as a consultant. Consulting/freelance work is a big general topic and you'll find a lot of advice and warnings on this forum but I'll say a little :blah: about working remotely with embedded systems (though I never worked remotely because home was always too distracting.) The first problem working remotely is that it is not often that the hardware can leave the premises as it is either too big (they would not let me take that scanning electron microscope home no matter how hard I begged) or the prototype board and development equipment are needed by the hardware dev and techs. If you are not the total developer (HW & SW) then you are likely programming a moving target. That's hard if you can't drop by regularly. Expect the client will give you more autonomy if you are the total developer. How are you set for development equipment at home? If you plan to use your own then you're limited to projects that your equipment supports. If the client supplies the equipment they may be reluctant to let it go far away. I never did a consumer product so my experience is biased toward industry and laboratry products and away from the kind of stuff you can do at home. Perhaps your best bet is working with small companies (e.g. start-ups) making small products and looking to avoid facilitating an engineering staff. Good luck. |
| aandrew:
I've been doing exactly this for the last decade or so. The short answer is "it depends". There is lots of embedded dev work and few (IMO) devs who are able to handle the specifics of embedded properly. Even fewer can work both the HW/HDL and SW angles in a design and that's where I specialize. A significant portion of my workload involves being brought in to fix things that have gone pear-shaped because someone else thought they knew how to do something and now the company's in a jam. Working remotely -- that's a mixed bag. Everything scuzzyTerminator said is true; most companies want your butt in one of their chairs, but a few are fine with remote software guys. Fewer are happy with remote hardware people, and even fewer yet want to let their prototypes out of the building. Remote debugging hardware can be interesting and frustrating (much moreso than debugging hardware locally). Ethernet-based tools are MUCH easier to use remotely. I've not found a single USB-over-IP system that works as expected, mostly because the people who wrote the drivers for the USB tools programmed in idiotically short timeouts that just won't work over remote. You can only get so far with VNC or RDP. Remote in general: meetings. lots of meetings. I wonder how some companies get anything done because there are so many meetings. VERY few companies have adequate conference room equipment (proper conference room phones with good echo cancellation and enough mics to cover the entire room are expensive). If people are writing on whiteboards it is also a hassle to get someone there to either throw up a shitty webcam or again, have a PROPER conference room camera that you can move or see everything with. Microsoft Teams (used to be Skype for Business) is actually really amazing for being able to remotely work, but the company needs to buy in to it and probably won't for just one remote guy. Skype is a close second, but again it all comes down to good mics and potentially a good camera. Most people in meetings don't talk loud enough or their voices are low enough that a typical telephone muddles it and you can't hear properly. For those who *do* let you work on hardware remotely, a VPN and some way of having it auto-connect is essential, as is network-connected power outlets or network-connected IO for hard rebooting targets. I'd say a UPS is also essential, and as long as my wishlist is open, at least one webcam+light aimed down at the board for watching LEDs/motors/etc. if applicable. I am personally a fan of the "lab computer running autossh -R" but be careful not to run afoul of their network policies. Some sensitive companies will (rightfully) terminate you on the spot if you've punctured their firewall without proper authorization. I've not done it yet, but a cellular networking dongle on a non-networked computer that is connected to the equipment you're working on would probably be a lot more acceptable for remote hardware access. Even if you can talk to the hardware, you have no hands or eyes there so you can't attach a scope or logic analyzer and poke around easily. I try to make sure I can hit whatever I need before I leave but it's additional risk/hassle. It's much better to have the hardware local to yourself, whether that is onsite or at your own office. I love contracting -- the variety in challenges keeps me motivated and interested. Being able to draw on my experience from one field to appear the magician and solve a problem in a completely unrelated field is a trip. I'm well-enough established now that most of my work comes from word-of-mouth, but starting out I used agencies. Most *suck* but there are some diamonds in the rough. They all take a (significant) chunk of your hourly rate but they have the "reach" to get you work in areas you can't get to yourself, and after the "hands off" period expires you can go direct to those clients. Good luck! It's not for everyone, but I love it. |
| nctnico:
--- Quote from: scuzzyTerminator on June 27, 2019, 02:06:49 am ---The first problem working remotely is that it is not often that the hardware can leave the premises as it is either too big (they would not let me take that scanning electron microscope home no matter how hard I begged) or the prototype board and development equipment are needed by the hardware dev and techs. If you are not the total developer (HW & SW) then you are likely programming a moving target. That's hard if you can't drop by regularly. Expect the client will give you more autonomy if you are the total developer. --- End quote --- When working in a team you'll need contact with other team members but you don't have to necessarily sit in the same room. I've been doing contract work (hardware and software development) for over 2 decades and mostly from home. In almost every case a project involves working with multiple people. It greatly depends on your communication skills whether this works or not. |
| RomDump:
--- Quote from: kamtar on June 26, 2019, 03:45:45 pm ---My question would be, is it even viable? I can't imagine a lot of companies wanting to deal with somebody remote working on their hardware. --- End quote --- A lot of Startup's look for freelancers. Check out Upwork and Freelancer for the type of embedded work people want. John Teel wrote a Blog on this. |
| Navigation |
| Message Index |
| Next page |