When you're an employee the work comes to you. Your job is to execute the work. You get paid.<p>When you are self-employed you have to go find the work. Your short, and long, term success will be 100% based on your ability to do this task. Fail here and you fail. Period.<p>Now you get to execute the work. The specification will be light on detail. It's likely underfunded. Your customer will keep moving the goalposts and will resist funding changes to match. Your short, and long, term success will be 100% based on your ability to do this task. Fail here and you fail. Period.<p>Once the work is complete you will then spend significant time and effort getting paid. Some customers won't pay. Your short, and long, term success will be 100% based on your ability to do this task. Fail here and you fail. Period.<p>You also get to do all those tasks you considered beneath you as an engineer. Like Support, Documentation, Accounts. Taxes. Making coffee. Answering the phone. Cleaning up. All of which are basically unpaid.<p>On the upside this process will teach you about business. Marketing. Invoicing. Quoting. Payment schedules. Support. Documentation. And, yes, accounting. You'll discover that only a fraction of your time is "working" (aka coding).<p>If nothing else, if you fail, it'll make you a much better employee, better able to understand what everyone (non coders) do, and why they matter. Your appreciation of marketing and sales folk will soar. You'll see the receptionist, cleaner, coffee maker with a new set of eyes.<p>Being self-employed is rewarding. But it isn't about coding - it's about everything else.