Run-time type checking is way more useful than I expected. I've been using it in Julia for 4 years now, and I expected it to provide ~25% of the value of the value of static type checking, but it's actually been closer to 90%.
I guess it's because when I'm developing, I'm constantly running code anyway, either through a notebook or tests. And the change -> run loop in Julia is not noticeably slower than the change -> compile loop in Scala.
The big exception is when I have code that can only reasonably be run on a remote machine and takes 5+ minutes to set up/execute. Then I'd really like more static analysis.
Ben Weinstein-Raun likes this.
Cracking Eggs
The best way to crack eggs is the highlander method: beat two eggs against each other. This overly easy method preserves rarely makes a mess, and is tolerant to a lot of different levels of force.
But don't just look on the sunny side: the highlander method has a major flaw. What do you do with the last egg? If you haven't hatched a plan, you may scramble to one of the inferior methods: counter or bowl.
The counter method is the safe option: it consistently produces a small mess, even if your strike is eggsceptional. But if you're ready to leave your shell, the bowl is for gamblers and dreamers: it can produce a mess-free egg if you aim things perfectly, but you'll end up with shell everywhere unless you crack it eggsactly right.
Ben Weinstein-Raun likes this.
One of the main questions I ask in interviews is basically "we have a data pipeline with goal X and constraints A, B, and C. How would you design it?" Depending on how they do, we'll discuss various tradeoffs, other possible goals/constraints, and so on.
This is based on a real system I designed and have been maintaining for ~5 years, and is also very similar to other systems I've run at previous jobs.
About half the candidates complain that it's not a realistic question.
Ben Weinstein-Raun likes this.
Satvik likes this.
Satvik likes this.
Ben Weinstein-Raun
in reply to Satvik • • •Satvik
in reply to Ben Weinstein-Raun • •I've asked for more specific feedback, and the complaints often come down to "nothing I've done has been like this" and "most of development is web development." That might be true, but we don't have a website/web app, and we're pretty specific about the work involved in both the job description and the phone interview.
(We have had other feedback that's helpful)
Generally, everyone who's done well on this question and joined has been a strong hire, though we've also hired some people who didn't do well that specific question. So I'm pretty sure it's a good question. I'm just a little amused/dismayed at how many people seem to think "realistic" means "web development."
Ben Weinstein-Raun likes this.