Archive for May, 2008

Your tax dollars at work

Saturday, May 31st, 2008

From the
Joel on Software Forums where someone asked if they should take a goverment job.

– The head of IT has been in government for 27+ years. She is the one making purchasing decisions and setting strategic direction. She does not own a computer or have an external email address. She does not buy on-line, and she has the web monitor set so tight you can forget about using the Internet. No IM. No webmail. Then to ensure you cannot possibly reach the outside, no non-government equipment permitted in the building without a specific exception. This will be your organizational leader as the rule – not the exception.
– Change is glacial. Two weeks I did nothing because they could not allocate a machine for me to access the network, until I had a badge. To get the machine, a form needed to be signed by my boss, his boss, her boss, and his boss. My boss walked it around, and was told that was inappropriate, and it still took 4 hours. Then it went to the help desk who took 9 business days to process and deliver the equipment. Deliver in this case meant coming to my desk and providing a user id and password to a machine sitting there. To install software requires you to have an exception form filed. Another round of 4 signatures in my department, one from security, one from the helpdesk and one from a person who no one can explain except they need to sign the exception form – six days. Complain or bother anyone about a request and it will disappear. Petty is an understatement.
– It is true that no one gets fired. But worse, making decisions is career limiting. The solution is to ensure you never do anything of risk. What you want is to be tied into a project you can claim some responsibility with, if it goes well, and disavow any relationship if it fails.
– No _one_ makes any decisions because there is safety in numbers – very large numbers. All decisions are by committee and expect it to take weeks. They spent 12 weeks, with a minimum of six people in nearly 20 meetings discussing a database key. One key. It is an extreme example but that it can happen says it all.
– If you take any type of leadership position and do anything that employees do not like – they submit a grievance. Why? Because while one is pending, they cannot do anything to you, include request work, or deny automatic or scheduled promotions in grade. A 25 year developer? here has had a grievance on her various leaders, continuously for over 12 years. She is proud of it. “They don’t tell me what to do!”
– Write off leaving government. You can always leave right? Wrong. Would you hire someone from an environment that fosters the behavior above? With very few exceptions, spend more than a year or two as a “gov-e” and you can kiss the private sector good bye. Who would want this behavior and if it took you more than a year to figure out you should quit, that says volumes.

Unless you want to do what you are being hired to do for the next 20 years, with 2.5% annual increases in pay, bosses who make no decisions and run the same technology for decades – run away.
Hiding
Friday, May 30, 2008

Followed by:

A prime example of the type of person you will be working with. Again, I work for the govt and recently got promoted. There is one other person at my agency with my new title. As part of promotion, they are requiring that I get a certain Microsoft certification. I talked to the other person with my same title if he was planning on getting the same certification, since he didn’t have it and they had just amended the job description to require the MS cert.

I asked him just so I could see if we could possibly share study materials and whatnot.

He responded that he wasn’t planning on getting the certification because they couldn’t force him to get it since it wasn’t in the job description when he got hired AND he explained that I am young and he since is older he is planning on just “coasting” till retirement.

The thing is, he doesn’t look that old. I asked him how long until he could retire? He said 18 YEARS!

He plans on coasting for the next 18 years!

And yes, plan on every single decision to be made by committees and groups. They will often be filled with people who have no idea what you’re talking about. At my agency when we need to fill a committee for anything, it’s pretty much just putting warm bodies in a seat. They don’t care if they are remotely qualified to help decide whatever we’re trying to decide.
Anon
Friday, May 30, 2008

More on the housing bubble

Monday, May 26th, 2008

I’m wondering about a possible correlation between the internet bubble and the housing bubble.

Internet bubble started in 1995, burst in 2001:
http://en.wikipedia.org/wiki/Dot-com_bubble

A graph from the New York Times that shows the housing bubble, with prices adjusted for inflation, over the last 110 years. The darker graph is the Nasdaq prices from Wikipedia superimposed on the image.

There’s some lag – the housing bubble started 2 years after the internet bubble. Although not reflected in the graph, the downturn started first quarter 2007.

I was living in San Jose when the internet boom and the housing bubble started. From my perspective and location, internet companies were starting up constantly, and people were snapping up houses as soon as they went on the market. I was listening to a realtor talk about how it wasn’t enough to be pre-approved. You had to have the money in-hand to buy a house, and if you didn’t the house would have been sold to someone else the following week.

My grandmother’s house jumped from the 300K range to 700K plus. My dad lives about 30 miles away in what used to be farmland, and was at the time pretty shabby houses each with an acre or so. As the prices started to become unreasonable, it was now worthwhile for people to commute an hour plus to work. So instead of spending a million dollars for a 2000 square foot house, people would buy these old shabby houses for 350K, tear them down, and rebuild mansions. Even now about 30% of the houses in that area are mansions with an acre of land, with the other houses basically shabby farmhouses.

Prices actually become unsustainable in 2000. My theory is that the internet boom kept the prices going until 2001. Over the next 5 years prices continued to rise due to speculation, temporary fixed-rate ARMs, and towards the end, dishonesty, shortsightedness, and greed on the part of lenders and buyers. Now the ARMs are coming due, people are losing their houses, and prices have dropped 10-20% depending on the house you are looking at.

Right now as I go house hunting I am looking at houses between 550K and 600K, 2000-2500 square feet. It’s very hard to find houses at that prices level that are not damaged or undesirable in some way. Last week my Realtor took me to a house with 6 families of illegal aliens in it in the process of a short sale. They had even converted the garage into another room. You can imagine the condition of the house. Another house had been abandoned in a damaged state by the prior owners, with big telephone transformer poles in the backyard. We did see one nice house for sale by owner for $850K, but he was asking that while his neighbors were asking $700K.

I don’t know of any fundamental reason why prices should be where they are right now. I think the only reason it’s taking as long as it is for prices to drop is reluctance on the part of sellers to accept 6 figure losses in home value. If the downturn takes as long as the upswing, prices should drop for the next 10 years to about half of what they are now.

House prices in CA are insane

Thursday, May 22nd, 2008

The house prices in CA where I live (Orange County) are insane.

The average low-end house is $550,000. Two stories and a small back yard is $700,000. A slightly bigger back yard brings up the price to $800,000.

Suppose you put 20% down on a $550,000 house. You pay the loan off for 15 years.

Monthly payments:

Buy 3 bedroom house: 4000 a month for 15 years, about 800 of which are taxes
Rent 3 bedroom apartment: 2000 a month.

After 15 years: 720000 paid on house
After 15 years: 360000 paid on rent

How long would it take to break even?

Savings of $1,200 a month for 25 years!

So to make financial sense, you have to live in the house for 40 years, at which point you break even.

What’s worse about this is $4,000 a month is quite a lot of money. It’s not all post-tax dollars due to writing off interest, but nonetheless unless you make $100K a year you’re going to be hurting. To be safe you really need a two income household.

A small house just isn’t worth that much damn money. That is why in other parts of the country houses can still be found for $250K.

Unfortunately, the only areas that I know of that have game companies are Silicon Valley and Southern CA, both of which are the highest priced areas in the country.

Funny but true: These prices reflect the recent downturn! A year ago the numbers were 15% higher.

Rent-a-coder comments

Saturday, May 17th, 2008

I just got an interesting email from http://www.rentacoder.com noting that they are getting some bad press due to retaliation from buyers or coders that had a bad experience. I want to help them clear the record by saying that while I’ve dealt with some terrible coders, the arbitration process and design of their system is excellent.

Out of my 4 bids so far:

Push C++ function calls on the stack via assembly: Went very well. Coder submitted the work about halfway through the deadline. We worked out the kinks over the next few days. Coder said he enjoyed the project, and I liked working with him because he cared about doing a great job.

Upgrade C++ email client to support GMail: Coder didn’t do anything for two weeks, and lied about it on the status report. It was my fault it took 2 weeks, because I didn’t know at the time that I could have canceled the project due to not filling out a status report, rather than having to ask for one.

PHP directory server of games: Went OK. Coder submitted on the last day, generally working, but with problems caused by a lack of care and attention to detail. I had to spend about a day of my own time fixing stuff, but overall the work got done. Rated the coder a 7 / 10.

Port PostgreSQL to MySQL for autopatcher: Went very bad. Coder submitted on the last day, completely not working. It’s not that I was being picky over quality, it was that the project was utterly not working and only about 25% done. Coder denied the flaws, and at the end blamed the arbitrator for being unfair (on the contrary, the arbitrator was 10X more patient than I would have been). Got my money back a week later.

The system is intelligently designed, with double-blind feedback, ratings based on a factual chart, escrow for both buyer and seller, required status reports, and a chat and message system which is logged. The only problem I see is rating inflation, where most successful projects are rated a 10/10. This is the fault of the users to a large degree for not following the rating chart. It would be better if it asked you specific questions (was the project late, etc), and derived the score based on those facts.

Best state to register a corporation in?

Thursday, May 15th, 2008

I’m trying to figure out which state is best to register a corporation in for my internet business. I believe I can register in any state as long as I have a registered agent there. It seems like Legal Zoom provides this service for $159 a year.

California, where I live, is very bad because they have a franchise fee.

It looks like South Dakota is very good. No personal income tax and no corporate tax.
Corporate tax table

I’m not sure if CA would require me to pay income tax on distributions though.

It seems like you can also form a company in the Cayman Islands and avoid tax altogether (?)
Website of a company that offers this service

Stimulus check is just an interest bearing loan

Wednesday, May 14th, 2008

Only the goverment could think it is a good idea to give away money at the same time it is over 9 trillion dollars in debt, with over 400 billion a year deficit. Counting hidden debt, US citizens have a liability of $473,456 per household.

The saving grace is ironically, inflation and the declining dollar. Inflation is bad for people who save money, but good for people who owe money, because the amount they owe lessens each year with no other action. Because of double taxation, for example on Inflation Index Bonds the goverment comes out ahead even further. Theoretically, inflation index bonds just preserve the value of your money. However, you are taxed capital gains tax on the numerical increase of the value of your bond, although the value didn’t actually go up. So even bonds that pay inflation lose money, the difference of which goes to the government. The goverment also understates inflation – actual inflation rates may be between 5% to 10%.

The stimulus check is just insanity. Suppose the goverment takes $473,456 from your household, spends it, takes another $2000, and gives it back to you. Are you now $2000 richer, and benefited in some way? In any case it isn’t enough money to do anything worthwhile. Not enough to start a business, not enough to meaningfully invest.

Just out of spite, I am going to cash mine, keep the cash under my mattress, and not spend it. Or better yet, convert it to Euros. I’ll be good as long as federal agents don’t steal it.

More bad experiences on rent-a-coder

Monday, May 12th, 2008

I don’t know if it’s just me, or if programmers outside of the gaming industry are just this bad in general, but I really ran into a terrible programmer this time.

I hire a guy to port RakNet’s PostgreSQL implementation of the autopatcher to MySQL for $700. I expect this to take about 3 days of part-time work, and the bid I get is pretty in-line with this:

This is quite straightforward, I’d expect to turn this around with two or three days – although for the purposes of the expert guarantee I’d like to allocate a week in case of problems.

About me: I’ve been doing C++ for longer than I care to remember 😉 on Unix and Windows.

11 days later I get the submission from the coder. Problems include:

  1. Code doesn’t compile
  2. Literally every SQL query had to be rewritten, about half wouldn’t even run, and the other half didn’t work right.
  3. Over half a dozen memory leaks
  4. No Windows project included
  5. Zero attention to detail, for example the #define at the top of the header file was the same as for the PostgreSQL version he copied from
  6. Disregard for project requirements, such as not using stl
  7. Limited file sizes to 8.4MB via MEDIUMINT (stupidity or malice?)
  8. Upload files escaped rather than binary, allocating memory once for the escaped file, and again for the query.

It was not much more than a copy/paste job of my existing PostgreSQL implementation, and a find/replace to replace the PostgreSQL calls with MySQL calls, and an additional hour or so to screw things over.

Over the next two days I report bugs, and he fixes some of them, but I eventually get fed up and take the project to arbitration. The arbitrator has already said he will rule in my favor unless the coder can explain by Monday why this should not happen. That was on Friday and the coder didn’t yet respond.

One of his excuses:

But my understanding is that deadlines are for delivering code, not fixing all the bugs

Arbitrator:

The deadline is for the coder to have the full project uploaded in working order. This should also be bug free as the coder is supposed to test the project before uploading it.

Good grief. I just redid all his work in an hour, then did the port myself over the next day days (part time).

In other news…

Today, I took half a day to port my EmailSender class to support GMail SMTP over SSL. I wrote about this previously, how the coder took two weeks to do nothing and lied about it besides. I can’t believe how I can do in half a day what some Indian programming team can’t do in two weeks. It wasn’t like the existing code base helped me either, since this is all new stuff. In hindsight, I’m offering way too much money for these projects.

What is the secret to hiring competent programmers?

Neutral experience on rent-a-coder

Sunday, May 4th, 2008

I hired another guy on rent-a-coder, this time to do a php based webpage to store uploaded game servers and send them back to C++.

Here’s the page

The whole job was a 2 day project, 3 at most. I gave the coder two weeks. He did a bit here and there, but I could tell by his communications that 75% of the work was started the day before, and it ended up being two days late.

I had to spend half a day refactoring his code, testing, and reporting bugs. There was definitely a lack of investment, by which I mean doing the absolute minimum unless I complain. The webpage is an example of this, where he used a big block for each server, unsuitable for more than 10 or rows. The use of obviously conflicting reserved column names such as “ip” and “name”, embedded into the code, is another example. Were things strictly wrong? No. Could they have been done better by someone who cared? Absolutely.

This is one of the reasons I liked working with Rui before. He would spend the time to do a good job, at the level of quality I would have done myself, if not more. There’s a lot of things you can’t tell in an interview, and you can’t get no matter how much you pay for, and really caring about doing a good job is one of them.

I’ve been on the other end of things so I still rated the coder very good at a 7.