Live data from Hacker News

Things I Learnt from a Senior Software Engineer

neilkakkar.com

271–280 of 301 posts

Re: Things I Learnt from a Senior Software Engineer

#272
post #198

Earlier quoted context omitted.

I worked with home support for an ISP. A few times I was at a customer helping with a router and the mother call her son to get the password for the router. Not always a nice password...

I very much believe in offensive passwords/passphrases (maybe not for wireless routers) specifically because: (a) You're not supposed to tell anybody what they are. (b) Offensive passphrases are easier to remember.

Also easier to crack if an attacker knows that detail.

Re: Things I Learnt from a Senior Software Engineer

#273

Earlier quoted context omitted.

Wasn't it Kent Beck who came up with Extreme Programming and Test-Driven Development? I think testing was one of the big corner-stones of XP. At what point did that turn into "Test as little as possible"? "Unit tests are one of the CORNER STONES of Extreme Programming (XP)" http://www.extremeprogramming.org/rules/unittests.html Also see: https://hygger.io/blog/tests-in-extreme-programming/ If development is tests-dri…

its the same concept as minimizing the amount of code through design and refactoring. Let the tests drive the code, refactor, and refactor / delte your tests when not needed anymore. :) this is his SO answer where he talks about it... https://stackoverflow.com/questions/153234/how-deep-are-your...

Makes sense. But it does seem like a shift in position from the very "test-centric" view of XP.

In the above link I don't see anything about "delete your tests when not needed anymore", or did I miss it?

How do you know when some tests are "not needed any more"? Isn't the idea of regression-testing to keep tests around so you know if any new code will break them? That should give you the "agility" to refactor your code, I think, is what the proponents of XP would say.

Re: Things I Learnt from a Senior Software Engineer

#274
post #104

Earlier quoted context omitted.

If you designate your servers with numbers or meaningless identifiers instead of names, you also won't ever feel guilty about killing and replacing them. I believe this is (somewhat gruesomely) called the "pets vs. livestock" approach.

If you believe people can't get a little attached to "prodsys3" or whatever, then you underestimate the sentimentality of some of us. ;) Of course, the other thing you can do is name server roles rather than specific hardware, so all of your servers are immortal, Ship-of-Theseus style.

At one job, the servers were named after characters on Gilligan's Island.

Problems with Ginger were being discussed at one stand-up, and an engineer who didn't care about that quietly said, "Blah blah blah Ginger, blah blah blah Ginger." I almost fell over laughing.

(https://desertdemocrat.files.wordpress.com/2015/03/gary-lars...)

Re: Things I Learnt from a Senior Software Engineer

#275

Earlier quoted context omitted.

For me, it depends on who is creeping. A junior engineer, I'd probably pull them up and start explaining what is going on. A fellow senior engineer I'd probably take a welcome break and ask them to grab a coffee - the only reason they'd be lurking lol. If it is a PM or someone else it might put me on edge - likely because they wouldn't have the context to understand what I was working on and if they didn't say anythi…

So in all three cases, your focus is gone and what you were doing has stopped.

Which is _okay_ as long as it doesn't happen too often. I work remotely now, but most offices have conference rooms or quiet spaces or respected headphones on policies for when you need headsdown time. If there's no way to signal that you are busy, then that's probably a separate issue than the 3 cases here.

Re: Things I Learnt from a Senior Software Engineer

#276

Earlier quoted context omitted.

While I'm not 100% against humor in a codebase, ever since my company started hiring more engineers internationally, I've become more tuned in to whether a name that uses slang like "yoinker" will be understood by someone who doesn't know English as a first language.

I've been using English as my first language for nearly 20 years and am unfamiliar with "yoinker". Just googled it and, ... nah, I wouldn't approve that PR! (Have never heard it used down here in Australia. We've got plenty of other sayings that are local to us though.)

Hehe, I never googled yoinker until just now. I originally heard it on The Simpsons. Here's a SFW Simpsons supercut of "yoink":

https://youtu.be/CJh1hmmLLzw

I suspect there are a lot of words that used to be safe that are less so now :P

Re: Things I Learnt from a Senior Software Engineer

#277

Earlier quoted context omitted.

Compromise?

No; the point here is to pick the worst possible compromise out of compromises that solve the problem effectively. It's like you're dividing an 8-piece pizza between 3 people. Everyone's minimum desire is 2 pieces, compromise solution would be 2 and 2/3 split, and people keep arguing why they deserve more. However you - the decision maker - decide instead to give everyone 2 pieces and throw the remaining 3 pieces int…

You understand perfectly: everyone got enough food to keep going, and they are equally dissatisfied with the result. I might take a step to the left by ordering known-unpalatable toppings and provide no further allocation instructions, but the effect is the same.

Re: Things I Learnt from a Senior Software Engineer

#278

Earlier quoted context omitted.

No; the point here is to pick the worst possible compromise out of compromises that solve the problem effectively. It's like you're dividing an 8-piece pizza between 3 people. Everyone's minimum desire is 2 pieces, compromise solution would be 2 and 2/3 split, and people keep arguing why they deserve more. However you - the decision maker - decide instead to give everyone 2 pieces and throw the remaining 3 pieces int…

If there are 3 people, and they each get 2 slices, that is 6 slices. So, throwing away 2 slices, because there is 8 total, is fine, as you stated that is everybody’s agreed minimum desired amount. And there is no knife, nor protractor. What is the difference between the worst and best compromise? If it is a compromise, it is a compromise.

Anti-compromise: A solution which pleases the fewest parties possible while still meeting each party’s needs.

Compromise: A solution which pleases the most parties possible while still meeting each party’s needs.

Re: Things I Learnt from a Senior Software Engineer

#279
post #117

Earlier quoted context omitted.

ISO stands for the International Organization for Standardization, for largely the same reasons.

Maybe I got the wrong person (on the phone), but it was explained to me the name "ISO" was the Greek word for "sameness" and that Français and English just happened to form /meaningful/ representations for an acronym.

"IT'S ALL IN THE NAME Because 'International Organization for Standardization' would have different acronyms in different languages (IOS in English, OIN in French for Organisation internationale de normalisation), our founders decided to give it the short form ISO. ISO is derived from the Greek isos, meaning equal. Whatever the country, whatever the language, we are always ISO." https://www.iso.org/about-us.html

But I'd tend to call BS - if it wasn't ever an acronym, why capitalize all three letters?

The google ngrams are also suggestive:

https://books.google.com/ngrams/graph?content=international+...

Post reply on HN