I ordered DSL service from AT&T recently. There were a lot of things they did wrong early on. They made it difficult for me to get naked DSL. They refused to allow me to transfer my existing service. (I’m in California now, but I had an account with Bellsouth in Mississippi.) They didn’t support their own modems from Mississippi. Etc. But that’s not what I want to talk about. I got my new modem today, along with it’s lovely installation software, and let’s just say that the installation wasn’t exactly smooth.

Broken Out of the Box

DSL modemFirst problem, it doesn’t work out of the box. There’s no reason why a DSL modem shouldn’t just work when you plug in the wall. AT&T already knows who’s paying for the line. There’s no question about that. So why doesn’t it just work?

The modem wanted a username and password to connect. Okay, this is stupid, but whatever. I entered my username and password (actually the default one that tech support gave me when I was trying to get my old modem working). It still didn’t work.

Oh, the DSL connection was established. It passed all of its internal tests. I could even ping, dig, etc. from the command-line. But I couldn’t get my browser to connect to anything. Why didn’t it work? Damned if I know. Apparently it’s intentionally shipped in a half-working state, so that you’re forced to use the install software it ships with. The software is the source of the real problems.

Stupid Software

There’s is no reason any user should ever have to install software to get an external DSL modem to work. The software is completely unnecessary to actually use the modem once it’s configured.

It is absolutely obnoxious that users are forced to install extremely invasive software that is unnecessary for actual use of the device. All necessary configuration should be exposed through the modem’s own interface.

This software committed a lot of sins. Very briefly:

  1. It’s slow. Extremely slow. The software felt like I was running it on a 386. I could hear the hard disk and CD churning each time it loaded the next step in the wizard. And oh yes, there were a lot of steps. It probably took me 15 minutes to go through all the steps. And of course, there was no option to skip any steps. I had to click through ten pages on how to install line filters. I’m not using line filters. I bought naked DSL.
  2. It’s invasive. The software installed new hardware drivers. Why in the hell is this software installing drivers? I don’t even know what these drivers do, but they sure as hell aren’t necessary. There’s no option to not install them, though.
  3. It’s inconsiderate. Aside from generally being all-around poor-quality, the software also installed icons on my desktop, changed my homepage, installed unnecessary services, and rebooted my computer without asking me. After it installed it’s idiotic drivers, it actually rebooted my computer with no request and only about two seconds of warning. Who does this? After it started back up, Windows requested that I reboot again, but at least Windows gave me the option to decline.

There were plenty other issues with this software, but let me just move on to the grand finale.

The Trojan

AT&T TrojanAfter the AT&T software finally finished installing, I got a nice message from my antivirus program. Apparently, the AT&T installer let a trojan in, or installed one directly. Maybe it’s even a false alarm, because the installer just exhibits such inappropriate, trojan-like behavior. I don’t know, and I really don’t care. There is absolutely no reason that this should have happened. This goes past incompetence into the realm of gross negligence.

In order to get my DSL modem, I had to install unnecessary software, sit through a ridiculously long install procedure, receive totally unnecessary drivers and services, have my computer reboot without warning, and be infected with a trojan. Are you serious? How much do you have to despise your customers to put them through this crap. It almost makes me wish I’d gone with Comcast. It definitely makes me wish I’d had more options.

Oh, and by the way, this software is version 7.6. Does that mean that the previous versions were even worse, or that it took them 7 major versions to screw things up this bad?

AT&T Trojan in Virtual MachineI actually got all of AT&T’s crap removed from my computer. Thankfully, I installed their stupid, infectious software in a virtual machine, so all I had to do was revert to a previous snapshot. I feel really bad for the majority of their customers, though. The average person isn’t going to have access to a virtual machine, and wouldn’t know to use it anyway. Instead, the average person will sit through the whole install, and then after it’s all done installing all its trash, wonder why their computer seems slower and less stable.

AT&T, you should be ashamed.

You can call me a software engineer or a software developer. You can call me a computer scientist. You can even call me a Technical Yahoo! Software System Development Engineer. Whatever. I call myself a programmer, maybe a hacker on self-congratulatory days.

My first programming-related job was working as a systems administrator during my senior year of undergrad studies. I did a lot of network and computer maintenance that year, but I also had a chance to put together some custom software. After that, I had a grant as a Master’s student to develop science and math projects for elementary school students. As part of this job, I built a new website and database for the grant and all its associated projects. Most recently, I was developing radar software for a small defense contractor. This was my first full-time job, and also my first software-only job. However, it was not a job in a software-only company, and I’ve decided that’s where I want to be.

I don’t want to work for the software division of some company. I don’t want to work in network administration. I definitely don’t want to be anyone’s “computer guy”. I want to be a part of a dedicated software firm.

No one can truly thrive without continual learning. You learn or you fall behind, regardless of what field you are in. No matter how much you know, no matter how skilled you are, others will eventually surpass you if you don’t strive to stay ahead. I know that there are many things I need to learn about building quality software, and I feel that I am likely to learn some of these things best in a dedicated software company.

In a software company, the focus is on the software (or it should be). That means that there is more attention directed toward software quality, toward software development productivity. It means that a lot of the management grew out of the developer pool, and should know what it takes to build quality software. Most importantly, it means that there’s a wealth of talented and experienced developers to learn from. I want to know how to built large systems. I want to learn how hundreds of programmers can work together. I want to discover how world-class software is grown. Maybe I could learn these things at a non-software company, but it would certainly be harder.

There are a lot of software firms in the world, but I can tell you one place where most of them are not: Mississippi. You can probably guess where I used to live.

Since Mississippi has few software firms, it would be rather difficult for me to find my ideal job there. Besides, neither I nor my fiancée ever planned to live in Mississippi forever. Neither of us were born or raised in Mississippi, and neither of us have any wish to grow old there. We were destined to move eventually.

When my fiancée and I started investigating where we should live, we wanted to restrict our search to places that would have abundant jobs for both of us. She’s a psychologist. Most software companies are headquartered in or near large cities. A luck would have it, most people are also in or near large cities. Since more people imply more opportunities for psychologists, our fields’ job opportunities overlap best in major cities. (Funny how most opportunities seem to be where most people are . . . .)

We ranked some of the best cities for both of us, and three options came out on top: Boston, San Diego, and Silicon Valley. She applied for jobs in those three areas, and we decided we’d go wherever she got an offer. In the end, she received offers in both San Diego and Silicon Valley (specifically Palo Alto). Of those two, Palo Alto appeared to have more of a future for her, as well as more opportunities for me. That pretty much ended the discussion of where we should live. She accepted a position in Palo Alto and I began the process of applying for jobs myself.

So, where does a programmer apply for jobs in Silicon Valley? Lots and lots of places. I’ll talk more about that soon.