> “if they ask about time off in the first interview then they are never going to be there!” The fact that this attitude is common scares me when I'm doing interviews. Time off is incredibly important to me. What's the use of making a great income if you can't get the time off to enjoy it? The culture about the use of PTO varies wildly between companies. A friend of mine worked somewhere that supposedly gave 20 days…
Your quote of the article made me think I was going to hate the advice, but then I realized you quoted it out of context, here's the full quote: > People might claim they have “signals” for these things… “if they ask about time off in the first interview then they are never going to be there!” But these are all bullshit. If you’re using signals like these you’re just guessing and turning away good candidates
Things I’ve learned in my 20 years as a software engineer
371–380 of 745 posts
Re: Things I’ve learned in my 20 years as a software engineer
#372> “if they ask about time off in the first interview then they are never going to be there!” The fact that this attitude is common scares me when I'm doing interviews. Time off is incredibly important to me. What's the use of making a great income if you can't get the time off to enjoy it? The culture about the use of PTO varies wildly between companies. A friend of mine worked somewhere that supposedly gave 20 days…
The context is key. First interview . The issue isn’t taking time off, it’s that the prospective employee’s head is up their proverbial ass. First interview is propspecting. If you were selling a product, if the customer is asking about the return policy before even selecting an option, it’s a similar signal. When you’re in a subsequent interview talking about the benefit plan, salary, etc, that’s where that sort of…
Re: Things I’ve learned in my 20 years as a software engineer
#373Earlier quoted context omitted.
This is the opposite of how you should want any knowledge worker to think. If you believe that there’s some innate ability that makes people 10x better at a skill than you rather than hours of practice and study then you are much less likely to acquire that skill or learn those skills efficiently. You need to have a growth mindset to be an effective knowledge worker not a fixed mindset. This is discussed in the book…
> This is the opposite of how you should want any knowledge worker to think. Some of us don't choose our beliefs based on what is most convenient or most beneficial to us. Instead, we try to see the world for what it is, truthfully (or as close to a true representation of the world as it's possible to get, anyway). If having a realistic worldview hinders my ability to learn, then so be it. Not everything is about max…
Re: Things I’ve learned in my 20 years as a software engineer
#374To survive in this field, one has to accept the fact that everything he/she's worked so hard to learn and master is gonna be replaced by something new in a few years. Don't fight it. Embrace it.
Re: Things I’ve learned in my 20 years as a software engineer
#375Earlier quoted context omitted.
How long would it have taken you or me to write Doom, or Quake? How long would it have taken Carmack, if it'd just been him? I think you have a false dichotomy here. Carmack isn't 10x better a C or assembly than me. But in his domain he's easily 10x smarter and more productive than me. And on top of that, he has a quarter century more experience in graphics programming than me. That shit accumulates. Yes, actually. I…
> How long would it have taken you or me to write Doom, or Quake? How long would it have taken Carmack, if it'd just been him? I'm not a games programmer. I doubt a median games programmer would take 10x the length of time that it would take any other games programmer. It just seems implausible, and I don't know why people want to defend it.
Then why did all those thousands of other game programmers fail at creating a decent 3d game, before Doom was released? It's not like Carmack was the only one trying.
Re: Things I’ve learned in my 20 years as a software engineer
#376One of the things I have noticed lately is that people who change jobs often have completely different perception of the industry as compared to people who don't change that often. Both of the strategies have pros and cons. For instance people who change jobs quite often don't seem to care alot about the business per say they seem to emphasis on the technology more as compared to people who stick to one org. However,…
If you are good in tech that is transferrable skill. Being good at what your company does is often not that useful anywhere else and usually you get non-compete so you cannot really use it. If someone is a dev it is better to switch jobs and sharpen your "software stack" skills than waste time on learning whatever business needs. Of course there is some level that one has to understand the business they make code for…
Re: Things I’ve learned in my 20 years as a software engineer
#377> “if they ask about time off in the first interview then they are never going to be there!” The fact that this attitude is common scares me when I'm doing interviews. Time off is incredibly important to me. What's the use of making a great income if you can't get the time off to enjoy it? The culture about the use of PTO varies wildly between companies. A friend of mine worked somewhere that supposedly gave 20 days…
You CAN refuse once the contract arrives for signature, the interview is a lot also for the company to have argument to sell you to management as a worthy investment.
I admit I never take a guy talking about time off myself, because while I agree it's an important contractual part and something we must give as generously as we can, the fact he asked the first minute of our relationship means it's going to be painful for him and for us, because we're not a paradise company, things can be tough and high pressure (investment bank), people not nice on purpose and sometimes you have to do the right thing rather than the perfect thing, so compliant positive nearly sacrificial profiles will be happily surprised by what's still good while a dude asking "and holidays, 20 or 25 days" the first day will be very sad and burnt out by all the shit.
Re: Things I’ve learned in my 20 years as a software engineer
#378Earlier quoted context omitted.
> Agreed, I don't know why the industry (or people?) in general have a problem with accepting this abilities gap. Bias and poor processes. When people become reliant upon a technique or process to attain viability that means of execution becomes more important than the thing you are producing. As a result people will defend slow unproductive means of execution to the death. This is also a socially reinforced phenomen…
> It is completely realistic to achieve 10x (or even much greater) productivity and it isn’t challenging, but it requires abandonment of closely held ideas that are socially reinforced. OK, you piqued my curiosity. Can you elaborate?
Objective quick wins:
1) Less code. The less there is the less there is to debug and maintain. This applies to all code including dependencies, frameworks, abstractions, and decoration in your own code. If abandoning OOP means substantially less code then do it without question.
2) Iterate faster. If you have a build that takes 10 minutes and the next guy has a build that takes less than a minute they can fail 10x more frequently and achieve the same level of productivity.
3) Know your foundations with confidence. Things you rely upon become more of a barrier than a help given a long enough time line (shorter time line that could otherwise imagine).
4) The point of software is automation. If you find you are doing manual curation in the code you are likely wasting your productivity. An investment in better automation returns interest on the initial investment.
More opinionated personal preferences:
1) Unless you are writing in a language where you manage access to memory, such as C++ or Rust, abandon OOP. In garbage collected languages like Java, JavaScript, C# it only provides composition. It is a tremendous increase in code that does more harm in troubleshooting.
2) Prefer a statically typed language. As a JavaScript developer I have fallen in love with TypeScript. There are performance benefits to ensuring all primitives are strongly typed, but the developer performance benefits come from typing complex types. This is a quick win for defining execution of microservices and functional programming.
3) Prefer functional programming techniques and code portability. Code is less defective when it is highly predictable and explicit.
4) Save composition for last. Don't worry about how to put things together. Complete each micro-task in isolation, which forces a separation of concerns. Once everything is written putting things together becomes natural and typically works itself out.
5) Avoid pronouns in the code. The pronoun of JavaScript is the keyword this. Don't use it. You don't need it. I have been writing in this language full time for 13 years both at work and for personal projects. In that time I have really needed this only twice. The problem with pronouns is that they aren't clear (in either value or intention) by just reading the code, which takes substantially more time to interpret as a human.
6) Think in writing. You can save some refactoring effort by having a solid execution plan. The best way to plan is write things down as if to explain it to somebody who has no idea. If you cannot even explain it to yourself you won't be able to do in code.
Re: Things I’ve learned in my 20 years as a software engineer
#379Earlier quoted context omitted.
This is the opposite of how you should want any knowledge worker to think. If you believe that there’s some innate ability that makes people 10x better at a skill than you rather than hours of practice and study then you are much less likely to acquire that skill or learn those skills efficiently. You need to have a growth mindset to be an effective knowledge worker not a fixed mindset. This is discussed in the book…
> This is the opposite of how you should want any knowledge worker to think. Some of us don't choose our beliefs based on what is most convenient or most beneficial to us. Instead, we try to see the world for what it is, truthfully (or as close to a true representation of the world as it's possible to get, anyway). If having a realistic worldview hinders my ability to learn, then so be it. Not everything is about max…
Re: Things I’ve learned in my 20 years as a software engineer
#380> “if they ask about time off in the first interview then they are never going to be there!” The fact that this attitude is common scares me when I'm doing interviews. Time off is incredibly important to me. What's the use of making a great income if you can't get the time off to enjoy it? The culture about the use of PTO varies wildly between companies. A friend of mine worked somewhere that supposedly gave 20 days…