Professional PHP and MySQL Training

I’m happy to announce that I have started offering a professional PHP and MySQL training course. Actually, I’m offering two professional PHP training courses; one for beginners and one that covers more advanced topics.

The PHP Beginner course will be a two day course starting July 19th, while the PHP Advanced course will be a three day course starting July 21st. If you are interested in attending either of the courses please contact me.

Offshoring meets resistence

Unless you have been living in a cave for the last year you know that a hot topic in the tech industry is the idea of “offshoring.” A lot of large tech companies are sending high tech jobs to areas that feature lower labor costs, such as India and Russia.

I have mostly ignored the news because I don’t code for blue chip companies, nor do I really care to. However, I do admit that the trend is a little scary as I am about to move back to the center of the tech industry and it could hinder my job prospect should I decide to join the workforce again. Recently, Dell moved its call center back to the states from India. Dell cited the fact that customers were dissatisfied with the technical support they were getting. This magnifies one of the major concerns when outsourcing: cultural/language barriers. If you cannot understand the person on the other end of the phone or the code they produce is commented in another language it makes it very difficult to do your job stateside.

While the topic is a hot one, I’m not completely sold that American companies trust their Intellectual Property in the hands of people they have never met half way across the world. They might not have to worry about that now that legislation is cropping up around the country that would keep companies who offshore from winning lucrative government contracts. I, personally, think this is great for a couple of reasons (the economics majors out there will be yelling at me for sure).

  1. When a government agency specs out a project they do so in American dollars at American prices. When they send out an RFP there is an understanding that the proposal won’t come back in Yen or Pounds.
  2. As a taxpayer I fully expect that my tax dollars be put back into the American economy. The government is the single largest spender in this nation and it should stay that way. I don’t think that my tax money should be spent funding some other country’s economy.

As for the private sector I could care less. If you think your company would benefit from offshoring then go for it, but expect there to be costs well beyond the low wage costs. That last article points out tons of hidden costs and quotes one person as saying that if you pay a person in India $10k a year it could end up being more like 4 to 5 times that much when all is said and done.

Going Independent – Things I've Learned

For those of you who don’t know I went off on my own as an independent contractor about 7 months ago. It’s been a long and somewhat bumpy ride and I’ve learned a lot about how to and how not to do things in this type of business. Luckily I had a few people who had been there before (thanks to Dave and Dana!). This is going to be a rather lengthy article of the things I’ve learned along the way.

Before you start

  1. Find someone who has been there before who is willing to mentor you. Without the knowledge base of Dave and Dana I’m not sure I would have made it this far.
  2. Save up enough money to pay all major bills (rent, car, utilities) for at least three months. This leaves you enough padding if you don’t land a contract right away.
  3. Try to have at least one decent contract lined up before you bail on your day job. I recommend something small enough to handle in three months, but large enough to make it another three months.
  4. Get a DBA (Doing Business As) from the county clerk and set up a checking account in your business’s name.
  5. Get some accounting software. I chose the online version of QuickBooks, which works quite nicely for my needs.
  6. Become an expert in the area of 1099 and 1040-ES forms. They will either be no big deal or your biggest nightmare depending on how you approach them.
  7. Create standard employment contracts. If you have pre-existing software you plan on selling make sure you have a license to have your customers sign.
  8. Get a fax line and make sure you have a computer laying around that can aptly read/write Microsoft Office documents and PDF’s.
  9. Set your hourly rates and stick to them. I originally set my rates somewhat low only to realize that demand quickly outpaced availability (a good thing). It also will bring a sticky situation when you have to raise your rates.
  10. Get a PO BOX from your local post office (about $15 a year).

Once you take the plunge

  1. Make sure you get everything in writing and signed (and possibly notorized) for any major work (ie. anything over $1k).
  2. Don’t let your customers hand you crappy RFP’s. I’ve seen six figure contracts based on 5 page RFP’s that end up turning into a nightmare because the feature set was not outlined in black and white before the contract was signed.
  3. Create a filing system and keep hard copies of everything (invoices, contracts, licenses, receipts, etc.).
  4. Buy an all-in-one copy-fax-scanner-kitchen sink printer. I have a nice little Lexmark X5150 that cost about $100 and I literally use it every day.
  5. Get business cards made up, set up a decent looking website (ie. hire a graphics person to do it right). Hand out the cards freely to friends, family and strangers.
  6. Sign up to one of the many freelance sites that exist out there. Another good place to drumb up work is any of the many professional mailing lists as well. I’ve landed at least two contracts through such mailing lists.
  7. Save every single receipt you get. You can write off many things you never knew. For instance, computers, digital cameras, printers, printer paper, office supplies, mice, phones, cell phones, etc. are all write offs.
  8. Save 30% of all revenue for taxes. Save another 10% for safe keeping. Keep these numbers in mind when you bid on contracts.

Once things are going well

  1. Do what you can to vertically integrate. I make webpages, but I now also resell domain names, SSL certificates and web hosting. This is a great way for me to not only get reocurring revenue, but also a good way to control the environment in which my software is deployed.
  2. Become incorporated through either articles of incorporation or an LLC. This limits your liability and costs under $1k. This is one of the first things I plan on doing this year.
  3. Get an accountant that knows their proverbial shit. The money you spend here could literally save you thousands come tax season.
  4. If office space is cheap and readily available in your area you should get an office. My productivity is crap when I work at home, but at the office I do quite well. Also, having an office looks very professional to local customers and lends credibility to your business.
  5. Sign up for Vonage or a similar VOIP carrier. I’ve saved hundreds in cell phone bills since switching.

If you decide to return to working for “the man”

  1. Make sure that you have an exit strategy. Find a few people you know and trust that would be willing to take over your clients if you end up needing to get a “real job”.
  2. Look at your current client list and see if any of them might be willing to take you on full time. I know of more than a few independent contractors who got into a company this way and have done quite well.

This year I’ve done pretty good. I’ve managed to pay all of my bills and live a rather stress free life. There are tons of benefits to working for myself and disadvantages. Here are some of the pros and cons that I’ve come across since I went out on my own.

Disadvantages

  1. There are no regular paychecks. If you don’t land that big contract you don’t get paid this month. This is the reason to find ways to generate reoccurring revenue (retainers, hosting, maintenance contracts, etc.)
  2. You are your own retirement advisor. There are no company 401k’s, profit sharing or yearly bonuses.
  3. You are your own accountant. No one is forcing you to take taxes out or keep track of invoices.
  4. There is no company health insurance. I’ve gone without and paid out of pocket so far because my current healthcare cost is about 1/3 of the cost of yearly insurance. (note: medical expenses, including mileage to and from is 100% deductable when you work for yourself)
  5. Most people have no clue what you do and when they hear you work from home or for yourself they instantly assume you don’t have a “real job”. This can be really annoying sometimes when relatives ask “When are you going to quit fooling around and get a real job?”

Advantages

  1. You work when you want, where you want and how you want. There isn’t anything stopping me from heading over to the coffee shop and working via their WiFi for a couple of days.
  2. Come and go as you please. There is no one you need to notify for vacation or sick days, which is a great thing.
  3. Stress is almost a thing of the past. There aren’t any real deadlines and you have no bosses yelling at you.
  4. It’s much more personal. You work directly with the customers and get all of the praise directly from them and no one else is taking credit for your hard work. (note: this can work in reverse when a client is mad about something).

Despite there being a few more, numerically, disadvantages than advantages you need to weigh them carefully. For me, not having to answer to a boss and having the freedom to work when, where and how I want to outweighed the disadvantages.

Overall, I’ve had a good experience and I continue to learn new things about running a business. Luckily, I’m about to marry a person who is finishing up their Masters in Accounting, which will free me of many of the things I hate about being independent. I hope this helps a few people out there.

New site coming online

I’ve been coding a totally new site for my company. Their old site was originally coded by me when I was first starting out coding PHP and, to put it lightly, it’s a disaster. After I left a few more coders tore through it and now it’s just a big mess (not that I had coded a great system to begin with).

The new system has wacky features like normalized tables, templates, a little OOP, and database abstraction.

I’ve spent the last three hours today putting all of the servers in the back room on batter backup. The owner of the company managed to get about 20 APC 700XL’s for free (don’t ask) so I’ve been using them freely.

I think the moral of the story is when I look through my old code and think about the old server setup I can’t help but think that I’ve really come a long way. I mainly have Jeremy, Matt, and Seth from Care2 to thank for that. Jeremy and Matt taught me to take it slow and be methodical. Seth, aka the MySQL mage, taught me the ways of research. I guess I can’t forget to thank Pizo for turning me onto PHP in the first place. Ahhh… Nestalgia.

Work and other things

I’ve been busy at work working on keeping our new server cluster up and running. We’ve been having major problems with our database server. Looks like it’s totally dead.

I’ve also taken the advice of Paul and installed Nagios to better monitor the server setup. I only have it monitoring during work hours right now, but may increase it to 24×7 monitoring.

Lately I’ve become bored with the Internet. It’s not as exciting as it once was. I spend less and less time updating this blog, reading other blogs, and keeping up to date on the latest technology. Maybe I should spend a few days learning something new that excites me.

Office Life

Now that I am back working in an office environment I get to enjoy all of the things office life brings. I forgot how annoying cubicles are. I wish I could put up a protective shield and avoid the customers. But, alas, that is not an option since we are a retail shop. Of course there is the usual office gossip that tends to be funny and or interesting.

Some of the other things I’m not too fond of while working in the office are as follows: dress codes, no music, a foreign and unknown machine on my desk, customers, office protocol, and having to clock in and out. Because we are a retail shop our rules differ greatly. I wish that there was more distinction between employees (ie. Programmers don’t answer customer calls and salesmen don’t code), but being a small private business we are forced to wear many hats.

I suppose many people are reading this saying “At least you have a job!”, which is something I truly am thankful for. OK, I guess I’ll just shut up now.

Back to the grind

Since I’m no longer working at Care2 anymore, I’ll be spending some time working onsite for a company I used to work for. Other than scaling back on the hours I spend working the major difference is the fact that I’m now working in an office. You may ask why this is such a big deal. I’ll tell you why: I haven’t worked in an office for almost two years. There are things I need to get used to again: meetings, office politics, clocking in and out, nesting at my desk, and looking at my coworkers. It’s almost like culture shock.

End of an Era

Due to ever expanding on campus responsibilities I’ve decided to take a leave of absence from work. I still love the whole crew over at Care2. For now I’ll be working very part time in the area to cover some bills and focusing on finishing school.

Telecommuting

As many of you know I am lucky (some would argue unlucky) enough to work from home. I spend my days sitting in front of my computer hacking away for Care2.com. Read on to learn what makes telecommuting great … and not so great.

First off being able to work in my undies is great – I won’t lie. I prefer to be as comfortable as possible and boxers + a tshirt is about as comfy as you get.

Also, I can easily turn on my favorite shows and watch them out of the corner of my eye while I work. Taking a lunch break is easy enough – a simple trip to the fridge. Other cool things include the fact that I can start working before combing my hair or even brushing my teeth – in other words I can look like a total scrub and no one cares. The biggest advantage I can see is that me taking off to run an errand (ie. send a package) isn’t rushed because I can make it during normal business hours.

There are some pitfalls to working from home. First off you miss out on office gossip. I have NO clue what’s going on in the office, which results in random inquiry emails to my boss and the various other mgmt of the company. The biggest pitfall to telecommuting would have to be motivation – try motivating yourself in the morning when the office is 2000 miles away. You could either a.) stay in bed for another hour or b.) spring out of bed and start working. Some mornings you can’t talk yourself out of a.

In the end I do enjoy working from home, but would prefer to mix it up with actual office work. Example: work from home 2 days a week and then go into the office the other 3. Now, if they’d only let me work in boxers and a tshirt at the office 🙂