May 31, 2012 02:16
Oh, man. Where to even begin? I put off writing this next episode for a long time, because I had no good news to report, and a lot of bad.
That company that I used to get all my contracting jobs from? They did indeed dump me over the situation with the stupid CTO. I thought about it for awhile, and I guess I don’t mind that much. They were not nice people. Terrible at communication, among many other things. If it hadn’t been this, something else would have put an end to it. So fine, that’s over with.
Then there was the new company in SF that I found on my own, and started contracting with. That was a stressful mess from day one. They had this passive-aggressive project manager that was on my ass every single day over every little thing. “Here’s this huge codebase that you’ve just been introduced to today, and here’s this feature that we want you to implement, and now you owe us a time estimate. And if you’re off by very much, we will be upset about it.” They dumped one of the messiest codebases I’ve ever seen in my lap. That thing has been mauled by five or six different programmers at least. And they expected me to implement major new features in basically no time.
I kept ahead of the mess for about a month. Then I hit a feature that was going to require deep, intimate knowledge of CoreGraphics that I just don’t have. I told them it would take me about two weeks longer to implement than the two or three days they wanted me to do it in. So they decided to end the project. I was deeply relieved when it was over.
I did get paid $3800.00 for my work up to that point, at least. And surprisingly, they said they’d like to work with me again. Probably won’t happen unless I get really desperate, though. I do not relish having their harpy of a project manager on my ass again.
And with that, I was out of steam for awhile. No new prospects, and not much energy for cultivating new ones. For the first time since the beginning of the year, I wasn’t working. That lasted for a couple of weeks.
Then I discovered this web site that connects startups with potential employees. I don’t know what the deal is over there, but suddenly I was Mister Popularity. I got messaged by like eight companies that were “interested to meet with me,” to use the site’s terms. Most turned out to be poor matches or flakes, but that’s to be expected. There are still a couple of companies from there that might work out for me. I talked to one of them for the first time today. They seem mildly interested in having me do a small contract job for them, as a prelude to possibly becoming an employee.
Early in my contracting career, I made a half-hearted stab at oDesk and Elance. I quickly discovered that both sites are geared more towards slave labor than anything. oDesk in particular has just completely unreasonable jobs on offer, the types of employers who want you to build them a Facebook clone for 200 bucks. oDesk has since shut down my account for non-activity. Elance seems slightly better. I never got any work from there either, but the potential employers seemed slightly more sane. I still get the occasional request for a bid from there, but it is almost always somebody who expects an unreasonably large amount of work in an unreasonably small amount of time for an unreasonably small amount of money. So I turned them all down.
Until a week ago. I got a bid request from a guy who wanted an almost comically simple app. Basically a wrapper around an HTML page that he would provide. Apart from displaying the page in a UIWebView and allowing the user to interact with it, the only other thing I had to do was provide GPS-style location updates via iOS’s CoreLocation framework. I guess the app is mostly ad-supported, and it provides deals and coupons and so on for a small skiing community in Colorado. His acceptable price range: one to five thousand dollars.
I didn’t make a real effort to estimate how long it might take to build. Instead, I decided to go for the middle of his range: three thousand bucks. Not too cheap, not too expensive, I thought. I figured I’d for sure be outbid by the rabid sharks on Elance who will tell you with a straight face that they can indeed write that Facebook clone for 200 bucks, easy.
Less than 24 hours after I placed a bid, I was talking to the guy on the phone. I heard a lot about his app, future features he might want to add, and what a stinking mess the existing version was.
One thing I’ve discovered from all this contracting is that I just plain HATE having to deal with other people’s shitty code. The jobs I’ve liked the best, and the ones where the clients have been happiest with my work, are the ones where I get to start from scratch. I can leverage my existing code libraries, which I’ve built up from years of iOS experience, so the first version tends to get off the ground faster than they’re used to. And not to brag too much, but I am almost constitutionally incapable of writing bugs. My shit works, yo. Win win win, all the way around.
However, if there’s already an existing version of the app, it’s pretty much guaranteed that the client will force me to use it. They tend to get emotionally attached. In their minds, I guess it must go something like: “I spent thirty thousand bucks getting to this point, and you are DAMN WELL going to use that code I bought. Because otherwise, it looks like I just wasted my money, doesn’t it?” This despite the fact that, in the long run, it’s probably cheaper to let me rewrite it, and far less stressful. If I’m on the project for any length of time, that’s going to happen anyway. But whatever, that’s one of these people’s emotional needs that I just have to deal with.
I was expecting the same thing this time. The guy has an existing version of the app, so I figured he’d make me use it. He said I could start with that version of the code if I wanted to, but apparently, his revulsion for the project so far is so great that he discouraged me from doing so. He didn’t say so in so many words, but I felt he was thinking something like: if you start with this shitpile of code, I am very afraid that these same shitty bugs I’ve been staring at for months will persist for all eternity. So not only is he overpaying, but I get to start from scratch.
We talked for an hour. He got off the phone and immediately approved my three thousand dollar bid. Apparently, I should have asked for more. From what I can see on Elance, the guy didn’t even offer the job to any other programmers.
I finished the first, crude version of the app in three days and roughly six hours of development time. I used Testflight to get it installed on several phones within the guy’s company. He played with it for awhile, declared the first milestone met, and agreed to release the first thousand bucks of the money.
Now, call me crazy, but damned if this doesn’t seem too good to be true. Why didn’t he offer the job to anybody else? Why is he willing to drastically overpay? I still don’t know for sure, but I have my theories.
I think the guy just got straight-up screwed by his last programmer. Based on what I’ve heard, the programmer was not capable of doing the job. His app crashed a lot and almost never reported any location updates. Worse, the programmer apparently had other priorities, and was not responsive to bug reports. That got my client to thinking that this must be a harder job than he thought. He really needs this app to work, so he was willing to spend his way out of his problem.
I can convince myself of all that, but it still doesn’t explain why he didn’t offer the gig to anybody else. I am for sure not the only iOS programmer in the world who could have taken his money and done a decent job with this. So I’m still a little paranoid. I am definitely not going to release the source code until that first thousand bucks clears my bank account.
Somewhere in there, I had a job interview with a local company in Nashville that does mobile projects for all the major types of phones. I knocked on the front door of their office and was greeted by a dog, which was a good way to start. I think it went pretty well, and I liked the people I interviewed with. However, their tendency is to hire green kids right out of college and pay them next to nothing. I said I wanted $95k a year, they said they tended to pay new people closer to $55k. They said they’d think about whether they could use someone with my “senior capabilities” in their organization or not. I guess the answer was “no,” because they emailed a few days later and said they are no longer interested.
I also had a couple of phone interviews with a place that is what I am going to call a “pure telecommute” company, which makes mobile apps for trade shows. Everybody there has to work remotely, because they don’t even have a central office. Just my kind of place. I liked the people, and I loved the telecommute aspect. I wanted to work with them, so when they got to the salary question, I said a lower number: $80k. They said that was higher than most of the people they were talking to, so I guess they also went with somebody cheaper. Dang, I thought iOS programming was supposed to be a lucrative career specialty.
So. I am not out of the woods, but I am also not out of the game. I can still get a little action going here and there. I think I’ve convinced myself that contracting is not a good long-term option for me, though. I don’t have the stomach for it. I want to find some startup to hire me full-time and let me work from home. Yes, that’s a lot to ask, apparently. But I don’t think it’s out of reach. So I keep plugging away at my goal.