The first time I needed a lawyer to review business paperwork, I called a local personal injury lawyer who I knew had a good reputation, and they gave me a reference to someone who barely had any marketing presence at all, but was an excellent lawyer. 10/10 would do again.
Just read it. I've never seen one that wasn't intelligible to a normal human. If there's anything you object to, raise the issue. Don't be afraid to push back. Nobody's trying to trick the other party; you're just trying to find a set of terms that everyone can agree on.
I'm also in California, so noncompete rules aren't valid. That said, I recall seeing one once in a contract, and I just lined it out.
Other things to watch out for:
* Indemnification clauses. I just say up front: I can't possibly hope to defend you against patent trolls, I can't indemnify you.
* IP allocation. Most contract work is "work for hire", which is fine - they're paying for it, they own it. But there are other situations; maybe you are incorporating some software you've already developed; maybe you're getting paid to add something to an opensource project; etc. Just make sure the contract acknowledges this situation. They're writing the contract, they can figure out the wording.
* Payment terms. If you're billing once a month, and your terms are net-30, you're getting paid two months behind and it really hurts when the company collapses and you get stiffed for your last bill. It happens. Be careful with terms, especially with smaller clients.
For the most part, you can trust the simple english understanding of the words in a consulting contract. They usually aren't long. Just read them.
https://www.calbar.ca.gov/Public/Need-Legal-Help/Using-a-Cer...
More generally, the type is just "your lawyer."
Most lawyers mostly handle contracts. You probably don't want a trial lawyer or a criminal lawyer or a tax lawyer and likely won't come across an in-house council.
As an aside, [1] if it comes to the point where the fine legal points of the contract are in contention your business relationship has gone bad (or it was bad from the start (there are clients like that)).
What I mean is that the way NDA's between consultants and contractors are really supposed to work is that the consultant is working on the next project for the client (and the next project after that and so on) because that's how the consultant makes their money.
If you are prioritizing your own "future IP" you're shooting your client relationship in the foot. I mean who wants to work with a difficult consultant?
Your lawyer should tell you what you are in for by signing, but unless the terms are onerous, any kind of heavy NDA back and forth is a reveal of lack of experience. Onerous terms are a reveal of a bad client -- new consultants tend to experience more of them because experienced consultants work to acquire and maintain good clients.
Finally, the terms of the NDA and other aspects of the contract should be reflected in your fee. Your business is to charge for the value the client expects. That value may often include saving the client money. But it does not include saving the client money on your fee.
Good luck.
[1]: well that got longer than I expected.
I would suggest a solo or small law firm as your business will be more important to them. And attention to the agreements you have questions about is actually what you're looking for. Larger firms will probably just hand you off to a paralegal with a quick review by an actual lawyer. And then charge you way more.
I would also advise you read up more on basic contract agreements.
When I started I found Nolo's book on "Consultant & Independent Contractor Agreements" very useful. Archive.org has 5 copies at https://archive.org/search.php?query=nolo+Consultant+Agreeme... .
I would find a labor & employment attorney, with the caveat that you want one that traditionally does work for tech labor and not tech employers.
With most legal specialties, you'll find that attorneys often gain experience defending one 'side' of the argument.
Many, often most, terms of the kinds of boilerplate contracts you get in consulting/freelancing are covered by law anyway. As long as you have spelled out the expectations you can assume the fine print is just repeating what the law says already. And contracts cannot void or override state or federal law.
You need to clearly describe:
- What you promise to deliver, the more detailed and specific the better.
- How much and how often the customer will pay you.
- Start/end dates for the contract.
- Who owns the finished work product (generally defaults to the customer but best to spell that out).
If at all possible contract, charge, and get paid for specific deliverables as opposed to a fixed fee for a vague statement of work, or hourly for whatever the customer asks/expects you to do. It's much easier to enforce a contract that says "Set up staging and production instances for web server in AWS or GCP, with specs X, Y, and Z, by DATE" than one that says "Set up hosting environment." As the project proceeds you should agree on the deliverables with the customer, and how much those are worth, not the time you think it will take. You should avoid putting yourself in a position where the customer can owe you a lot of money, or you could get sued for a lot of money. Fixed-fee projects for thousands or tens of thousands of dollars with vague specs and requirements just lead to trouble, because you and the customer probably have very different expectations and interpretations.
No one knows how to write complete and unambiguous specs that everyone interprets the same way. No one knows how to estimate software development or plan for the unknown unknowns that inevitably arise. We can call it engineering but really it's a lot of guesswork, and your customer will proceed from a different set of assumptions than you have.
If you do get sued, or you have to sue, you will almost certainly spend more money on lawyers and lose money on non-billable time than you can hope to recover. Don't count on a contract to give you a slam dunk. Even if you "win" in mediation or court you just get a judgment, not a bag of cash, and collecting on a judgment turns into another problem to waste your time. The legal process moves slowly, costs a lot of money, imposes stress, and reduces your billable time. Mediators will probably not understand anything technical and they want to get the case over with, so they tend to split the difference, pocketing a fee and ordering payments to attorneys.
That's not to say that they couldn't apply that same skillset to drafting contracts that protect the interests of the consultant. It's just an observation.