The types of programming jobs that are available to moms with technical experience are many. You're bound to find work you can do from home, if you're willing to go through a competitive freelance job application process. You can set yourself apart from the competition if you have strong communication and project management skills, but these are not necessary to land many jobs. Put your programming skills to work with one of these jobs:
Programmers are hired by companies to develop web based or CD software programs and applications, and it's easy for companies to outsource the work to freelancers. If you've got the technical skills and are passionate about developing software, there are software developer jobs out there for you. Expect a written contract with a lot of legal language about copyright, trademarks and patents to make it clear that the intellectual property rights ownership belongs to the company that's hiring you. Try to negotiate upfront payment, as well as interim payments for reaching milestones in the development process. An entrepreneurial approach would be to shop your idea for software to companies that might be interested in purchasing it for you. Before you take that route, protect your intellectual property rights, so that you can license or transfer ownership to a company that's interested in your idea.
There are so many applications for the iPhone, it's hard to keep up with it all. Some of those applications were developed by enthusiastic programmers who did it for fun or fame, but some were developed by programmers because it was their job. In addition to the iPhone, there are other software programs and technology in need of applications. You can specialize in creating those applications for clients. Keep an eye out for the new "must-have gadget", and study it closely. If you predict a need for one or more applications to accompany it, contact the company and find out who you need to talk to about future applications.
Some companies want their own database system, and they'll need a programmer with relevant experience to create one for them. Database design opportunities are listed among other programming jobs on job boards for freelance technical jobs. You can also network with small business owners to see what their database needs are. Many won't want to pay for a full database design, because it's cheaper for them to buy software already available. However, they may hire you to customize what they've got. When they grow, they might take you up on your offer to design a database especially for them.
You're going to have the most success finding programming jobs using the Internet. The best place to look is on job boards that list programming jobs, even the ones that don't list only freelance positions. You can find home based programming jobs on those boards every so often. Don't pay money for access to websites that purport to list programming jobs from home, because there are so many other ways to find the same posts online for free.