Live data from Hacker News

Absolute truths I unlearned as junior developer (2019)

monicalent.com

111–120 of 269 posts

Re: Absolute truths I unlearned as junior developer (2019)

#111
post #8

Earlier quoted context omitted.

That's not a senior engineer's job.. that's a job that has scope creeped into many roles: project management, lead developer, project owner and a trainer. Are you doing QA and managing the production servers as well?

That's exactly how we define senior engineer at my company. There's a lot of people able to produce code - even really complex and sophisticated. But you'll waste a lot of time if you're working without proper context and well organized team. From the other hand - you can't establish good context and organize team well without knowledge of what it takes to put requirements into code - therefore most efficient way is…

In general a "senior engineer" is simply a dev. with about 5+ years of experience so that they are no longer junior and no longer need hand holding.

There's usually no, or very little, project management, lead work. At least that has been my experience everywhere I worked in the last 20 years...

Re: Absolute truths I unlearned as junior developer (2019)

#112

> Good enough is good enough. I’ve only been in my first role for about two months and this one hit the hardest for me personally. I imagine it has a direct correlation with impostor syndrome, but I spend a lot of time writing things over and over again because in the back of my mind I’m thinking “is this the correct approach? Will they think I’m failing if it’s not how they’d do it?” I consider myself lucky that I’m…

That’s actually great. You are playing and exploring, which will definitely lead to deeper skills. It’s not impostor syndrome, it’s just realizing where you are and putting in the time to improve.

It’s only an issue if you stress out too much over it, or if you spend too much time doing it.

Maybe schedule a time for this type of work, like 1h a day, or 3h. Really depends on the type of work you’re doing and what the circumstances are.

Re: Absolute truths I unlearned as junior developer (2019)

#113

Earlier quoted context omitted.

I would have thought that job would be a higher level than senior. Team lead perhaps.

I'm like him, senior developer at a small company (~80 people total, 15 in software dev) and also do all those things. Sometimes I am team lead or tech lead for a while, then purely dev for a while, depending on what projects we have and how we are divided into teams at the time. It's not considered "higher", just a role that the seniors sometimes have. The only job title above "senior x" in the company is Director.

That's perhaps because it is a very small team but it's highly unusual in larger organisations.

In general "senior engineer" is actually a rather junior level in the overall organigram. 5 years experience doing pure dev. and your title is bumped to "senior engineer" but you're still a 'only' a dev.

Re: Absolute truths I unlearned as junior developer (2019)

#114

Cmon guys just write some damn tests. It’s not that hard

The keyword is “some”. In web dev there are things that lend themselves to automated testing, for example domain logic. There, it is often most beneficial and most helpful during development. Start with that, it won’t save time if you don’t.

Other things, like UI, I think are best tested manually and visually. This takes a ton of time but leads to the highest quality and confidence.

Re: Absolute truths I unlearned as junior developer (2019)

#115

Earlier quoted context omitted.

That's exactly how we define senior engineer at my company. There's a lot of people able to produce code - even really complex and sophisticated. But you'll waste a lot of time if you're working without proper context and well organized team. From the other hand - you can't establish good context and organize team well without knowledge of what it takes to put requirements into code - therefore most efficient way is…

In general a "senior engineer" is simply a dev. with about 5+ years of experience so that they are no longer junior and no longer need hand holding. There's usually no, or very little, project management, lead work. At least that has been my experience everywhere I worked in the last 20 years...

I don’t know why you think that’s true “in general”.

If you have a team with a senior member it, in general, what would you expect that team member to do? How are they different from the other team members?

They are not senior because they’ve been there the longest. That’s stupid. That just makes them the oldest worker, not the most senior.

I expect them to have more responsibility for making sure the team delivers whatever it is they do.

If the team does tax forms, then they’re more responsible for ensuring the forms are correct, and timely, than say, a junior accountant on the team.

If the team produces code, they’re responsible for making sure the team produces the correct, maintainable code in a timely manner.

If the team is two people, maybe that means “write lots of code”, but if it’s six people, it’s much more likely, in general, to be, making sure the rest of the team is doing the right thing at the right quality. Mentoring. Checking. Meetings. Documentation. Protecting the team from politics.

Why? …because seniority is about responsibility, and if all you do is write good code, you’re not accepting the responsibility for anyones effort but your own.

Obviously, it’s not solely your responsibility; you share that responsibility with the other team members depending on seniority. A team lead, for example, and other seniors.

…but, I don’t care how many years experience you have: 0 responsibility for anyone other than yourself makes you a junior developer.

Re: Absolute truths I unlearned as junior developer (2019)

#116

I deployed by ssh-ing into a server and running git pull. That sounds wonderful. Let's do that again.

There's a reason most deployments moved away from that:

- Sometimes you need more complex actions to update a service than just "update the code". Migration scripts, dependent services restarts...

- It's fine on one server, but the more you have the more difficult it gets

- Changes and dependencies accumulate on the server, which might cause weird errors or necessary configurations that aren't written down anywhere.

- Too easy to say "let me just modify this thing here in production" and end up with bug fixes that are only applied on certain machines and certain versions...

I get the "let's do things in a simple way again" sentiment, but it's not like the complexity is there because people like complexity.

Re: Absolute truths I unlearned as junior developer (2019)

#117
> That’s why mentors are so important, and the team you work with is worth so much more than a couple bucks in your paycheck. Don’t accept a junior position where you’ll be working alone, if you can help it! And don’t accept your first role (or, honestly, any role) based on salary alone. The team is where the real value is.

Couldn't agree more.

Of course, with today's attitudes towards us olds, and the average term of employment as an SWE being about a year and a half, I'm not so sure how big a role mentorship plays.

I think that having folks be responsible for their code, from napkin sketch, to deprecation, is a great way to teach us how to do good code. That's been the case for me, for almost my entire career. A quick shufti through my code repos will show the results.

Re: Absolute truths I unlearned as junior developer (2019)

#118

The truth I had to unlearn is that coding is a solitary activity, and that coding is the most important part of a senior software engineer’s job. Now I rarely have the chance to code for a few hours straight because if I have enough information to write code then all that’s left is the easy part. The hard part is coordinating, defining the problem, planning for the future, and communicating the current status of the…

Where I live the worst of this is that one is often expected to be the head of a team as well as lead developer. Sitting in meetings with people talking about personal matters was not the reason I became a developer.

The purpose of having autonomous teams with agile development is to speed up development by defining responsibility between different roles in the team and to give the team a sense of ownership that will enable quick decisions and shorter time to production. Scrum for instance also emphasis the need for protecting the developers from the outside. But in this agile post apocalypse it seems like the result have become the opposite.

Re: Absolute truths I unlearned as junior developer (2019)

#119
post #3

Small piece of wisdom I received when I was an intern: "Never get sentimental with your code"

I get paid to write code, I couldn't care less if it's deployed or not.

If they pay me to write it, and it doesn't get used, that's their waste of money / time, not mine.

Post reply on HN