How Do You Start a New Job?

Today is my first official day at Broadchoice, though I've been on the development list server and conference calls for a while. I thought I'd blog quickly about how I'm getting settled and see if others have their own ideas or processes that they go through for starting a new job.

  • Read up: Broadchoice has a pretty nice Intranet that contains a lot of information. So all the fun stuff like personnel forms, health insurance, tax forms (whee) and all the rest. Ahh, first day paperwork! I think the only other time I've signed so many forms is closing on a house. :-)
  • Local development: New work means a new Eclipse workspace and new Apache virtual hosts. As a new Apache convert from IIS, the one thing that I miss is the nice management console that IIS provides. The first thing I did when moving to Apache was to write a script that would automatically create new virtual hosts for me. So by filling out a short form, I add a new virtual host to my Apache config, update my hosts file, and optionally create a new Eclipse workspace by copying a default workspace.
  • Source code: If good developers are at least part artist, then source code is our clay. Like any modern development shop, Broadchoice uses source code control extensively. In our case, it's Subversion. That means hooking up to the SVN server and pulling down working copies of the relevant code.
  • Tasks: Broadchoice uses Trac to manage tasks and tickets. However, like many people I think the Trac web interface leaves a lot to be desired. Luckily, we have the Mylyn plugin for Eclipse. This great add-on lets me connect to the Trac repository from within Eclipse and manage tickets. It's great to be able to do this without leaving the IDE. It gives you little message alerts when new tickets come in, and lets you create custom queries for Tasks. So, for example, all tickets assigned to me. Or all tickets associated with a specific release number. It also offers "context" which lets you activate a ticket and then it keeps track of what files you've used while working on that ticket. Any time you go back to that task, the IDE hides everything unrelated and just shows the files that relate to that task. This is really great when you have to jump between tasks since you don't have to think about what you need to open.
  • Organization: I'm fairly anal about how I organize stuff on my computer. That means folders, usually lots of them! I've found that being a bit meticulous about setting things up makes life a lot easier later. In the past I might just create a "broadchoice" folder for documents, and dump everything in there. Later, when there are 100 files in there, I end up regretting my lack of organization. So I try to segment things off at least somewhat: corporate, employment, expenses, projects, etc. It's no extra work to drag a file into the right folder, but it makes things much easier to deal with in the future.
  • Communication: With a number of remote developers, communication is key. The development team makes a big effort to be reachable in a variety of ways. Email is an obvious one. Instant messaging is another. We also use Adobe Connect on occasion, Skype for quick conversations, and of course the good old Phone when necessary. Everyone has an iPhone, which was pretty smart on the part of management. Being geeks, everyone almost always has their iPhone with them, which means email, phone calls, and SMS are almost guaranteed to be seen and answered quickly.
  • Mindset: Starting a new job can be somewhat daunting. You're jumping into something totally new, working on things that may be completely foreign, and maintaining code that others wrote. For many, this may be scary. But I love it. The chance to break new ground and do new things is extremely exciting to me. Working with a team like this means there isn't room for shortcuts or half-measures. When you know the code you write will be scrutinized by people like Sean, you set the bar for yourself pretty high!

I think I've hit on most of the major things I've done in preparation for starting here at Broadchoice. Anyone have other tips or advice?

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
marc esher's Gravatar One of the first things I do when setting up a new environment for myself is set up 2 "playground" projects: one for CF and one for java. I don't know why, but I find that the immediate comfort of knowing I have a place to code without fear of mucking anything up gives me some mental breathing room. And especially in those early periods of downtime where i'm not directly working on the app yet (waiting for usernames/passwords, blah blah blah) I can stay busy by "practice" coding.

Congrats on the new job, Brian. Kick some ass.
# Posted By marc esher | 8/11/08 1:03 PM
Luke Kilpatrick's Gravatar Welcome to the team,

When ever I am working on some cf code I always think HWSC (How Would Sean Code) keeps me from making old fashioned procedural short cuts I would have used in the past.

Having great code review and lots of help is one of the best things about working at Broadchoice.
# Posted By Luke Kilpatrick | 8/11/08 1:27 PM
Larry C. Lyons's Gravatar Hey Brian,

Care to share that virtual host script?

btw congratulations with the new job.

larry
# Posted By Larry C. Lyons | 8/11/08 2:44 PM
Tero Pikala's Gravatar We have subversion repository for Apache configuration files. There we have one file for each site. When new site is created each developer will get site configuration just by updating config files and restarting Apache.
# Posted By Tero Pikala | 8/11/08 5:54 PM
Sean Corfield's Gravatar We have an ant script that takes three template Apache .conf files and makes substitutions and puts them in the appropriate location (and restarts Apache). Every developer can have their own target in the ant script, based on the folder structure they use locally for their SVN checkout area where they develop, and then standard shared dev/stage/production targets are defined.

A new developer just adds an install-myname target with the appropriate property values and then runs: sudo ant install-myname

We try to automate things as much as possible (but we're always trying to improve).
# Posted By Sean Corfield | 8/11/08 6:03 PM
David Mineer's Gravatar I wish I could see the Author of these entries from within google reader. This is not usally an issue because most blogs only have one Author. But in this case, where it could be any of these wizards, I would like to know that without having to go right to the blog. Maybe it is a stting in google reader. Maybe if it is just a quirk, the Author could just sign at the bottom "Brian K". But there are probably better readers out there too. Love the blog.
# Posted By David Mineer | 8/11/08 9:41 PM
Raymond Camden's Gravatar According to the spec for RSS2, an author property is supported, but it is meant to be the email address. BlogCFC stores a username/real name value for each author, but not the email address.

What I could simply do is add: "By X" to the entry in the RSS field. I don't think I'd put that in the core BlogCFC though as most blogs have a single author.
# Posted By Raymond Camden | 8/11/08 11:02 PM
TJ Downes's Gravatar Gratz Brian! Also, mylyn FTW! I published a blog post on Mylyn today. We are real fans of it and have only been using it a few days. Our productivity levels have bumped significantly.
# Posted By TJ Downes | 8/13/08 7:21 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.9.1. Contact Blog Owner