The kind of developer I want to be
I got out of school a couple of years ago. I had worked some odd summer jobs at that point, but I got into work life almost instantly after that.
My education is in computer technology, so hardware stuff and embedded systems, but I did realize during my time in school that that line of stuff does not interest me. I'd say the annoyance/productivity ratio of that kind of work is just too damn high.
At my first real work place, I didn't really know what to expect and how to handle myself. I would be given all kinds of work, and I would do it. I'm not the kind of person who takes ages to learn to use a new technology, and I can quickly become very efficient in it.
Lots of talking to my co-workers and hair pulling later, I started to get an idea of what kind of developer I want to be, and what kind of a future I want to build for myself.
I realized, that money is not the factor that keeps me going, in fact it is completely secondary to my work - a bonus. What matters to me far more is to work with like minded people, who aim to do things the right way, effectively and with efficiency. I cannot tolerate half-assedness, I hate when customers are not treated in the best way possible, and the only "reward" I value is getting knowledge and experience in the right things and learning the right way to do things.
When I say right things, I do not think it is worth my time to work with unknown outdated proprietery software by a company that has stopped supporting it ages ago. I want to work with the right tools, and get things done.
When I say learning the way to do things right, I mean not working in a wasteful way. I mean efficiency in everything you do, and rebelling against inefficiency. I also mean gathering enough information to make good decisions, and taking control of your work.
I do not believe in developers that know a little bit of everything, and thinking that that is enough.
I think you have to know exactly what you need to know, which is a little bit of everything, but you also have to specialize - strive to become the best at something. From a company's perspective, this is what should be nurtured, because quality software is developed by those kind of people.
The best times for me are, when I'm given a software to design, and I lose sleep over designing it in a way that solves all the customer's problems. I want to provide a piece of software, that is elegant and shows craftsmanship, that delivers on solving the actual problem, and actually makes life easier for some. I want to design for the future, provide quality and value. I want to scrutinize over the code that I've done so that I can improve. I want to work in an ecosystem with tooling that promotes all that - especially quality. That's the kind of development I want to do.
If the place I work at is not all that and more, give me a chance, empower me, and I'll make it all happen myself.
“Anything worth doing, is worth doing right.”
- Hunter S. Thompson