Ask HN: Why aren't more software engineers contractors? tax savings?

Software engineers (as a case study) meet the definition of a contractor: They choose their own hours, how they'll accomplish a task, and nowadays work wherever they want.*

Contracting seems like a win-win: 1) Contractors pay less tax than FTEs (when applying S corp tax status) and usually have a higher hourly wage. 2) Employers have far less expense for contractors: 1) no corporate benefits, 2) no corporate administration (e.g. internal benefits coordinators, HR business partners, etc.), 3) no employer share of tax obligation (e.g. FICA).

Questions: 1) For software engineers who have insurance already (e.g. through their FTE spouse), why not become a contractor? 2) For employers who need a lot of software engineers ("developers, developers, developers, developers!") who not lean into contractors?

* By contrast, janitors, who are typically contractors for large tech companies (https://www.bizjournals.com/sanjose/news/2020/03/31/apple-says-it-will-pay-contract-workers-in.html) don't actually have hours, location or means flexibility.

13 points | by brntsllvn 1012 days ago

17 comments

  • naet 1012 days ago
    I work for an agency and through them do contract work with other companies. I'm about to start looking for new jobs after two years doing this and I am only looking at salaried positions.

    Being paid hourly rather than salaried means your income is heavily dependent on the hours you can secure. This can lead to awkward situations. I have to accurately track and itemize all my time, down to the minute, which is a big pain. When I finish something quickly I sometimes end up making less money for being efficient (but I never over-bill or inflate hours, since I think this is unethical and would also damage my reputation and ability to win repeat contracts). I sometimes offer potential hours to multiple parties hoping one of them bites, but if two or more bite at the same time suddenly I've over promised and have to deliver on more work than I can handle. I have to alway be looking for the next contract and always be ready to reopen an old contract. I'm often treated as an outsider working for an external team rather than a core team member. I'm the first to go when a company needs to save money. If I take longer than expected on something it becomes very stressful to justify to the client. I get dropped in to projects that have lost their technical team or technical lead, and I am expected to pick them up very quickly and deliver the same quality of work (or higher quality, since I have a high hourly rate and bill as an expert in the field). I have slow seasons where there isn't any work and it feels bad to have no stable income. Etc.

    I liked the work for a couple years where I was working far less than full time, but still paying my bills and enjoying some freedom over when I put in my work hours. However now I have growing family and I am seeking more stability, and contract work ain't it.

    • shyn3 1011 days ago
      You should really rethink your idea here. When I tell my manager we need a vendor, I don't care how long it takes. If our contract is 72 hours billable, then feel free to use it. If you create something that just works, we aren't going to care if you took 10 hours or 70.

      To give you an idea, we just hired a company for a $10,000 project they failed to deliver and we have no other option but to throw more money. Generally we have already figured out it will take us 2-3* the cost of what the vendor wants. So double check your work because if you screw up we may not hire you again.

      • naet 1011 days ago
        My agency prefers to work on time and materials rather than fixed bid contracts, though we have also tried some fixed bid projects. They both have pros and cons. The advantage of time and materials is you always get paid in full for your exact time used; on a fixed bid if something ends up being unexpectedly difficult, we have to eat some unpaid hours to make up for it. Therefore on a fixed bid clients actually almost alway end up paying significantly more in total, since we have to pad our estimate with a higher cost and have a decent buffer or "insurance" that we will be able to complete it within our estimated timeline.

        When paying for the exact time and materials you get exactly what you paid for in equivalent work hours and their output. It's a more flexible arrangement where if the client has new or evolving requirements we can pick them up without having to re-negotiate the whole contract. I remember at least one fixed bid contract where we ended up working nearly six weeks extra and the agency had to eat that cost so we made nothing in profit, but at least fulfilled the contract.

        I try to pad my estimates appropriately either way so we are usually on the under side of our quoted estimate for a given project with some wiggle room. Clients always appreciate when the work ends up being a bit cheaper than the quoted estimate. On the other hand, if we don't complete something the client does end up having to pay more (or source elsewhere, but almost always they prefer to keep us on if we've been doing good work for them).

        • shyn3 1011 days ago
          I mean that's their loss. We understand that nothing is a fixed cost. your management needs to convey this better. Sommes our ask is so crazy we know it's not possible but we source it out.

          If you fail, I get promoted for protecting the business by not doing it myself. If you succeed fast I look bad.

  • gvb 1012 days ago
    Contracting can also be lose-lose:

    1) Software engineers have to be salesmen as well to find companies willing to pay them well for jobs. Software engineers that can sell themselves do very well. The rest do not. Rule of thumb is that "sales" for contractors is at least a half-time job.

    2) Companies do not like to hire contractors for critical software because (a) they are unable to tell the difference between a good engineer and a crap engineer until it is too late and (b) if the contractor disappears, they are stuck with software that may or may not be maintainable and no way forward other than hiring another contractor (goto (a)).

  • treis 1012 days ago
    You're a second class citizen as a contractor compared to the FTEs. More money might be enough compensation but it's hard to shake the feeling of being disposable.

    Feeling can go both ways. As a contractor you have little invested in the success of the project or company. Only thing that matters is a reputation for your next gig but ultimately 1 project doesn't make or break that.

  • jbluepolarbear 1012 days ago
    I have a family and independent health insurance for a family of 4 is nearly $1500 a month for poor coverage. At most positions I’ve been at, I’ve received health insurance at no or very low cost. And those payments are taken out pretax.
    • iancmceachern 1011 days ago
      And it's better insurance with less our of pocket costs.
  • zhxshen 1012 days ago
    • brntsllvn 1012 days ago
      > "Ironically, you could do better having an employee than a slave –and this held even in ancient times when slavery was present."

      Interesting. Thanks.

  • bediger4000 1012 days ago
    Hiring SWE contractors is almost always a labor law dodge.

    Working as a contractor isn't really that lucrative. As a contractor, you have to do things like track mileage, don't take days off, etc to make it pay.

    And then there's the creeping uncertainty of being on the bubble every single day ...

  • tharne 1012 days ago
    In the U.S. the main answer to this question is Health Insurance. The U.S. Health Insurance market is designed around the idea that your company pays (in part) for your health insurance. Most plans available to individuals are complete garbage and horrendously expensive.
    • mywittyname 1012 days ago
      This is changing with the healthcare marketplace. However, YMMV depending on which state you live in.
  • mywittyname 1012 days ago
    There's a huge time savings that comes from being an FTE. Managing benefits, taxes, and hours takes up a non-insignificant amount of time. When I was a contractor, I had to keep track of my time pretty much down to the minute, then I'd submit an invoice and wait 60 days for a check. So I'd also need to keep track of what hours I have been paid for. Not having to keep on top of getting paid is alone worth being a FTE. Though, I'm not sure if there are places that pay FTE-like contractors on a more regular cadence or not.

    I don't see where the tax savings comes in, especially now that the standard deduction is ~13k per person. I'm not going to pretend to be an expert here, but I don't see how I could accumulate that much in tax deductions each year, even deducting part of my house and buying new computer equipment all the time. This is especially true now that I get a tax-free stipend that covers my internet and mobile phone as part of my paycheck.

    I might be able to squeeze a few more dollars out each year because I work for a place that has "unlimited" PTO and I don't really take PTO. But I feel like those hours would be lost dealing with getting paid.

    • shinryuu 1012 days ago
      It's also possible to tell the client that you bill by the day. That way you won't need to keep track of every single minute.
  • sebszu 1012 days ago
    In Poland, where I live, as well as in most of the CEE region I believe, 80% of the market is contracting these days. Makes it really tax efficient.
    • vendiddy 1011 days ago
      What makes contracting tax efficient in Poland?
  • toast0 1012 days ago
    Janitors are often employees of a janitorial service company and the company is a contractor or the tech company. The janitor doesn't have flexibility, but the service company has some.

    Personally, my spouse stopped working because their earning potential in the architecture field was so low compared to mine it didn't make sense, and also their benefits were poor compared to tech industry benefits, so it wouldn't make sense to not take tech industry benefits even if we both worked.

    Corporate insurance is nicer than exchange insurance in ways you can't pay for, and likely wouldn't if you saw the cost, so it's nice to get the best of that.

  • rgavuliak 1011 days ago
    In Central-Eastern Europe many people are fake contractors - essentially employees with B2B contracts. You get paid a fixed amount each month so you can even take vacation. Overall your net income is better than a company spending the same amount of money on an employee. It's not fully Kosher, but the governments don't really do much about it.
  • s1artibartfast 1012 days ago
    It is almost entirely due to regulation and the legal liability arising from it.

    Contracting was much more common 20 years ago, especially in California. The state disfavors contractors because they are exempt from many regulations regarding employer responsibilities.

    I say this as someone who always wanted to be a professional contractor but understand that this is no longer a real possibility

  • muzani 1011 days ago
    Contracting is lose-lose. Companies have economy of scale. If you're a developer, you lose out having to play games with negotiations and juggling cashflows for late payments. If you are an employer, a contractor costs more and is less reliable.

    But in practice, it works out because markets are inefficient.

    Say, you have a block of work that is valued at $100k. You can hire a person for $150k/year and hope you get more blocks of work worth $300k or whatever later. Or you can budget around $60k to get this work done in 2 months. The contract option is easier to manage.

    A full time job is basically a bulk discount. You are guaranteed money even if there is no extra work, and you don't have to juggle bills.

    I think companies like Toptal do a really good job of playing into this arbitrage.

  • PaulHoule 1012 days ago
    • brntsllvn 1012 days ago
      > By requiring software engineers to be employees, a Congressional report estimated, income and payroll taxes would rise by $60 million a year because employees had few opportunities to cheat on their taxes.

      Makes sense.

  • 8note 1012 days ago
    There is a tendency for contractors to be people without the credentials to get FTE work and their contractor pay is lower to match

    Friends I have in that setting find it very hard to increase their pay, and really, their best raise and promotions etc ever happened quiclly after becoming an FTE

  • bravetraveler 1012 days ago
    I find it kind of exhausting, but maybe it's a symptom of my full time job.

    I enjoy the predictability in that six months or even six years from now, if I choose to, I can still be here.

    I don't want to continuously negotiate or whatever, I just want to work with cool stuff for fair money

  • SSAEED_79 1012 days ago
    I contracted for 5-6 years and now back into a permanent job.

    Contracting is mercenary work and you have to be really good at what you do. You need a good amount of experiencing before even considering going into contracting. The client expects more from you as well because for them, they are paying the best so expect the best.

    In my 5-6 year stint as a contractor (PHP/LAMP side) I realised that I really haven't grown much through that time. Knowledge wise I was pretty much still where I started and there was no chance or time to learn new tech and grow while contracting. My friends in perm jobs had added devops, node, python and related tech to their belts. They were actually creating works of art and using bleeding edge stuff in the perm jobs. The time and money for them to do this was funded by their employers. And they were at much senior roles compared to me (Contract roles at a senior level are difficult to find. I was basically a senior-level code-monkey but always contracted mid-junior dev (Thats what most contracts wanted). No managerial/senior positions.

    As for me, I was just miserable waking up to the same shit everyday and it started feeling repetitive. I started feeling like a dinosaur and then, PHP being an entry level language, had a lot of saturation in the market, bringing down the rates significantly. On top, other devs and departments hate you. For them, you are being paid 3-4 times for the same job they are doing. They would go out for lunch not asking you to join which I didn't mind but it does create a feeling of alienation and I don't like passive aggressive environments.

    So, I eventually started burning out and losing interest and got fired from a contract for spending too much time on youtube cat videos (which my employer/client was keeping an eye on for a while.)

    This was a blessing in disguise. I had enough savings from the great money I earned contracting. Took a year off, took bootcamps on the latest tech (Python, React, Node, AWS etc). As planned, I started interviewing and accepted a perm job, just to get my foot in, basic pay (mid level) in a Fintech startup (my target field) using everything I had learned. Worked there for 1 year. By the end of 1 year, I had the reigns to most of their projects with one major project being handled by me alone (because of my tough contracting-experience) and I learned a lot furthering my knowledge.

    Found a new perm job and got an offer(£85K with plenty of shares). My resignation for them was like a bomb had gone off. They realised that they were paying a senior dev, mid-junior level salary (£50k per annum) and they didn't want to lose me. Was very difficult to leave and make my excuses but got great linkedIn references. Had a great relation with my colleagues and they still think I will come back one day.

    Now at the new perm job, working as a senior Engineer/lead (managing a team of 5) in a new fintech, using tech that I love. Everyday is a new day. We have budgets for learning, courses, exams, Friday afternoons are off to allow us to research into any tech we want and we have the freedom to use bleeding edge stuff along with shares in the company. I have colleagues that have made life long friends with.

    This is only possible in a perm role. If I was contracting right now, not even in my dreams.

    Would I go contracting again? Maybe, for the money and tax savings (Doing taxes was another big pain. Cant rely on accountants 100% and have to keep an eye on what they are doing. They do something wrong, you get jailed. Plus you have to keep track of all expenses to give to the accountant at the end of every month) but not contracting anytime soon. I'm still building myself up for this mercenary work.