Archive for the 'work' Category

Farewell Seattle

Monday, February 5th, 2007

I’m a huge fan of Seattle and, with great dismay, I announce I’m leaving this fair city for San Francisco tomorrow morning. The LandRover is packed and the trip has been planned.

The route will take us through Oregon to Eureka, CA on our leg. We’ll be taking our sweet time down HWY 1 along the California coast all the way to San Francisco from there. It should be a great trip along one of the most fabled roads in the country.

I’m not especially happy to be leaving the Pacific Northwest, but what do you do when the big leagues call you up? I’ll miss the mountains, living downtown in a place I renovated myself, my friends and the city I’ve grown to love so dearly.

Thanks for everything Seattle!

I’m employee #20 at Digg

Monday, January 8th, 2007

It’s official. As of today I’m employee #20 at Digg. I sent in my resume in September fully expecting not to hear back, but over the course of the last few months it became apparent I was being considered for a position. I didn’t think much of it after not hearing from them for almost a month, but Brian Link sent me an email around the first of the year which turned out to be an official offer.

For those of you that don’t know, Digg is the 19th most visited site on the internet in the United States. It serves up more traffic than Wal-Mart, the New York Times or Best Buy. So, as you can imagine, I’m pretty excited about this opportunity. I’ll be arriving in San Francisco somewhere towards the beginning of February. If you’re in the area and would like to get pints please let me know.

Taking the job means that I won’t be doing any contract work and my open source projects will most likely sit idle for the time being. If you’re interested in maintaining Framework or any of my PEAR packages please let me know.

Enotes 6.0 Launches

Wednesday, December 7th, 2005

It is with great pleasure that I announce Enotes 6.0. This is the 6th major iteration of the site since I’ve come on board and is by far the largest undertaking thus far. This iteration includes, in no particular order, the following upgrades.

  1. Completely redesigned by PBDH
  2. Expanded the content catalogue by over 20,000 articles
  3. All code is PHP5 E_STRICT compliant (except the code in PEAR)
  4. Moved to a monthly subscription model
  5. Added thousands of lines of code, stylesheets, HTML and XSLT
  6. Numerous other enhancements, tweaks and upgrades

It’s taken our developer team just over four months to take this from concept to reality. This has included upgrading to PHP5 (no small feat when you have 60,000 lines of code that are all PHP4 OOP), installing and configuring additional webservers, installing and configuring a Google Search Appliance, completely rewriting the shopping cart and creating an automated rebilling system from scratch.

Needless to say this wasn’t a one man show. I’d especially like to thank Ian and Matt for putting in extra hours to make sure we launched before the new semester. The team at PBDH deserves many thanks for their prompt and professional design services. And, finally, I’d like to thank caffeine. Without our beloved coffee Brad, Alex, Heather, Brandi, Ian, Matthew and myself would have passed out a long time ago.

For comparison here is a screenshot of the old site.

New Job … sort of.

Monday, September 27th, 2004

I’ve been freelancing for the better part of 2 years now and I’ve become quite fond of my working conditions. I get up when I want (read: no alarm clock), I work on the projects that interest me the most and I make an honest wage. No complaints really, except the lack of stability. It’s a simple fact in the contracting business that some months are better than others.

During the last month, with the move and the upcomding wedding, I’ve started to put my resume out there a little bit. I think I submitted maybe three resumes to area job postings in the last month. I was very careful to only submit my resumes to jobs that were not posted by head hunters and fit my skillset perfectly.

Last week I was called at noon and asked to be at an interview by 2 p.m. Luckily, I had clean clothes to wear (read: I work in a tshirt and jeans normally). So I threw on some clothes and went down to the interview. All went well and they said they would be interviewing for the next week and calling people sometime towards the beginning of this week.

Well, they called the next day and offered me a one month contract-to-hire position. Basically, if they like me at the end of the month they make an offer. I figure it this way; it’s a solid month of work at a decent hourly rate.

The company is BlueFrogMobile.com and they sell ringtones for cell phones. They sell other “mobile content” as well, such as ring tones, backgrounds, etc.

On a side note, what’s up with my record of working with companies with frogs in their logo?

Articles & Publications

Friday, July 9th, 2004

Articles, Publications & Software

This is a running list of articles, interviews, publications and software that I have written and were, at some point, published on various sites around the Internet. This will be a running list as they are published. The article links all open in a new window.

  1. Understanding MVC in PHP Sep. 15 2005 A four part series that covers creating MVC web frameworks using PHP5. Framework is the resulting code from this article.
  2. MySQL UC 2005: Ways for Using and Extending FULLTEXT Apr. 20 2005 My presentation, including source code on how to combine LAMP and MySQL’s FULLTEXT indexes to create useful site searching.
  3. Unfinished PEAR/Smarty Book n/a I was first approached by A+ Press to write a book about PEAR and Smarty in August of 2003. Due to editor problems on their end the book was never finished. Here are the first three chapters, which cover basic info about PEAR and Smarty, the base PEAR classes and how to manage PEAR packages. I’m releasing them under the terms of this site’s copyright terms.
  4. The State of Home-Brew PVRs on Linux Nov. 13 2003 at O’Reilly’s ONLAMP.com A brief look at the current status of PVR software for Linux. Includes comparisons of the Freevo and MythTV projects.
  5. php{con West 2003: MySQL FULLTEXT Searching Oct. 22, 2003 at php{con West 2003 A technical session given at php{con West 2003 covering the basics of using MySQL’s FULLTEXT indexes.
  6. Building an Advanced Mail Server Sep. 25 2003 at O’Reilly’s ONLAMP.com A detailed article covering how to install Qmail, SpamAssassin, virus protection, vpopmail on an email server. Includes instructions for installing Apache and utilizing the Squirrel Mail webmail front end.
  7. Finding Bad Spam Delights Geeks Aug. 04 2003 at Wired News An article about a now defunct project of mine called SpamChart. Talks about what inspired the project and geeks’ obsessions with SpamAssassin’s scores.
  8. MySQL FULLTEXT Searching Jun. 26 2003 at O’Reilly’s ONLAMP.com An introduction to MySQL’s FULLTEXT indexes, including how to structure the tables, perform queries and how one might extend this feature in MySQL.
  9. Smarty: A Closer Look Mar. 18, 2003 at Zend.com A brief tutorial of the advanced features of PHP’s templating engine covering such topics as template caching, template security, and variable modifiers.
  10. Intro to PEAR Dec. 23 2002 at PHPBuilder.com An introduction to using the PEAR library for error handling, database abstraction, and logging.
  11. SQL Theory & Howto Jan. 01 2001 at PHPBuilder.com A brief overview of the relation algebra that SQL is based on and how to build complex SQL queries based on user input.
  12. XML HowtoSep. 07 2000 at PHPBuilder.com A simple tutorial on how to parse XML documents using PHP’s expat functions.

Professional PHP and MySQL Training

Monday, June 28th, 2004

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

Friday, January 30th, 2004

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

Monday, January 5th, 2004

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

Sunday, April 6th, 2003

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

Sunday, February 2nd, 2003

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.


Auto Insurance Stories