I would add to other comments to watch out for people that believe their own bullshit.
My current company I could tell that when the team lead talked about it being Agile and using latest tech that he really believed it.
Because he believed it I joined, but now I realise he was willfully deluded. So don't forget to watch out for this and verify what their practices are with questions.
He is just like you and me (nerds) doing the best he can at a role he isn't very suited for (public speaking). When you consider this and he still doesn't try and palm this stuff off I think he is doing great.
He sounds genuine, and he probably is, but he chose to keep it that way, he is not a poor nerd crumbling under pressure.
Think of it: he has over 20 year experience as an entrepreneur. Actually his whole career after school was being a business man, with the majority of it in high level position and with considerable success. During his career he had and still has to talk and negotiate with Heads of States, Nasa Scientists and Astronauts, Banks, other CEO of the most important companies in the world ( his peers ), ...
He chose to do the unveiling, he has the confidence to do that. If he thought he was not up to it or that his style was letting him down, he could have chosen any other unveiling strategy.
I think it's because he knows the presentation in and of itself is unimportant vs the takeaways delivered, so he doesn't bother wasting time on it specifically since it has low ROI given his speaking capabilities. And I suspect he dislikes acting/faking, so he wouldn't use precise scripts anyway.
I think the 'ethical' choice is some kind of a middle ground approach. It's true if everyone blocked all tracking and analytics the web could not exist as the largely free service that it does today. Websites also would struggle to improve their quality without the analytical data.
That's why I think the orbital strike option of block everything all the time is ultimately selfish. I think individuals should make some attempt to block ads/tracking that they think is itself immoral but not block what they consider fine.
For example, I don't block ads in google search results since they are unobtrusive and clearly marked as ads.
I don't think many people are saying that income inequality itself is the problem. It is the level of inequality and rate with which it is increasing that is the problem.
Also you can't say poverty is the only possible issue related to wealth distribution. Due to technology and globalization there is a tremendous amount of wealth. Exceedingly disproportionate distribution of it, far beyond effort/brilliance/whatever is unfair for the majority and IS a problem.
A lot of these posts don't actually address the problem of hiring and filtering people. If you think whiteboard tests or logic puzzles are not effective, why do you think this and what is a better alternative?
I personally think they are ok, but should more be a means to test if the candidate can reason intelligently and it shouldn't matter much if the end answer they get is correct or not.
Personally I think there are two good ways, in combination, to determining if a person is a good hire.
1. Ask questions about past projects. Probing questions to make sure their resume sounds accurate. Get a sense for how they solved problems in the past and explain them.
2. Give them something to code. On a computer. Some small example. Even better if you can try a pair programming exercise to see how they code and how they can communicate with others on a team.
Asking academic questions has been entirely useless in my opinion. I've worked with multiple people who can pass all the academic questions about algorithms and data set and couldn't write an application to save their live...and the vice versa too. I'd rather see how they can code, now and how they can communicate about projects (active and in the past).
I always try to find out if the candidate could - with enough information - solve the puzzle.
Can you, given time, figure out a good solution to the problem I am asking? How would you go about solving the problem? What is your methodology?
I agree with you. These sorts of problems are really to understand how someone reacts to a new idea that he or she does not understand. A lot of times people tell me that they don't know they answer to a problem, which is fine. Knowing that there are things that we don't know if a sign of maturity, and the curiosity to figure out how to solve a problem is what we should be looking for.
- DI doesn't add a lot of overhead. You don't really explain where it is EVIL, just that it is NOT STRICTLY NECESSARY ALL THE TIME.
- It handles complex cases such as dependency X should be a singleton, or inserting a layer of caching in front of dependency Y.
- It handles cases where dependency Z requires runtime logic to determine which implementation to use. You can do things like in PerformanceCriticalPackage use the HighPerformanceLogger and use some other logger else where. Want to switch these around, only need to touch the DI wiring logic.
- I find it keeps modules that use other modules "cleaner" without having any kind of dependency construction logic in them.
> Design patterns are an option, not a requirement
Using in DI is a design pattern and I agree all usage of design patterns need to be justified. However not using DI and manually creating dependencies is ALSO a design pattern! You need to justify using either, or something different.
Of the available options, using DI is generally the safest bet, especially if you want consistency throughout an application, since it's likely you will want this power somewhere.
My current company I could tell that when the team lead talked about it being Agile and using latest tech that he really believed it.
Because he believed it I joined, but now I realise he was willfully deluded. So don't forget to watch out for this and verify what their practices are with questions.