What Kind of Developer are You?
I always hear people described as being a back-end guy or a front-end guy. Really, I think those terms are a little ambiguous and can be a little misleading. Or worse, you can get pigeon-holed into one or the other and then people don't trust you with half of the system.
At my current gig, I am generally regarded as a "front-end guy". That is largely because when I started working on the web application there, the whole thing was in shambles. I mean, it worked and generated a ton of revenue, so in that sense it was a success. However, the UI looked ridiculous, the code left a lot to be desired, and the page load performance was abysmal. I was constantly on my soap box about it and so the title stuck.
The problem with the application wasn't that the developers were not good. In fact, that company had a great collection of fantastic developers. The problem was actually two fold. From the development side, there was never anyone on staff who was a real expert on how to assemble a web stack. On the business side, no one really knew how to design a web front end and there was no graphic designer anywhere in the company.
If you are working on a web application stack, everyone needs to be a front-end and a back-end guy. The fact of the matter is that it is a front-end application and even though it has a front-end and back-end portion, most likely everyone is working on every part of the application. I know I have always worked on the whole stack, from top to bottom. These days, my knowledge base is weighted towards the presentation layer, but I have my fair share of experience creating database schema, building ORM mappings, writing nightly scripts, setting up and deploying servers, etc. I feel totally comfortable doing that stuff and enjoy it just as much as I do making wild UX implementations.
It is natural that some people are better at certain aspects than others. Some people are jacks of all trades and decent at each layer. Anyone who can only work on one layer though, is probably having a tough time finding a job or, if they're lucky, is coasting at a BDC.
I think one of the key factors of success is knowing and embracing your identity. Despite what anyone thinks I am, I am a front-end application developer who works the whole stack, but has special expertise in the presentation layer. It works really well when I am paired with someone who is the exact opposite and is a front-end-application developer who works the whole stack, but has special expertise in something that I am not an expert in.
Right now I am working on a real back-end system. No application container, no presentation layer, just a lean and mean environment for doing an incredible amount of heavy duty processing. It really is coming together as a great system thanks to the team and especially the tech lead, who is an elite developer/architect. I feel like I am making a meaningful contribution, despite my unofficial title as the front-end guy. The best part about it though, is that I get to work with some really fantastic people who have skill sets that compliment mine and can teach me lots of new tricks.
So, what kind of developer are you?