2014. augusztus 7., csütörtök

Stay or go? Very lonely work environment.


I've spent almost as much time deciding where to post this as I have thinking about the situation itself, so if this isn't appropriate please let me know and I'll move it right away.


TL;DR: Discovered I work for a company that is mostly interested in using the latest shiny new technologies rather than creating a great customer experience through software, making me feel like a dinosaur at 28. It's better than what I came from but is it the right place for me?


First, a brief history of me so you know a bit about where my perspective comes from. I'm 28. I have always known creating software was my thing since I first started playing with QBasic on my dad's computer at around age 9 or 10. I soon moved away from BASIC and at about 16 was writing software (and getting paid to do so) for co-workers of my dad. I haven't been to university so since about age 17 (I finished my last 2 years of high school in 1 year from home) I've worked for small and large companies and feel I have a reasonable idea of what works and doesn't from working with huge and tiny codebases at a professional level.


Right now I'm at the point where I don't care as much about the money. I've had a 6 figure job which I hated and gladly took a pay cut for something more suited to me as a person. I'm really very helpful and friendly and I've made lifelong friends at every company I've worked for. I like to make any team I'm part of feel happy and motivated and I bring with me a good sense of humour and strong sense of focus on ultimately creating and keeping happy customers.


I'm extremely picky about where I will work now, and I spend about as much time interviewing the hiring manager about the company as they do interviewing me. I was recently ready to move on from a job of 2 years and about 4 months ago started at the company I'm with now. The hiring manager did an amazing job of selling them to me and said just about all the right things (I know that no company is going to get it all right and even more so who the fuck am I to think I even know what all the right things are).


It sounded like they had found a great balance of using new technologies while also not just starting rewrites of legacy projects just for the hell of it. Great! They also were not set on using one small toolset and never re-assessing the tools available when starting a new project. Great! Small team, only 5 developers. Great, I can apply a wider range of skills to the job and have more say and responsibility across the board! All great so far.


I should mention that the company is essentially a bog-standard software development shop, writing custom software for whatever a customer might need. It's basically all web apps.


When I started, I did what I always do when joining a new team: volunteer for everything. I'll gladly pick up any of the "shitty" jobs that nobody likes to do, to prove that I am a team player and I am happy to get my hands dirty (which I really am). I don't get hung up on what kinds of technologies are in use around the place because I know that no company or programmer is perfect (certainly not me!) and every company has those legacy projects floating around that aren't "cool" anymore but a customer is still using, paying for, and relying on for a set of tasks. Those projects are no less important and writing software is not all fun and Google Glass and self-driving cars. I accept this profession for what it is and I take pride in trying my best to make great solutions even in tools and environments that may be less than ideal for the requirements (I won't get into naming specific tools / languages / frameworks unless it's relevant for an example, as is coming up next).


I'm getting to my dilemma, but just before that I will start by saying that during the interview process the manager mentioned that they've decided that they are going to use node.js for "every [web] project going forward". I don't care what technology it is (and I'm certainly not interested in a node.js-or-not discussion here at the moment) but when I hear a statement like that it makes me a little uneasy. Again, this was before I started, but I felt like they did so many things right that if they found this tool was inadequate they would use something else, so in fairness to them I quite knowingly took the job with this knowledge.


I thought: OK, I'll roll with this. Let's see how it goes. I spoke to a couple of devs before I started and they seemed quite reasonable. I'm not one to rock the boat soon after starting but if I feel I have an idea I will voice it, generally in a very diplomatic way.


What I've noticed, and what I can't understand, is that they are just completely set on using node for everything despite having to already re-invent several wheels and create a fair bit of spaghetti code. They seem almost hostile at the very mention of maybe another tool being more suitable for some tasks (e.g. Python/Django or Ruby/Rails are things I've pointed at). I can't figure out what they're afraid of or where this is coming from. I seem to be shot down immediately when trying to open the discussion to anything that is not JavaScript-related.


There is almost a daily mention of some new JavaScript library or some or other drone thing that somebody has scripted with node and someone on the team will release some package into npm and there'll be hourly counts of how many downloads it's had. I'm starting to feel very frustrated because I'm the kind of person who tries to bring a certain amount of traditional engineering discipline to the software world and specifically not using technologies for serious software that don't have a bit of a tried-and-tested legacy.


I'm also the kind of person to look inward before I complain too much about others, so could it just be that I'm not open-minded enough? I honestly feel like I want to leave but I'm just not sure if that's the right thing yet. When all's said and done I just want to write software that doesn't get in peoples' way, learn as much as I can, and be treated with respect by my employer. What I don't want to do is spend customers' money filling in the gaps in a new technology and worrying about the future and security of NewShinyThing.js (sorry, JavaScript, I don't hate you! Really!).


It seems like many of the guys there started out with PHP and then somehow just discovered JavaScript with node.js so they don't know there's anything else out there. Or something...?


I really just needed to vent a little bit. I feel bad even complaining at all since I know this is most definitely at the highest end of first world problems. I guess I'm just thrown by this particular situation and I'm not sure what I should be doing about it, if anything. Any words of wisdom will be most welcome. Even if you want to tell me to just STFU I'd be happy to hear it, really! ;-)






Nincsenek megjegyzések:

Megjegyzés küldése