When people ask me what I do, I tell them that I am a "Web Developer". It's more accurate than "Web Designer" and much less narcissistic than "Webmaster." Even still, people have a hard time grasping what I do every day at my job.  I'm sure if you asked 3 very important people in my life -- my girlfriend, mother, and best friend -- what I did at work every day, you'd get 3 different answers. So for their sake (and yours), I've decided to let you in on a little bit of the web developer culture: my background, the backgrounds of other developers I've known, and what we all do every day at work every day.

First a little bit about my web development background.  I hopped on the Internet (read: AOL) in 1996.  I was hooked; using the 'net became a daily occurrence for me. Yet the thought of actually creating content for the web didn't happen until about 1998 when my Mom tasked me with designing the website for her non-profit organization. Determined, I taught myself FrontPage and created what I still consider the ugliest site ever, ever.

From there I taught myself Photoshop and Dreamweaver, and eventually was comfortable designing just about any website you could think of (with tables, obviously). I did design exclusively in those days working with a very good friend on a series of website ideas. I dabbled in some PHP here and there, but didn't really get serious about programming until I took a couple computer science classes at my college & read a book on PHP programming. From that point on I had the programming bug. Learning more and more, I went on to do some freelance development work on the side and worked at a couple in-house jobs before I landed here at SEOmoz.

The backgrounds of other developers I've met are just as varied. I've known 30-something guys who went to college for hearing sciences, all the while becoming ActionScript geniuses. Others are still in school and trying to break in to the computer science world. And still others never went to college, having worked straight out of high school learning most of their skills on the job.

8:30 AM -- Wakeup

I've had the same alarm since 5th grade, and I like it. As soon as I wake up, I usually hop on my laptop and fire up Thunderbird to check the overnight email for anything critical. Then I  check the weather for the day, news (both tech and non-tech), and read for about 10 minutes or so. I drink tea for the most part, but I've known other web developers to be coffee nuts as well. Nearly all of us have some sort of caffine choice which we use for those late nights or early mornings.

9:45 AM -- Head to work

I'm lucky. SEOmoz is both close enough to where I live that I can walk to work, and lets me get to work at 10AM. I don't take my laptop, like most developers, because it's my primary machine at home right now (long story). I've seen a wide variety of laptops in developers possessions, but none have been as rad as my 4 year old Toshiba on "loan" from my Mom's work which has the "0" key missing. I'm saving up for a MacBook, ok? In addition to their laptops, nearly all developers that I've know also have 1 or many desktops at home that they use for testing, gaming, etc.

To go along with our laptops, developers need a laptop bag. Some are partial to the traditional laptop bag, while others like the satchel style bags. I run on the cheap end, and have a $20 Jansport shoulder bag that I got from Costco. In it is space for my laptop, notebook, mobile versions of my peripherals, some pens, my iPod headphones and (as I just found out) a handful of foreign coins for some weird reason.

10:00 AM -- Arrive at work

As soon as I get to my desk, I turn on my desklamp (I like having light on my desk), log in to my computer and get settled. For my job it's important to stay on top of tech news & other happenings on the web, both inside and outside the webdev sphere.  There is alot of information out there, and it can be hard to sort though it all, so I choose to use RSS and email to stay on top of things.

For For my RSS reader, I use FeedReader. It's freeware, simple, and has all the features I want and none of the ones I don't. As far as feeds that I subscribe to, it's the usual Digg and TechCrunch, as well as Gizmodo and Engadget for my gadget needs. Since I work at a SEO company, I also need my search fix: Search Engine Watch, Search Engine Roundtable, Threadwatch & everyone's favorite Matt Cuts. I also subscribe to BBC News, the Guardian, and Reuters for news headlines.

For email (like at home) I use Thunderbird.  I like its ease of use and customization. Currently I'm using the 2.0 Preview build and really liking it a lot. The lists I subscribe to are ones from PHP, MySQL and Apache. Mostly it's announcements lists, but sometimes it's help and support.

I think it's very important that a web developer is always reading about the industry, their tools, languages and also gives back to the community.  I know I'm personally never satisfied with my skill and knowledge level in development.  I'm always looking for new and more elegant ways to develop websites. Thus, I spend time at work every day learning about new features of Apache or a new CSS technique that I've never tried before. This constant drive to be better, faster, and stronger is common with many of the dvelopers I've met, especially those that are passionate about what they do, and It's one of the defining characteristics I look for in other coworkers.

11.00 AM -- Start work for the day

After spending an hour or so reading tech and developer news, and (hopefully) learning something new, I begin work on my project(s) for the day.  I say "project(s)", because what I work on varies from day to day. Some days I work on one project the entire day, others I jump back and forth between half a dozen. It really depends on deadlines, project resource availablity, and what I feel my priorities are.

No matter what I'm working on, however, I tend to just throw on my headphones for some music, and dive in to what I'm doing. I think most developers, including myself, are more into music than your average person. We all definitely have a few genres/artists that we really like. I also think that music is a very big component of settling in to "work mode" for most developers as well.

Personally, I enjoy what I do, and can easily get engrossed in it for hours at a time. I guess you could call it "the zone."  As long as I have a goal in front of me, I can look up after working hard on a project and realize 2 hours have passed in the blink of an eye. I've seen this work pattern in other web developers as well, and to me it is the hallmark of someone who really takes pleasure in their work, not just in development.

For my specific tasks, I have a nice little suite of programs that I like to use.  Every developer is different, but most have the same types of applications:

  • Text Editor: Both Matt and I use UltraEdit Studio. We like it's syntax highlighting, built in FTP (and SFTP) support, ease of customization, and other numerous features. I've heard of people developing in Dreamweaver, Notepad++, and even VI (as one guy who I once interviewed with used), but UltraEdit Studio is my favorite hands down.
  • Graphics Editor: Photoshop is pretty much the industry standard for image and graphics editing, but some people use different things. Matt uses Fireworks, for instance. Sometimes I'll use Illustrator for vector work, but Photoshop is invaluable to me. GIMP is also another big choice in the open source community as well.
  • FTP: Unless you're working on some sort of networked sandbox, chances are you'll be doing all your file transfers through FTP. I used to be a SmartFTP lover, until I was introduced to FileZilla. Matt uses FileZilla as well, but when actually coding, I use the built in FTP functionality of UltraEdit Studio.
  • Browser: I use Firefox for development, almost entirely based on its standards adherance and the extensions (Web Developer being most important), and I know Matt does too. I don't really open IE up hardly at all, since there is a Firefox extension to use the IE rendering engine. Most web developers I've met use Firefox as their primary browser as well.
  • Extras: Every developer has their auxiliary programs that they like to help them. For me, it's mIRC for my IRC channels, RegexBuilder to test regular expressions and WinMerge for file comparison and merging. I also keep pen and paper handy. I find it useful when figuring out algorithms, structure or any other things in my head that I need to see visually. In my experience, this is nearly universal in the field.

1PM -- Lunch

Usually I bring my lunch, but sometimes my coworkers and I go out.  If I'm really engrossed in a project I'll eat at my desk, but for the most part I take a proper lunch break.  I find stepping away from the computer, especially if I'm having a programming issue, is very helpful and often times I'll come back to the computer with a quick + elegant 5 minute solution to a problem that was eating multiple hours.

2PM -- Back to work

More of the same thing. Often times after lunch, I'll have some additional feeds or email that came in, but for the most part I just get right back to work. I do both design and coding of websites, which tends to be a skillset I'm seeing more and more with developers. As a result, my usual process for bringing a website from idea to product is 3 steps.
  1. Take my idea and map out how the data is structured, what pages dispay that data, and the logic flow for all the components.
  2. Head over to Photoshop and design the page visually (or sample page) of what I'm going to build. This helps me visualize what I'm trying to create, and gets all the art (font choices, color, shapes, style) taken care of.
  3. Using UltraEdit, I write the HTML/CSS to transfer the design to a webpage. Any PHP coding to make it all function goes here too.

Sounds simple enough, but there is a lot of pre-planning and trial & error that goes in to making sure the idea in my head functions as I planned. It's a lot of making changes, hitting refresh, and seeing if it worked.

My work style when developing is pretty straight forward. Because I'm blessed to have a 24" widescreen Dell LCD monitor, I keep UltraEdit open on the left side of the screen and my browser window open on the right side. I'll make changes to the code of a file in UltraEdit, save it (via the built in FTP) to the server, then refresh my browser window to check my changes.

Sporadically, I may be in Photoshop to whip up some graphics. If I'm ever making major changes to a design or page, I'll take a screenshot of the existing site, wipe the area I'm changing clean, and design the new component in Photoshop before I even start writing HTML. I find that Photoshop is much more flexible and easier to change colors & fonts than CSS/HTML. Occasionally I'll be in IRC asking questions or helping other users, just to keep knowledgeable on the technology I'm using.

6PM -- Head home

By 6 or so I've usually come to a good stopping point and decide to head home.  Back on the road with the Jansport...

6:20PM-- Arrive at home

Once I get home, I eat some dinner and relax for a little bit.  Afterwards I'll get back on email to see if anything from work has turned critical. I'll spend the rest of the evening relaxing with some time on the computer -- usually on IM or getting some online errands done. Thanks to having a 24hr gym, I'll usually head to work out around 10 or 11PM as well.

I do occasionally develop from home, but I usually don't because 1) I'm more productive at the office, 2) I like to keep my work and home life separate for the most part, and 3) When I'm working I'm usually engrossed in my work and tend to ignore everyone around me. Matt and I have talked about similar experiences when we've been at home, so engrossed in what we were working on, we've ignored people trying to talk to us.  Nobody likes that.

12:30 AM -- Head to sleep

With everything done for the day, I'm usually in bed by midnight or 1AM.  Unlike some developers, I tend not to stay up really late.  I've known other developers to keep really weird schedules and work from noon to 8 or 9PM, then go home and stay up until 3 or 4 in the morning.  I can't do that, for a variety of reasons. I prefer to keep a reasonably normal schedule.

Like I've mentioned in this article a few times, every developer is different. Yet for all the ones I've ever met, many share spookily similiar characteristics and habits. I work purely in open source applications using LAMP, and would expect a developer writing ASP.NET accounting software to have a different day to day experience. But for the most part, we're all one big family of developers eager to help contribute to the world wide web.