Thread: Your source of income

  1. #1
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413

    Your source of income

    Lately I've been thinking about starting a consulting business based on programming and some other technical skills I have (engineering, industrial automation). I was wondering, how many of you work for a company? How many of you work for yourself (contracting/consulting)? I'm sure a thread like this has been done before, but I'm also sure it's been a while, so why not have one.

    Right now I work for a small company doing basically everything technical (industrial/mechanical/electrical engineering, PLC/HMI/SCADA programming, etc). As I mentioned, I'd like to change or complement that by consulting on my own.

  2. #2
    Registered User
    Join Date
    Jun 2011
    Posts
    4,513
    I too work at a small company, as one of three engineers. My colleagues are RF engineers, and I'm the digital engineer. I learned electronics theory and circuit design in school, but my education just lightly touched on programming. Pretty much all the programming I do at work is self taught.

    Life would be easier if my company were the "design one, build a thousand" type, but in actuality, most of our designs are custom made for research facilities, with quantities between one and ten. I don't mind - it keeps me busy, and I keep learning.

    I design the RF power amplifier digital architectures and interfaces. My job includes circuit board design, PLD and/or MCU programming, test fixture design, test fixture assembly (we breadboard most of our test fixtures, and since we all wear many hats, I'm there with a soldering iron putting these thing together), PCB testing, specification and manual writing, etc. I love it, though - being involved with every stage of the design, from CAD layouts to testing the finished product, and everything in between.

    When the timeframe is tight, or portions of the design specifications exceed my current abilities, we have an amazing consultant who helps us get the designs finished. Here are some things you might expect, based on what I've put him through:

    - Random emails about a project from several years back, often with questions and/or troubleshooting involved

    - Incomplete specifications (most of my designs are developed concurrently with the customer specifications, which is a royal pain, and I have to pass that difficulty on to him)

    - Projects being way more involved than it seemed at first glance (well after you quoted a price based on the shorter hours you expected)

    - Companies that are ... lax ... about paying the consultant on time (I push for on-time payments, but that's not my department, so my ability to help is limited)

    - Last minute changes or additions to the scope of the project

    If you're lucky, like the consultant I mentioned (despite the hardships I wrote), you may find a "niche" company that demands a lot of your abilities - this can a good thing.

    Also, document everything. Both for your sake (what the hell does this code I wrote seven years ago do?), and the sake of the customer (I don't want to walk these idiots through the procedure each and every time!). Oh, and if the need arises, be prepared to travel.

    And most importantly - be transparent and honest! We have another ... backup ... consultant who is a lot more local to us (about twenty minute away instead of in another state, like the first guy). But he hordes his work, never submits the source code, and once even time-bombed a GUI interface he wrote for us. Needless to say, he doesn't get much work from us.

    The first guy, on the other hand, is helpful beyond expectation, very honest, and very helpful, which is why he receives great sums of money from our company. He's been doing work for our company for more years than I've been there.

    Funny aside - I was once digging through old source code of his (in assembly). I was more perusing the comments to get a sense of what the code was doing, rather than the opcode itself. Buried in the comments was a gem that delighted me - one line had a comment that said, "this is fun!" I can imagine the man in a programming frenzy, coding like a maniac, and so caught up in the moment that he couldn't help express his joy at performing his craft.

    Anyway, apologies for the long post, but I hope I could provide some personal insight that might help you along the way.

    Best of luck!

  3. #3
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    I am not a lawyer and all that other disclaimer crap...

    It's good that you're in California, since they have some of the best worker protection laws out there, which makes this a bit easier for you. Still, you have to be careful of things like non-compete clauses in your employment contract. You can be sued for stealing clients, taking all the knowledge you gained working at that company and using it to compete against them, etc. This is problematic if, for example, you used to do PLC controls for HVAC systems, and then you quit your company and consult on a project doing PLC controls for HVAC systems. If, however, you get a consulting job doing business software, you're probably in the clear. Also, if you are doing extra consulting on the side, your full time employer may be able to seize your IP if you use company time or resources (including just their wifi) to do that work. As long as there's no conflict of interest, you don't use their resources and it doesn't impact your job performance, you should be able to work on the side. If you want to go this route, perhaps get the okay from your current employer.

    Note, many non-compete clauses cover the time you're employed with them, as well as some time period after you leave.

    I haven't up and quit to be a full time consultant/contractor, but I have done additional consulting on the side of my full time job. I did this for a previous employer, so they knew me, my work, quality, etc, and it was easy to land that client. Finding random clients/jobs may be tougher. Finding enough clients to get you a comparable wage and keeping a steady workload can be difficult and stressful. Smaller gigs on the side can be nice as supplemental income, but it can be tiring putting in all that extra time after your full time job.

    I still think about becoming a full time consultant/contractor, so I can have the freedom of working when and where I want. There are considerations like healthcare (maybe less an issue come 2014), and contractors are often the first to get canned when times get tough. Also, you'll probably have to pay self-employment tax, but you'll potentially get to write off a lot of stuff on your taxes too: home internet bill, computer purchases, mileage to drive to client offices, dinner and drinks to entertain clients, etc.

  4. #4
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Luckily for me, my company is untainted by non-compete's and IP agreements. I've had to sign such things in the past for several different jobs. I made it very clear to them upfront that I might start something on the side and they basically said whatever you do on your own time is your business.

    Related to that last bit, I plan to purchase a book I found a few years ago that outlines taxes and other things for contractors, since it's such a pain in the a.

  5. #5
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    Matticus mentioned "document everything", and emphasized documenting the code you wrote. You do, however, need to document everything, not just code. That's basic CYA stuff, to cover you in contract disputes as well as the potential tax audit. It's probably quite obvious, but it bears repeating.

    • Keep notes/minutes and action items of all your meetings, phone calls, etc. Send them out the the attendees afterward with something like "Here's the minutes from the meeting/phone call on $date at $time. Did I miss anything?" If you must go to court for something, email trails hold up well, he-said-she-said phone calls don't.
    • If you have a 2 minute phone call that doesn't warrant minutes, record it if possible, or keep a log of the call and what was discussed. If you have that and they don't, it looks a lot better for you in court.
    • Be extremely detailed in what it is each party is responsible for and the price for all the work. The more details about what you are expected to do, the easier it is to say "that's not in the original bid, we need to renegotiate".
    • Find software for keeping track of your projects, invoicing/billing, etc. I personally like Jira ($10/10 users, one-time fee, if you host on your own server). I also have used Free Time Tracking Software, but was lucky and signed up when their free package was much better.
    • With embedded stuff especially, make sure it's clear who is responsible for things like buying the eval kit or any other materials you need just to get the job done. Don't get locked into doing a $5k job, then find out you need to drop $500 on crap just to get started.


    I have a PDF of a freelancer how-to book that was a free giveaway. I'll try to dig it up and get it to you.

  6. #6
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Thanks, I'd appreciate that. The other thing I forgot about is that, the thing that actually stopped me 5 years ago from trying the same thing, is that I can't find clear answers on Section 1706 of Tax Reform Act of 1986. Remember this guy: http://www.nytimes.com/2010/02/19/us/19tax.html ?
    This scared the hell out of me because I had just finished a few months of contracting as a drafter/designer, I thought for sure I was going to get audited.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Open Source / Semi Open source game idea. Help needed
    By CaptainPatent in forum Projects and Job Recruitment
    Replies: 10
    Last Post: 05-16-2007, 10:44 AM
  2. How your grades effect your income
    By LuckY in forum A Brief History of Cprogramming.com
    Replies: 18
    Last Post: 12-09-2004, 05:31 PM
  3. Replies: 3
    Last Post: 11-03-2003, 08:55 PM