{"id":17290,"date":"2014-12-02T12:28:43","date_gmt":"2014-12-02T12:28:43","guid":{"rendered":"http:\/\/www.flubu.com\/blog\/?p=17290"},"modified":"2014-12-02T12:28:43","modified_gmt":"2014-12-02T12:28:43","slug":"who-is-a-senior-developer-anyway","status":"publish","type":"post","link":"https:\/\/www.flubu.com\/blog\/2014\/12\/02\/who-is-a-senior-developer-anyway\/","title":{"rendered":"Who is a senior developer anyway?"},"content":{"rendered":"<p>What makes you a \u201csenior developer\u201d? Everyone and their dog calls themselves a senior developer these days. From fresh graduates to the CTO, everyone is a senior developer. But what the hell does it even mean?<\/p>\n<p>Technologists<\/p>\n<p>Some developers are avid technologists. They got into programming really because they like tinkering. If it hadn\u2019t been 7 languages in 7 weeks, it would have been a box of meccano or they\u2019d be in their shed busy inventing the battery operated self-tieing tie. These people are great to have on your team, they\u2019ll be the ones continually bombarding you with the latest and greatest shiny. If you ever want to know if there\u2019s an off the shelf solution to your problem, they\u2019ll know the options, have tried two of them, and currently have a modified version of a third running on their raspberry pi.<\/p>\n<p>The trouble with technologists is more technology is always the answer. Why have a HTTP listener when you can have a full stack application server? Why use plain old TCP when you can introduce an asynchronous messaging backbone? Why bother trying to deliver software when there\u2019s all these toys to play with!<\/p>\n<p>Toolsmiths<\/p>\n<p>Some developers naturally gravitate towards providing tools for the rest of the developers on the team. Not for them the humdrum world of building some boring commercial website, instead they\u2019ll build a massively flexible website creation framework that through the magic of code generation will immediately fill source control with a gazillion lines of unmaintainable garbage. Of course, that\u2019s assuming it works, or that they even finish it \u2013 which is never guaranteed.<\/p>\n<p>There\u2019s a certain kudos to being the tools guy on the team: you don\u2019t want the most junior member of the team creating tools that everyone else uses. If he screws up, his screw up will be amplified by the size of the team. Instead one of the smart developers will see a problem and start sharpening his tools; the trouble is you can spend an awful long time creating really sharp shears and somehow never get round to shaving the yak.<\/p>\n<p>Backend Boys (and Girls)<\/p>\n<p>Another common pull for a lot of developers is to get further down the stack, away from those messy, annoying users and nearer to the data. Here you can make problems more pure, really express your true artistry as a developer and an architect. It\u2019s true: as you move down the stack you tend to find the real architectural meat of a system, where you want the developers who can see the big picture of how everything interacts. The seasoned professionals that understand scalability, availability and job-security.<\/p>\n<p>It\u2019s pretty easy to put off outsiders (project managers, customers, sniveling little front end developers) \u2013 you start drawing diagrams with lots of boxes and talk of enterprise grade messaging middleware and HATEOAS service infrastructure, before you know it their eyes have glazed over and they\u2019ve forgotten what they were going to ask you: like perhaps why this has taken six months to build instead of six days?<\/p>\n<p>GTD<\/p>\n<p>Some developers just Get Things Done. Sure their methods might be a little&#8230; slapdash. But when you\u2019re in a crunch (when aren\u2019t you?) and you need something done yesterday, these are the people you want on your team. They won\u2019t waste time designing a big complex architecture; they won\u2019t even waste time writing automated tests. They\u2019ll just hammer out some code and boom! problem solved.<\/p>\n<p>Sometimes they can come across as heroes: they love nothing better than wading into a tough battle to show how fast they can turn things around. Of course, that also lets them quickly move from battlefield to battlefield, leaving others to clean up the dead and wounded they\u2019ve left behind.<\/p>\n<p>Front End Developers<\/p>\n<p>For some reason Front End developers never seem to be considered the most senior. As though hacking WPF or HTML\/CSS was somehow less worthy. In fact, I think the front end is the most important part \u2013 it\u2019s where all your wonderful n-tier architecture and multiple redundant geegaws finally meets users. And without users, everything else is just intellectual masturbation.<\/p>\n<p>The front end developers are responsible for the user experience. If they make a mess, the product looks like crap, works like crap: it\u2019s crap. But if the front end developers create a compelling, easy to use application \u2013 it\u2019s the great, scalable architecture underneath that made it all possible. Obviously.<\/p>\n<p>Team Lead<\/p>\n<p>Your team lead probably isn\u2019t a senior developer. Sorry, bro: if you\u2019re not coding you can\u2019t call yourself anything developer. Go easy on your team lead though: the poor sod probably wrote code once. He probably enjoyed it, too. Then some suit decided that because he was good at one job, he should stop doing that and instead spend his life in meetings, explaining to people in suits why the product he\u2019s not writing code for is late.<\/p>\n<p>Architect<\/p>\n<p>Your architect probably isn\u2019t a senior developer either. Unless he\u2019s actually writing code. In which case, why does he need the label \u201carchitect\u201d? Architecture is a team responsibility. Sure, the most senior guy on the team is likely to have loads of experience and opinions to share with the team \u2013 but it doesn\u2019t mean his pronouncements should be followed like scripture. But if instead of writing code you spend your time drawing pretty pictures of your scalable messaging middleware one more time, I will shove it up your enterprise service bus.<\/p>\n<p>Conclusion<\/p>\n<p>There are lots of different types of senior developer. That\u2019s probably why the term has got so devalued. Once you\u2019ve been in the industry for a few years, you\u2019ll have found yourself in at least one of these roles and can immediately call yourself senior. The truth is you spend your whole life learning, only in an industry this young and naive could someone with 3 years experience be called \u201csenior\u201d. I\u2019ve been programming professionally for 13 years and I\u2019m only just starting to think I\u2019m getting my head around it. I\u2019m sure next year I\u2019ll realise I\u2019m an idiot and there\u2019s a whole new level to learn.<\/p>\n<p>So, go ahead, call yourself senior developer. Just make sure you keep on learning. Change jobs, wear a different hat. Be the tools guy. Meet like-minded developers. Play with different technologies. Become a middle tier developer. Then switch to work on user experience.<\/p>\n<p>Senior developer: it\u2019s just a job title, after all.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What makes you a \u201csenior developer\u201d? Everyone and their dog calls themselves a senior developer these days. From fresh graduates to the CTO, everyone is a senior developer. But what the hell does it even mean? Technologists Some developers are avid technologists. They got into programming really because they like tinkering. If it hadn\u2019t been&#8230;<\/p>\n<p class=\"more-link-wrap\"><a href=\"https:\/\/www.flubu.com\/blog\/2014\/12\/02\/who-is-a-senior-developer-anyway\/\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &ldquo;Who is a senior developer anyway?&rdquo;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[17],"class_list":["post-17290","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-geek"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3u9vK-4uS","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts\/17290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/comments?post=17290"}],"version-history":[{"count":1,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts\/17290\/revisions"}],"predecessor-version":[{"id":17291,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts\/17290\/revisions\/17291"}],"wp:attachment":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/media?parent=17290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/categories?post=17290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/tags?post=17290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}