Wednesday, April 16, 2008

Prep Work Before Freelancing

Before you become a PHP Freelancer, I recommend you consider the following advice, and try to spend weekends and evenings working this out before you step foot into the bull pen. Otherwise, it can be a rocky road for you.

Debts. If you have a second mortgage, or a boat you're paying on, and other big risks right now, you need to get those off your plate or pay them down a great bit. Otherwise, the foreign competition, will often work for peanuts, will outbid you on contracts.

Spouse. You need a spouse with another income coming in to help you ride out the tough periods, and you need a supportive spouse that can tolerate the ups and downs of your work from home, and can tolerate seeing you in sweatpants and a T-shirt every day with uncombed hair and badly in need of a shave. You need one who trusts you and won't consider you a bum, and you need to do your part of the bargain by bringing in gigs every month so that you don't start to become a real bum.

Capital. For USA residents, you need at least a $20K or higher IRA or 401K out there that you can borrow from (as long as you return the money in 60 days in order to not incur a tax penalty). For anyone else, you need a pension or retirement account which gives you a borrowing arrangement, or some kind of savings account. As well, you also need about 2-3 months salary saved up and liquid enough that you can use it as you get started in your company.

LLC. For me, I found that the LLC is the best structure to have your startup company in. It's easier to do taxes, has the easiest corporate rules, has some liability protection, and shows clients that you are serious and not some guy goofing around.

Professionalism and Experience Are Crucial. You may not need a college degree for this business, but going off to college and getting at least your Bachelor's Degree does change you and make you a bit more professional. If you can act professionally and mature, then perhaps you don't need a college degree and more power to you. Still, having a college degree gives you at least something to fall back upon if times get tough. As well, you also need sufficient experience to do what you're doing, and not just in programming. You will work a lot with Linux when doing PHP, and so you need to understand Linux command-line sysop work in addition to clustering, web farms, database clustering and replication, Apache directives, and so on. And most of all, you need to be the kind of personality that is calm under pressure, that knows how to not be so whiny and defensive when communicating with people, and can empathize with your clients.

Type Fast, Real Fast. It's obvious that if you have brutal foreign competition out there that you need to type and think extremely fast. Nuff said.

Get Ready for Long Hours, Initially. You have long hours now in your cubicle programming job, but get ready for a shocker -- as a PHP freelancer you may find you work far more hours than the cubicle job, at least initially until you get regular work and have other websites up that bring in residual income.

Brainstorm Residual Income Ideas. Before you even think of jumping into this industry, you need about 15 projects out there that bring you residual income with minimal effort. I don't care if it's a series of blogs with ad revenue, or an eCommerce thing, or selling "bling" graphics for MySpace kiddies -- you just need several things that bring in at least $3K a month, combined, and which really only occupy about 30 minutes of your time each day, or 2 hours every other day. Having this sort of thing helps you ride out the tough periods as a PHP Freelancer.

You're Not Just A Web Developer. You need to change your mindset as a newbie PHP Freelancer. Most of your clients will be AMers (Affiliate Marketers/Internet Marketers). In order to better serve them, you need to understand their world and understand terms like pixel tracking, CPA, CPM, PPC, EPC, and so on. You also need to let their ideas and successes help influence your own residual income projects, and do a good bit of AM work yourself. There's nothing finer than making $100 a day for doing almost absolutely nothing each day and only having to spend like 4 days each month doing your AM projects.

You're Not Just A Web Developer, Part 2. In addition to web development, you'll be frustrated to know that web designers get paid more and work with less frustration. Sure, web designers do graphics and XHTML/DIV/CSS work, but they get more gigs available to them and don't have to spend a lot of time doing them. Demand is higher for their work than pure development, unfortunately. So, if you want a way to hedge your bets, you either need to learn graphic web design and get good with the latest trends, or at least know how to convert any graphic design into XHTML templates that use DIVs and CSS.

Skills. I recommend the following skills:

  • PHP5 (and get ready to learn PHP6 because it's coming fast)
  • PHP libraries like gd (for graphics), and several others -- think about what might be in big demand, and learn it
  • MySQL 5.1 (and better) -- know how to install from RPM or DEB or custom compile, along with configuration, basic SQL commands, importing and exporting data by command line, working with temporary tables and transactions from command line and from PHP, backup strategies, normalization, the case for denormalization, database optimization, and so on
  • osCommerce, Zen Cart, and Magento Commerce (all three) -- installation, customization, and understand how to hook the login mechanism
  • Drupal and Joomla CMS -- installation, customization, and understand how to hook the login mechanism
  • vBulletin and Vanilla (getvanilla.com) forums -- installation, customization, and understanding how to hook the login mechanism
  • Smarty PHP Templates
  • Zend Framework
  • jQuery -- recommended instead of ExtJS, Scriptaculous, Prototype, or any other Javascript platform. When you study jQuery versus the other Javascript platforms, you'll know what I mean. jQuery changes the way you think about Javascript, and it's crucial to know because the largest time killer in web projects is fighting with DHTML/DOM work, and all the cross-browser quirks
  • Affiliate Marketing/Internet Marketing -- know the terms like pixel tracking, ad copy, CPA, CPM, PPC, EPC, content arbitrage, and so on, and not from a terminology perspective, but actually attempted it as well
  • XHTML along with DIV/CSS work
  • A little bit about using graphic design packages
  • An understanding of Web 2.0 design and the latest design trends (like what you see on webcreme.com)
  • Apache 1.5 and 2.0 -- installation from RPM or DEB or custom compile, along with configuration
  • Reverse Proxy -- understand open source products like Pound and how you can use a reverse proxy to build a cheap web farm
  • AJAX, JSON, and REST -- hugely important
  • Linux sysop command-line stuff -- can't stress this enough
  • Building Linux clustered systems, Linux virtual machines, web farms, database replication and clusters, and REST web service communication
  • CVS or other source code checkin/checkout tools
Brand. You need to prepare for the launch of your company. So, you need to make your LLC, you need a great logo, you need a name you won't get sued for using, get some golf shirts and oxford button down shirts ready, and some really nice cards. You won't use your cards that often, so splurge a little on them, such as getting plastic ones or fullcolor ones. You also need a great domain name and a website that shows the kind of quality that you can offer your clients. As for the design of the site, I recommend you compare it to the stuff you see on webcreme.com. As for what to put on the cards, don't even mention PHP because most clients won't care. Get ready to leave these cards in businesses, grocery stores, and restaurants all around where you live, either in a pack with a card holder, or a pinned up card or two. On the cards, all you really need to say is that you can do website design, logo design, and web payments (catalogs, shopping carts). Everything else, like PHP, database work, and web applications -- these are all implied and don't need to be mentioned. And you'll find that your #1 clients from handing out cards will be doctors, lawyers, and real estate firms, so get ready for that kind of clientele and their needs. Now, note that these won't be your primary clients, but they'll be a sizable portion of them, especially after awhile when word of mouth gets around.

Client on Retainer. One of the first things you should do after you figure out what your hourly rate should be (and after you have tested it and learned whether that rate works out pretty well), is to put out a Google AdWords ad, a SitePoint.com ad, and a WickedFire.com ad (trust me on these) to work on retainer for half your normal rate. So, if you plan to charge $50 an hour, then put out an ad that says something like, "Get a Part-Time PHP Developer on retainer for $25 an hour." Sure, it may take you a good long time to wait for someone to take advantage of this, and you might have to do the ad campaign, give it a rest of a couple months, and try again, but eventually you'll luck out and someone will agree to pay you either $15 to $25 an hour for 100 hours a month, on retainer. By being on retainer, this means that they are supposed to pay you whether they have work for you or not. And if you don't believe me that this works, then look at me -- I found that some AMers out there are wealthy, and one of them snatched me up to do this very thing.

Understand Common Website Types. You need to sit down and list out common website types you see and have visited. For instance, sites like a catalog/shopping cart site, a politician site, a doctor's/lawyer's office site with newsletter, contact page, and scheduler, a business directory site, a real estate listing site, and so on. Then, combining PHP, MySQL, jQuery, AJAX, Smarty PHP Templates, and a few other packages like Drupal, Joomla, and Magento Commerce, build sample sites. This allows you to hit the ground running when you become a freelancer because you'll already have a site template you can pull off the shelf and customize for a phenomenally low rate, yet still make a profit because you do more of then in a month than your competition.

Work Environment. I recommend getting everything on laptops instead of desktops for a few reasons, but, that said, I also highly recommend getting a keyboard and 2 or 3 flat panel displays. You'll need at least 3 laptops, if not a couple more. The reason I say laptops is because you'll often need to pick up the project and go somewhere with it, especially when trying to meet a deadline but yet you need to attend your son's baseball game, or if you need to take it on vacation, or if you're going crazy at home and need to hit the beach and work from there. Getting a laptop just makes it easier to get up and go. However, laptop keyboard durability is weak, so you really need a USB keyboard that you hammer on each day, and you need a flat panel display that's larger and better quality than your laptop's display. I also recommend 2-3 screens set up in multi-display mode so that you can drag windows between them. As for multiple systems, it's because you need to be able to test your apps against a Mac Safari browser, Windows IE6 and 7, Windows with Firefox, and Ubuntu Linux with Firefox. You also need a color laserjet and a really nice set of desks and cabinets for your work. Even the chair needs to be ready to go and very comfortable. It just makes life easier to have all this going before you decide to go full-time as a PHP Freelancer.

Start Your Portfolio. Before leaping in full-time as a PHP Freelancer, you need to find some clients in town or on the web who wouldn't mind you doing their work for absolutely free, telling them that you're trying to build a portfolio. When it's free, they can't complain or hassle you. Plus, in exchange you can let them know you want to include the site image in your portfolio and have a back link to them as a reference and a way of advertising their site. Sure, they may change the site eventually, but at least you'll have the initial image and a link to the client, and you can discuss what you did on the project that makes it interesting and unique. You need at least 4 sites completed in a portfolio you are proud of before you can begin. Otherwise, you just come off as an amateur. And if you can get at least one catalog/shopping cart site in the mix, that's even better. Now, if you want to take a shortcut, just make some fake sites with fake company names, hook it up to some fake address and some real (although free) voicemail, and register the domain by proxy (cloaked whois info) so that no one can easily see that you built this yourself for yourself.

Relationships. You need to find some contractors out there that you can sublet your work to who are quite affordable and reliable, and most will likely be foreign guys. This helps you do work you don't want to do or aren't particularly good at yet, such as XHTML, and to help you meet your deadlines. I mean, who can beat a PHP guy who can work for you for $8 an hour? Imagine what you can get accomplished with that kind of help.

It's Not Just PHP/MySQL. You'll find as a PHP Freelancer that it's not just PHP and MySQL work that you'll be doing. In fact, that's the easy part! Your biggest time killers on projects will be, in this order: Javascript DHTML/DOM work and cross-platform testing; AJAX and AJAX debugging (quite difficult); DIV/CSS placement and alignment consistently across browsers and platforms; Admin pages; eCommerce; and understanding various packages like Drupal, osCommerce, and so on. So, to that end, you'll need to know jQuery, JSON, AJAX, DIV/CSS placement and alignment techniques, browser quirks, and packages like Drupal and osCommerce, among others. But the biggest thing to learn is jQuery because it is such a time-saver.

Style. You need to build your own style, and templates for the source code of your work. For instance, I recommend you build your own date/time class for doing date/time manipulation, strings class for manipulating common things you do with strings, web class for all web functions like redirects and cookie management, encryption class, database class, and so on. Then, I recommend that your average PHP page be composed of sections where you consistently do things, filling an empty file with comments so that all you have to do is add source in the right area and move on -- it helps you keep your pages consistent, easy to read, and helps keep your mind in gear on projects.

Job Board. Instead of getting ready to take gigs from job boards, go bring up your own and make it popular, providing a way for clients and devs to post their needs and respond to them, and make it so that devs who want a client have to pay like $5 to have a promoted listing in yellow or something, sorted to the top of the list. And, as expected, make it email you when certain keywords are triggered so that you potentially have first dibs on all the work that comes in.

Don't Use Other Job Boards. Many job boards are complete rubbish. They either make you complete "tests" or jump through other hoops in order to get gigs, and they may require that you and a client go through some sort of agreement. Well, what you'll find here are that few job boards actually land you any kind of decent client, and few will give you a client at a decent rate. Instead, get ready to advertise.

Advertising Is Vital. You'll need to learn that Google AdWords and other advertising venues are very important in getting work and getting quality clients. There are several AM forums out there like Warrior, WickedFire, Cash Tactics, and so on, and you'll want to pay for advertising with them as well.

Build an Admin Scaffolding. After you build many of the common sites your customers will want, you may realize that admin pages suck up a huge amount of your time. Therefore, use a concept called scaffolding. This is where you create a set of forms and database interaction that help you do 80% of the required CRUD (Create, Read, Update, Delete) on a project's administration pages needs, and then you customize the last 20%. So, if you can build a script that you can point at nearly any database, and it automatically builds for you a set of admin pages that you can then finalize, it's a tremendous time saver and makes you that much more brutal against the competition.

Take An Interpersonal-Communication Seminar or Class. This is critical and will make a huge difference. You need to be mindful that not all clients are the same, many are cranky, and you need to learn diplomacy, the art of negotiation, and watching what you say or how you say it. For instance, I had one client love it when I told him that his site could look better, and he and I collaborated on a new design, and that was in addition to reworking the code on the site. That worked well. But, dummy me, I took that optimism and used it on another client with the same tactic, telling him that his site could look better if he'd let me suggest some options, and that shut the client down immediately and I got a terse response: "Based on your last email, I think you and I would not work well together, so I'd like to discontinue this contract." And that's a bad day, my friend. So, watch out with your optimism and you eager nature -- it can backfire at times.

So that about wraps it up. If you can achieve all this before you become a PHP Freelancer, then you're a better man than me. Instead, I had to learn this all the hard way, with very little time, and it was either sink or swim. At first, I just about sank until a benevolent CEO at some AM startup heard about me and decided to pay me on retainer. And that's how I eeked out a living in the first few months.

Why Become A PHP Freelancer?

First, let's push aside the word PHP for a moment and focus just on being a web dev freelancer, working from home, trying to earn an honest buck. So why do it? Can it be done?

To answer that, let's back up to look at the guy who works in a cubicle doing web development for a big company. More than likely he's a frustrated person right now, or will be in a year or two and have to find another place to work. I know this because I was that guy.

First, managers are often idiots -- they don't really know what it takes to build a project right, and you do, but they won't listen to you and want to cut down your estimates by 40 and 50%.

Second, they won't give you a walled office (few do) because then they think you'll isolate yourself and not communicate, because they are idiots and think that you need to communicate face to face in order to get work done, when this isn't the case at all.

Third, they will often think they can throw any programming project at you, in any language, and you'll just say, "Sure, I love doing projects in Pascal. Please give me more."

Fourth, they can throw 3x as much work at you, steal all the praise on your successes, take your raise and promotion opportunity instead of you getting it, and then pay you the same rate even though you work 3x as hard now.

Fifth, the foreign competition is brutal and if you're in the UK or USA, you experience foreign immigrants in the office, or work being outsourced offshore, and it's a frustrating experience to see guys take away your projects and work for half as much as your salary.

Sixth, contracts dry up within a year or two and you have to transfer to another department, maintain some tar baby you don't want to maintain anymore, or struggle to find new work because you've been laid off.

Seventh, you're so preoccupied putting out fires and reworking someone else's spaghetti code that you miss a lot of training opportunities.

Eighth, and this is most important -- you read about guys who are freelancers on the web, who have time to keep up with the latest trends, and they're doing exciting things and using the latest ideas and technologies, and you're stuck with weaker skills and not enough time and training dollars to improve yourself.

Sure, not all programming environments are like that in a company, but a lot of them are. Now let's counteract that with what it's like to be a freelancer, point by point.

First, you are your own manager as a freelancer. You can estimate work as much as you want and work it out with clients. They may not always agree, and in fact you may lose a potential client because of a broad (even realistic) time estimate or cost estimate, but hey, at least you get to say what you feel without getting shot down and ignored.

Second, your commute is like 5 seconds from bed to home office desk, and you no longer have a cubicle. You can take your job literally anywhere you can get a sporadic, even weak, Internet connection. You can take your job on a vacation at the beach. You can take your job in the backyard with a laptop. You have complete peace and quiet in order to focus. You have no interruptions except an occasional chat window or perhaps a cellphone call, but you can block those when busy and force people to email you. You don't have to put up with the same old dumb office jokes, or antics in the office, or frustrating people to have to ask favors from, or anything like that. Heck, if you need to, you can stop all work and take a month off as long as you have the bills paid. So, you have a lot of freedom.

Third, you can choose any programming language you want, but you have to use what the client is looking for. However, at least you won't have a manager dictating to you if you say only know Visual COBOL, to suddenly have to do everything in Java. So, you have to pick a language that has good profit potential and good demand. Right now that's either Visual Basic (still a lot of need for that out there), C#, ASP.NET, Java (on Linux and Windows), and, of course, PHP (mostly on Linux). For me, I picked one based on ease of use, has a fairly good speed, has a great developer community, is stable, has a wide function base, runs on Linux because my faith in Windows is extremely low in the server room out of security and performance concerns, and has great customer demand -- and that means PHP.

Fourth, if I work 3x as hard in a given month, I can make 3x as much. There's also a lot of clients out there who just want a template site using products like Joomla, Drupal, osCommerce, Zen Cart, Magento Commerce, etc. And with template sites, once you build one, you can repeat that knowledge fairly rapidly, over and over and over again. So, when you want to make 3x as much, you can try to skim off client projects who just want a template site that you've already done before, and you can repeat this and increase profit.

Fifth, by being a freelancer, you are a lean machine. Now, instead of your manager skimming much of your profit away, and all the other business overhead, you can keep 100% of the profit. This means that you can work for a slightly lower rate for a client than your previous employer could, and keep far more of the profit. This makes you a bit more competitive against a foreign market. As well, you'll save money on gas, such as spending $50 a month rather than $50 a week, and you'll save money on lunches because you can eat at home on a cheap budget and not be influenced by the smells of other lunches that cost too much.

Sixth, when contracts dry up, you just go find another one and don't have to wait for a stupid salesman to do it for you, or wait for a manager to clear up all the dead weight tar babies off your lap so that you can grab something new. You make your reality, every day.

Seventh, every day you get up, or before you hit the sack at night, you can spend 2-3 hours training yourself on something new. Because you're not wasting 2 hours every day in a long commute in heavy traffic, and aren't wasting time in endless meetings, you can utilize that time. And, if your bills are paid, you can take a week or two off and put yourself in a training class if that suits you best.

Eighth, you can keep up with the latest trends and technologies and move with that in order to keep getting new clients, rather than being stuck with tar babies from the past.

Now, out of this, I have put a positive light on being a web dev freelancer, but there are downsides too, and I'll discuss those in another article.

Monday, March 24, 2008

Lessons Learned

Since my last posting, I have focused on the PHP web development side of my work, not focused on affiliate marketing except for my client's AM needs. I have to work to the point of fatigue, but I get faster over time and learn to estimate hours better and learn to optimize by using shortcuts like frameworks, cut and paste from previous projects, and so on.

February was a fantastic month for me of $10K. I know that once I get my own AM projects up, I'll do better, but $10K is great for a starting business. However, in March I only earned $2500, and will only earn $2500, so this is a learning month for me. But that's okay. That still pays the bills.

Meanwhile, I've managed to get a brief vacation here of sorts, but I have my laptop and am working from the beach. That's the great thing about doing business in the AM and web development fields -- you get to work from anywhere in the world where you can get Internet access. And it's so cool these days where I can get free wireless practically anywhere. I'm working from the beach on free wireless now, and I just so lucked out where the signal is strong and I'm running faster than my own DSL back at my house!

In March I took a look back about my slipped deadlines and why. It was due to three problems: (a) poor time estimation, (b) lack of an admin generator*, and (c) lack of knowledge about jQuery.

On a, this just gets better with more experience where you get to know yourself and what you can do. Also, by optimizing time with frameworks, you can speed up your web development.

On b, I learned that every website needs some sort of admin system of its tables, and that we developers end up rebuilding that same system, over and over again. It's roughly a CRUD (Create, Read, Update, Delete) tool for each table in the database. So what I need is to follow the 80/20 rule and build like 80% of the functionality I need, wrap it up into a reusable generator script, and then build the last 20% custom on each project. Along the way, I can use AJAX and jQuery to please customers with less roundtrips to the server. Admin pages have typically required lots of roundtrips to the server, and AJAX can reduce that.

On c, I learned that there's a lot of frustrating cross-platform testing for all the Javascript/DHTML/DOM work I do, and that this takes a lot of time to build. The good news is that some of the guys from the Mozilla Foundation started jQuery, which is a project that gives you screen widgets and other effects to use in web pages with very few lines of code, and which has all the cross-platform testing built in. The repository of widgets is fairly rich, the project has a lot of momentum behind it, the source code for the project is thin, and the learning curve is fairly small. Once I learn this, I can throw out all my previous work with DHTML, Javascript, and DOM and focus purely on living within the confines of jQuery.

Friday, January 4, 2008

Part 4 of the AM Mastery Series



At this point, you're an AM rockstar and other AM rockstars know you on a first-name basis. You'll have enough cash at this point that you can put a manager completely in charge of your AM business and can be like Donald Trump, moving on to more lucrative investments in real estate and venture capital. And, like the AM business, you'll have learned what it takes to build a great company, and can pass on those ideas like a guru. However, never lay off on the accelerator. Keep strong like this until you retire early at 45 or 50. Keep putting out books on those things you've done that made you successful. Yes, do seminars, but make them less and less and charge people more for them because your time and thoughts are valuable.

Eventually you can manage the managers of your empire for years past the end of your retirement, and live on a private island with a helicopter.

Part 3 of the AM Mastery Series



At this stage, you've got zero debt except your monthly hosting bills. You fully own the titles to your vehicles and your house. You may even be working towards financing your own children's college education bills.

You did it by hustling and hard work, listening to the advice of others, making connections, taking risks, networking, being the best that you can be, cutting things off that fail, invigorating things that you think can still get better, sticking with winners when possible to offset your losses, not being afraid to fail, thinking as hard as possible and much harder than others, and realizing that it's all about eyeballs, return customers, SEO, and ads. The Internet is your real estate home and you'll be working to own compelling sites upon it.

Now is the time to bring in more outsource contractors and have them do the work for you, using more script automation so that you can generate the base site for an idea in a matter of seconds, then customize from there.

However, if you want to become a millionaire, it's still a long road ahead. I mean, you might be a quarter of that at this point. To help give yourself a boost, you need to move into sharing your knowledge with ebooks, books, tapes, podcasting, videos, and perhaps even seminars and workshops. Some may say, why would I want to pay you for this advice when if it's so good, why do you need me? Tell them up front that, frankly, the reason you need them is because you have knowledge to share, and sharing that gives you even more money, and because there is risk involved here and not everyone can make it to the top. They'll appreciate that if you tell them this up front. Then, move on to helping them understand the systems and how you made it big.

Eventually you'll be on the seminar tour around the world, and it will feel like hustling again. It will be tough because while you do this, you'll be paying employees and contractors to follow the same things you're teaching others to do, and you'll be making money from their efforts. As you do this more and more, you'll improve your seminars, books, and so on.

Part 2 of the AM Mastery Series



Eventually something starts to happen. You start to realize that your skills are so good that you can do high-quality sites for other people and charge them. You'll become a PHP/MySQL and Perl expert. You'll have taught yourself Flash, AJAX, JSON, great Web 2.0 CSS, and can use that as a way to fill in gaps in time. You'll have a great eye for photography. You'll become a Linux expert and can even build web farm projects. You'll have cash to invest in more large project sites and even new small web startups that do interesting new things in order to gain ad revenue. You may even begin to form startups that build your own ad networks where advertisers will switch from another more expensive ad network to yours if you can deliver a better return on their investment.

This is the hardest part of the game. You'll be doing so many things at once and working very hard all on your own. The trick is to not over-extend yourself, watch the site analysis numbers and strategize against that, stick with short-term stuff and grow from there, and network with people, attend seminars and conferences, in order to build these partnerships to get things off the ground.

Sites like wickedfire.com will be very useful to you in learning about new opportunities and joining others for them. Note however that at this stage of the game, you'll ultimately be taking risks in your re-investment into your business and will fail here or there because that's natural at this stage.

With a lot of effort, working with friends you meet online and strategizing, you may have enough in this stage to even pay off your house!

So, what you find is that at this stage the role of AM has opportunities for branching into other fields you might not have anticipated, such as small angel investor, PHP/MySQL and/or web design consulting, SEO expert, or even building your own ad network.

Part 1 of the AM Mastery Series



Okay, by now, you're bringing in $1K a month from all your forum and blog sites on your own servers. However, because it's still a good idea, a portion of your time is still spent on blogger.com and Google AdSense -- never give up on the free stuff for starter projects. In this business, you need to hedge your bets with multiple strategies.

By now you've probably enrolled in many forums like wickedfire.com and cashtactics.com are getting some great advice and want to keep on moving up the food chain with larger sums of cash each month.

At this point of the game, the cash tactics you'll be focusing on are:


  • Better SEO, and preferably the whitehat kind

  • Getting more forum volunteers

  • Improving content by even paying for it

  • Better site and ad analysis

  • Better ad networks, even moving into widgets, contests, surveys, and games

  • More automation, such as rapidly building forums and blogs through scripts

  • More opportunities to move sites out of subdomain incubation projects and into their own domains

  • Using more outsource partners for design and SEO advice

  • Inventing new forms of compelling content, such as templates for social networking sites (Facebook, MySpaces, WordPress, etc.), screensavers, desktop backgrounds, cellphone ringtones, powerpoint presentations, spreadsheets to run a business, you name it

However, eventually you'll even get opportunities where it costs less to host your own multiple projects on your own servers rather than at some rented shared site. At that point, you might even move into your own small web hosting company to some degree. The key point is to keep an eye on costs. Yes it's good to reinvest somewhat, but you'll want to never over-invest without an eye on the returns, or re-invest before you're ready.

Part 5 of the AM Getting Started Series



Okay, now you're dabbling in some sites and know the game where you use free blogs as testbeds first, then subdomains on a generic domain, and then their own domain.

Still, however, after the expense and time, you might not be making more than perhaps $500 a month, and you might not have a lot of free time.

Here's where I recommend a lot of analysis. What's working? What's not? Can you fix what's not? Is the site attractive enough? Does it load fast enough? Does it have the bandwidth capacity to handle the load? Does it get enough clicks on ads? Does it have compelling graphics and content? Is it more than just words -- do you have pictures and videos? Does the site warrant the need to switch it from blog to forum? Get busy looking at these things because there's answers in there in the data.

Now look at what moves up near the top 3 pages on the social bookmarking sites and which you actually feel compelled to click on. Analyze those sites very carefully -- did they use their own domain, do they have more than one kind of ad, etc.? The ones with more than one kind of ad are more than likely an AM-er, even if part-time. Now, can you bring up sites similar to this?

Now look at finding volunteer moderators and volunteer article writers on your forum sites. Start by looking at your forum users. Reward them. Private message them and say great job when they write a good forum message that really knocks your socks off. Ask the ones who come back regularly, and who can reasonably write a good forum message, and who seem to be a generally nice person even when spat upon, to become a forum moderator. Grant them just a little bit of privilege in the system, one at a time, and see how well they do. If they don't make the cut, say, "Sorry, we had a tough choice to make on who to pick for forum moderators, and you didn't make the cut at this time. However, every year we look again, and we'll keep you in mind if you would like. Just reply yes and we'll put you down on the list to review for next year." From your forum moderators, then begin to encourage them to write articles for the front page. Eventually from the cream of your crop in a forum, you can grant manager of the moderators privilege so that the moderators interact with this single person, and that single person is the only one you deal with. This leaves you out of the forum except with occasional work, and you get the ad revenue. Now, as an added bonus, surprise your moderators at Christmas time with a small PayPal payment gift from a portion of your ad revenue. Meanwhile, don't let on what you're doing -- that you're using them to bring in more ad revenue. Never mention one word about ad revenue, or how wealthy you're getting from the site. Never refer to these article writers or forum moderators as "sheeple" -- love them to death because they are your bread and butter. And remember -- people want to visit a forum where everyone gets along and there's no flaming, rude talk, or being called stupid. Sure, accidental flare-ups can happen and they need to be lightly mitigated, but the serious infractions must be dealt with harshly, including banning IP addresses if necessary.

As well, once you get rolling, you can pay others to generate content -- there are many freelance writing sites on the web.

You can also begin to seek out advice on SEO and even pay small sums (no more than $100) for whitehat SEO advice from a couple different guys on the web.

You can also learn to improve your site design skills to give it a more modern look but yet in a way that doesn't slow the web page down or look funky on different kinds of browsers. Remember -- most of your users will be Windows users, then Mac, then Linux. You need to be able to accommodate all of them, and that takes web page testing with the most commonly used browser on each platform. And if you are stuck on site design, outsource it, pay for some advice, or purchase a good book and study.

Part 4 of the AM Getting Started Series



Okay, the next thing to learn with AM is that Google AdSense has rules. Sometimes you have content that doesn't fit AdSense rules, or free blogger site rules, and a desire to go beyond those rules. Don't break Google's or anyone's rules!!! The fix is to either use another ad network that isn't so picky, other sites that aren't so picky, or to bring up your own sites with your own web hosting provider. Saying that, however, I don't mean to EVER abandon Google AdSense or even the free blogger sites. Use it for some sites, but not all of them. You need to hedge your bets.

When you finally have enough cash to bring up sites, it starts out cheap, just a few small dollars each month, but it can get quite costly. So what do you do? First, you need to only bring up sites that either (a) you've tested on free blog sites and see considerable page impressions, or (b) you strongly feel will be a "hit". Second, sign up with the cheapest plan possible that supports MySQL and PHP on Linux. Use Linux because it often has better tools for free and better ways to keep your site from being defaced or hacked. Third, find a hosting provider with a good scalability program such as HostGator.com. Fourth, and this is key, purchase a domain with a generic name like "site.com" or "access.com", but therein I need to break that out and explain why.

When starting out to the point where you know you have a hit on your hands and it needs it own space, its own rules, its own ad network choices, better web page analysis tools, then you should pick a starter domain with a generic name and then, and this is key, use subdomains from that domain. With subdomains, you can incubate (try out) ideas for sites all with one single hosting plan. If your web hosting provider is flexible, they may permit as many as 100 subdomains, or even infinite ones. With a subdomain, you catch this on the home page of your site, then redirect to pages just for that content. Therefore, if I have an idea about Britney Spears, I can bring up spears.access.com off my access.com domain, test it out to see if it gets the traffic I want, and, if it does, I can then go ahead and purchase another domain like spearsdomain.com and start hosting a site on it. All users who then come to spears.access.com can then get redirected with some small code in the page to point them back to spearsdomain.com.

Many of these sites have something called a Control Panel where you can click to install software on the site without even needing to be a fancy web developer, and then grow it from there with points, clicks, typing, and cut/paste some small Javascripts. I highly recommend, once you know a site is drawing traffic, to go with bulletin board forum software packages like Vanilla or vBulletin. This encourages people to enroll in these forums and keep coming back. By the way, if JelSoft, the makers of vBulletin, ever get listed on the stock market, that's a stock to snatch up right away!

Part 3 of the AM Getting Started Series



Again, if you're coming to this late. AM stands for Affiliate Marketing. I'm not going to bookmark it again because I already have a bookmark around here somewhere. From now on, I'm just going to say AM.

So now you might be bringing in, say, $50 a week from AM if you're lucky. You did this by typing your little fingers off and a lot of hard work. However, that can trail off eventually and it gets tough to keep on adding content.

One way to keep adding content is to cut and paste from other sites, quote those statements with italics and indenting (if not by coloring and adding quotes as well), and definitely mark your sources and provide a hyperlink to them. Then, you must not solely do that! You must then intersperse your comments around these other comments. That's what the copyright law says you can do except in two cases -- when the copyright holder asks you to not do that, and when the copyright holder has something on their site that says you are not entitled to do that.

Now you are ready to sign up with other free ad networks and use those on your free blogs. A great one is Amazon.com, where you recommend books, movies, or other gifts. It pays very handsomely, currently, and is a good "starter" ad network to get involved with. But don't stop there, look for others and read their FAQs on how to include their ads on your sites. If you have to pay or do some other annoying thing to join an ad network, then don't join those sorts at least yet -- that's for when you move up in the food chain as an AMer and can afford to take those kinds of risks.

Just note when mixing ads that some ad networks don't like to see their ads mixed with other ads from a competing network, so you may have to have different blogs with different ad networks. Read the rules for your ad network.

Part 2 of the AM Getting Started Series



Okay, so you're making money on Google AdSense. You are probably only making about $5 a week, if you're strategizing right. So how do you build upon that? That can't keep you afloat, can it? No, it can't.

Now what you need are some tools. First, you need scripts you can find on the web to add to your site so that you can track when users move their mouse in certain areas of the page (called a "heat map"), and scripts to track how many people visited your site. If you don't know how to add these scripts to your site, then you need to pick up a book on how web pages work, on Javascript, and perhaps even on PHP and MySQL. If you don't want to go down that route, you can outsource it to freelancers like me on the web, but that eats away at your potential profits. Trust me, it's not that hard. C'mon, give it a try. It's rewarding in the end. Want to pay off your house? Want to become a multimillionaire and never have to worry about a day job? Then try to learn something technical for once in your life that has a huge payout at the end. We're not talking building entire web applications. We're talking about adding tiny little scripts to your website.

Okay, so this helps you analyze what's working and what's not. Now you need to build upon that by bringing up dozens more sites on our near those topics, or keep searching for new topics that sell well.

Let me give you an example of what you don't want to do. Imagine GM has a recall on their vehicles and you notice it high on the list at Google Trends. Great blog topic to generate ad revenue? NO!!! Why? Because you want to visit a site that has recall information articles and then see ads that say, "Purchase a new Saturn"? They won't. If they go to a recall site, it's because they're saying, "Holy crap, I have a bad Saturn," and will be too pissed off to want to click to purchase yet another one.

You also must not generate "blogspam". In a sense, that's what you're doing, creating blogspam with these senseless blogs, but you need to try to continue to build compelling content on these sites, especially increasing their likelihood to bookmark and come back. So, it's a tradeoff. You give the users somewhat what they want, and you get the ability to somewhat get some ad revenue.

And, like I've said, try to customize the blog template a great deal so that it doesn't look like every other blog because that turns users off really quickly.

So, how many blogs have you started or updated today? None? Why the heck not? Motivation is a key to your success here. Get busy. Time is wasting away!

Affiliate Marketing (AM)


PHOTO SOURCE: ShoeMoney AdSense Check

That photo isn't me, and I look nothing like this guy, but he's one of my inspirations. He's Jeremy Shoemaker and he is now a multi-millionaire from Affiliate Marketing, or AM. You see, as a PHP freelancer, I needed to hedge my bets. I need something easy that generates income while I sleep, and I need to continue to broaden my horizons seeking any work I can from the Internet, hopefully in something that I'm skilled enough to handle.

I heard about a forum site called wickedfire.com and a concept called Affiliate Marketing (AM). I signed up and started asking questions about AM. I found that you bring up blogs, forum sites, survey sites, product sites, and other kinds of sites, and then collect ad revenue from them. As you get ad revenue, you reinvest some of that back into purchasing more bandwidth for sites that are nearly exceeding their bandwidth, purchase ads on other sites to promote your own sites, and then scale from there with more content, more sites, more ads, and more bandwidth. As a site doesn't do well and you think you can stop it, you end it.

Getting Started - Step 1
The way to get started in this business appears to be with blog sites. You should not just do one, but do several dozen, each on their own exclusive topic. You should customize the blog template a good deal so it doesn't look so generic, add a customer banner graphic, add pictures and video, and add compelling content and blog headlines that lure people in. You should then index these on various social bookmarking sites such as this list. Social bookmarking sites are where you submit your favorite site and explain why you want others to see it, and then others vote it up or down and can add comments on your bookmark.

So what topics do you pick? Well, a good place to start is Google Trends, however, as of late, that site has been "gamed" by other competitor AMers who use it like a battle ground by feeding Google with false trends (searches on bogus topics) that cause it to not be as valuable as it used to be. Google has people who catch this kind of gaming and stop it, but it happens from time to time. You see, in the AM world, you have nice people, and then you have moderately nice people, and then you have cruel ruthless competitors. The nice people are called white hatters, and the bad people are called black hatters. The "game" is to beat everyone else out on search engine optimization (known as SEO) so that one's Google Page Rank (known as PR) is higher and one's social bookmarking rank (known as SBR) is higher among the various social bookmarking sites. The higher your rank, the more likely you will have visitors flooding your site. The more eyeballs, the more potential clicks on those ads, and the more money you could earn. Anyway, the blackhatters want to find all the ways that newbies come into the system, and frustrate them by any means necessary. Then, they want to break all the rules in devious ways that break many website policies. Some techniques the blackhatters use are even illegal.

Me? I'm a whitehatter. Jeremy and many top AMers are whitehatters. However, the top AMers, when they were climbing their way to the top, they did some borderline blackhat things that weren't exactly outside the policy on many websites, but came darn well close to it.

So where do you start your sites with ads? Well, you start them on free sites like blogger.com with no money invested. And back to that Google Trends thing. You need to pick topics for those sites that bring users in, such as a site that collects the absolutely funniest things you saw on YouTube on a particular popular theme (such as rednecks), and then blog about it and name your source.

Next, you sign up at Google AdSense for free and with no obligation. You then use features on the sites (or look up the FAQ at Google AdSense) to include those ads quite easily around your content on your sites.

Sure enough, you'll see a little bit of money go into your account. It might not be much, but what if you could track which sites did better than others and what ads the users clicked on the most? And what if you brought up a hundred sites either on that same topic or very close to it, and then put AdSense on that? Get the picture?

Working First Client Gig, PHP/MySQL and Linux

I'm working on the Client A gig now for $1K. Although the client is super-nice to me, he's annoying because he has terrible feature creep, no written statement of work except some loose notes, and the fixed budget of $1K was only something I would agree to because I was trying to get back on my feet again, pay some bills, and hopefully I could get follow-on gigs with this guy. So I've been working non-stop, from 9am to 1am every day with very little break, busting my ass for this cheap $1K contract, and being annoyed because I get little emails that say, "add this," and so on. The carrot on the end of the stick is that I darn well need this check right now to pay some bills, and I darn well need follow-on work that is promised to pay more than $1K per gig.

Last night we had a call together and I tried to nail down what exactly the Phase 1's final set of tasks were to do, and then to quit this and get paid, then move on to a Phase 2 for more work. He annoyed me with about 5 new features requests. I had to deflect all but 2 and was able to convince him as nice as I can that the other 3 should go into a Phase 2.

However, working out of my home, it has been a joy to finally get back to doing what I do best, PHP and programming on Linux, and I get to do my work in my sweats. I don't even have to shower or shave except every other day if I don't want to do so. I don't have a commute except to interact on the Internet. If I could just get clients that don't do the feature-creep thing with me, have more reasonable expectations, and pay me just slightly better, I could have a little more free time and could have a reasonable life where I'm not glued to the keyboard, 24x7.

Thursday, January 3, 2008

Where this all starts

As for my background, I was doing a lot of Microsoft-brand programming for many years, moving up the chain to senior development and then floating around as a national consultant web developer. Eventually I got tired of that rat race, the heavy competition from the cheap H1B Visa and offshore workers, and decided to settle down. I got off the plane and decided to get a local job doing web development. Unfortunately, I had relocated in that timeframe from a big city to a very little farm town that's practically an hour away from anything related to technology or big business. I had made this sacrifice on behalf of my wife, who wanted to be closer to her 3 sisters and other relatives. She enticed me with the deal by saying we would get a lot of free land (which we couldn't sell, but we could build upon). So I was stuck with whatever options the town had. The idea was that I was going to make a lot of money on my big city house, then turn around and save a bunch of money on my new house because I was the general contractor, because labor was cheap in the farm town, and because, with free land, you can invest more of that money into the house. So, we built a small mansion of a house.

Eventually I found an IT job an hour away, but it paid terribly low. I was doing senior web development there when all of a sudden the company got bought by a huge global company and my job came up as an issue. I was told I could either hit the streets or I could take a Linux sysop job and still have a chance at doing some small web development every once in awhile. I wanted to not have to make my wife and kids have to get up and move away since they had made a success of this town for themselves, so I took the sacrifice and worked at this global company one hour away from home, doing something I wasn't particularly interested in doing. I taught myself Linux, then sysop work with SNMP, system failovers, change management, data center policies and procedures, and all that other stuff. I moved up in salary and was told to manage two other junior employees. Eventually I realized that I despise being a manager and asked if I could just move up to a senior rank in the Linux systems engineering job and bring in another manager. My supervisor agreed and we started working for this other manager.

Unfortunately this new manager started to become a pain. Unlike my previous manager, where he would differ with my opinion frequently but I could always explain things to get him to understand my decisions, this new manager wasn't like that. Both managers were stupid, not really geared for IT work, but somehow lucked out and got their jobs. I used them as "meat shields" because their manager (my manager's manager's manager) was a total dufus moron who bungled up many things in the company that we would have to keep undoing and fixing. They also would attend long conference calls and planning sessions for me so that I didn't have to sit in those stupid things. Many conference calls like to belabor the points of the agenda, and many draw you in when they don't really pertain to you, or do pertain to you but only for like 5 minutes of the hour-long call. Both of my managers were farm workers who just accidentally got these jobs before I did, so I was forced to have to persuade them on decisions because they would often go down the stupid path. It was a miracle they could dress themselves in the morning. Anyway, like I said, this new manager and I didn't get along.

Let me give you an example. I had one problem with SNMP on one server. It was how I implemented it and I was too busy to fix it, but I knew what the fix was. You see, with SNMP, you can take one server, run an SNMP application on it, and have it scan other servers to get performance data over the SNMP protocol. It accesses these other servers when they host an SNMP agent. This agent serves up SNMP OIDs (object IDs) which are long, convoluted address numbers that basically are the ID to a particular performance metric. Well, on Linux, the SNMP agent is served up by NetSNMP, and it has an extra feature where you can have it run a Bash script for you. It then serves this up on a custom OID that you come up with. So, I went about creating Bash scripts that checked things. The bad news is that if one of those scripts takes too long to return a result, it will cause a daisy-chain effect where the other OIDs on that server are delayed in returning a result. So, the central data collection server application then times out. This causes you to have a bunch of SNMP errors from timeouts, when the issue is relatively simple -- you've got one or more Bash scripts taking too long to run from the /etc/snmpd.conf file's 'exec' parameter. Well, my new manager misconstrued this problem as a problem with the product we were using on the central data collection server -- HP Mercury SiteScope. This was not the case, however, and I tried to explain. I said that because of time with all the other priorities I was given, I could't fix the real problem, and that calling HP Mercury will get us nowhere. Well, I thought she would drop it, but at two further meetings, she asked me to call them again. Again, I told her I didn't have time to fix it, that the problem only flared up every once in awhile, and that calling HP Mercury would get us nowhere because it wasn't there issue.

In the end, she marked that down as "insubordination" when it was just me explaining something very technical that she could not comprehend.

I had this and many other technical cases where we were in constant battle. I was also told to come early in the day, but then was told I would have to stay late. Eventually I got tired of being asked to stay late, so I came in late and stayed late. I went to HR for assistance and all they said was, "Have you spoken to your manager about this first?" Morons! So, then the next thing that happened was that I was being overworked constantly. This lasted for many years and I did amazing things for the company, saving them countless millions of dollars, such as recovering very old databases on platforms that have no technical support anymore, or connecting a new system to an old system in very little time through a unique socket communication script that had error handling. I definitely earned my senior title every day, doing amazing things.

Next, the dopey guys I worked with, who should have been fired long ago for their childish antics, refused to learn anything unless a manager gave it to them and said, "here, learn this." As well, they started to hate me because I made twice what they made and, instead of hating the company for that, they thought perhaps I was taking all the glory or something when I was not. So, they started to go to my manager and complain about every little thing I did.

But the cards were stacked against me one day when I was very tired. I was told to come in on a Sunday to do an 8 hour task. I complained that after I had reviewed the technical procedures for the task, I was not convinced that it would work, was not convinced it would not have any risks, and asked why we couldn't have a backup plan if this failed. It was to work on a secondary failover server, so if it failed, it wouldn't be a big deal unless the primary server failed. Well, I was told to buck it up and do it. I also complained that on the Saturday before the event, I had already planned to be out of town months in advance to attend a function with my son. Well, sure enough, the task failed after 8 hours. And what happened to me? Well, I was so tired that I was actually delirious, not even able to hold my head up. I called my manager and said, "It's not fixed, it didn't work like you guys had expected, and so now I'm too tired to continue and need to catch some sleep before I continue. What's your plan B?" She said, "We don't have a plan B. I need you to remain and work on it until it's fixed." I complained and said that the fix was anticipate to take about 15 hours straight. She asked me to stay. I said, "Look, unfortunately I'd like to stay, but I am delirious here and cannot function in this kind of fatigue. I need to ask that you call one of the other two guys on our team and have them come in for this emergency because I'm too tired." Mark that down as strike two for insubordination. On the way home, however, I fell asleep driving and woke up in the opposite lane of traffic!! Luckily no one was not on the road, nothing happened to me or that vehicle, and I was able to steer back safely and wake up for the rest of the trip.

So, my job practically killed me that day. As well, I was already having ailments all over my body with various things because of the fatigue of all these server alerts going off all the time. I needed a break.

That break came one day when my manager called me into HR, asked me to sign a warning statement and work on probation, and was told if I even look cross-eyed at this new manager, I would be fired without a moment's notice, and get no two-week severance. They let me go on paid-leave that day to think about it. Well, I thought about it and came back in and resigned. At least by resigning, I maintained my dignity, exited the company voluntarily instead of involuntarily, and would have no bad marks on my record.

Unfortunately, this left me with no job right before Christmas, in a rural town where there's no real decent-paying IT jobs around except an hour away, and it was a time of year when everyone is on vacation and no one is hiring. You see, if you're job hunting, the world's worst times to look are in seasons or weeks when everyone is on vacation. Those times are usually before, during, or after Thanksgiving, Christmas, Memorial Day, Labor Day, and July 4th.

---

The moment I resigned, it was a moment of tremendous relief but also tremendous fear and frustration. My wife took it far worse than me. She wondered how we'll pay for all these bills. I was pulling in $5.5K a month gross, and took home about $3200 a month. All of that went into paying bills with very little left over for anything. Her salary was as large as mine, and her job more stable than mine, but her salary alone wouldn't pay all the bills. I put my story out on the web that I was fired at christmas, and some supposedly nice people jumped in to offer me PHP programming gigs.

Both gigs, however, were near impossible. The first gig (Client A) was only for $1K with Linux and PHP and had a humongous to-do list. The code was also spaghetti code and it would take me awhile to understand the database schema, rewrite the thing, and then have time for the to-do list. The second gig (Client B), however, was to practically write a very large-scale app on Linux and PHP that would be hosted on Facebook and would allow people to say "I was there" and upload photos, videos, and comments, and others could respond in the same manner, and one could vote up or down these things. Not only were the owners of the second gig rude as I tried to ask them (a) how they were going to control objectionable content from being uploaded and (b) how they were going to build servers large enough to handle the load, but when they asked for a cost/timeline, and told them it would cost them $13K and 72 days for a prototype, they practically laughed at me, insulted me again, and said they were going to look elsewhere.