Hacker News new | ask | show | jobs
by peterkelly 3557 days ago
It's a pretty arbitrary term, but based on what you've said, especially "I don't fancy the new and shiny. I just get things done fast and done properly", would be enough for me to label you a senior programmer.

Our industry is way too obsessed with fashion... sooner or later you realise that most of the "new" stuff is largely existing ideas re-hashed in a slightly different form. Senior programmers realise this and can pattern match to understand the role of various new technologies, and learn the details if and when necessary.

How do you get there? You already are, you just don't realise it yet.

2 comments

> but based on what you've said, especially "I don't fancy the new and shiny. I just get things done fast and done properly", would be enough for me to label you a senior programmer.

I think that's wild speculation. That phrase could mean a number of things.

It could mean they engage in the industry, explore new technologies and make educated decisions which balance the risks associated with adopting new technologies and, in some cases, choose to use technologies that are fit for purpose but are not necessarily bleeding edge.

On the other hand it could mean they have failed to keep up with technological advancements and are using the wrong tools for the job, tools that can't deliver a modern web experience. He might be churning out shocking legacy code that someone else will have to clean up one day. Perhaps his employers are none the wiser and don't realize a different developer could deliver a better quality product in a much shorter time using the tools available today.

Given OP's examples of not knowing "Amazon" or Java Spring, both of which are ancient technology in web years, I would speculate the OP might fall into the latter category. Another strong indicator of this: OP has been doing web development "as long as [they] can remember". You'd think his coworkers or employers would have told him he was a senior developer if he hadn't figured it out himself.

Overall, insufficient information in the OP to make an assessment, but I would be very wary of pandering to someone's ego as it can do more harm than good.

"done properly" means not taking the shortest, technical-debt-laden path to success (amongst other things). It's a hallmark of a senior, in my opinion.

Also, why would you know Amazon operations stuff if your job duties don't expose it to you? The OP was saying 'operate Amazon', not 'use Amazon APIs'.

Both AWS and Spring have changed and grown a lot over the years. Spring Boot is pretty much a reinvention of the Spring developer experience and Spring 5 will be pushing reactive programming into the limelight.

Disclosure: I work for Pivotal. So do many members of the core Spring team.

"done properly" is very ambiguous and relative.

To the junior engineer, "done properly" might have a different meaning. A senior engineer should be able to explain in detail what "properly" means.

In my experience, it depends on what the criticality of the issue actually is, and whether it's an improvement or whether it corrects a defect. I'm reminded constantly that our job isn't to drink coffee and crap code, but that our work is done within the context of a larger organization. We may not like some of the compromises we make for our coworkers but we need them to do their jobs as much as they need us. To do something properly, it behooves us to consider their professional needs as much as our own.