#27 - Link Roundup, 31 July 2020
Your interviews shouldn't be spoilable; Models for conflict resolution; "Dumb" processes?
Hi, everyone!
“How are you making sure that junior staff get access to mentoring when everyone is working from home?” was the most popular question on our first go at Ask Managers Anything.
I’ll give my answer, and please send in yours (with indications as to whether I can use your name or not). I’ll collect them and include them in the next roundup - help our entire community learn from what you’re doing.
Here, we’re wrestling with this for two of our more junior team members and I’m don’t have a great answer. We’ve been defining tasks at a much more fine-grained level (but still not too prescriptively about how to do them), doing more code review and giving more feedback, trying to have more conversations, but I’m not sure that’s enough. One of our team members (hi!) has looked into remote pair-programming tools but nothing looks particularly good.
So I’ll hand it over to you - what are you doing on your team to get your more junior staff the mentoring they’d regularly get?
Send in your responses (just hit reply, it only goes to me) and let me know if I can use your name and position when summarizing the responses. And submit any other questions you have.
Also, some of you may have noticed the URL - I’m slowly moving the newsletter to its own domain. More on this next week or so.
And now, on to the roundup:
Managing Teams
Your interviews shouldn’t be spoilable - Rafe Colburn
Could not be more in agreement on this - if answers to your interview questions can be spoiled/leaked, they might not be great interview questions.
At some point I want to do a longer post on hiring for research computing teams, but the points in Colborn’s article are exactly right. The purpose of an interview is to pull out and identify mismatches between the candidate and the role. If you’re relying on memorizable things for the interview - trick questions where someone may have seen the puzzle before, or simple leetcode-type algorithmic things like reversing a linked list, you’re basing your hiring decision on whether or not the candidate has happened to memorize the right thing. Unless you run a reversing-a-linked-list-as-a-service startup, this is likely not super informative as to how well they’ll perform the job.
On the other hand, having them talk about relevant problems they’ve already solved and how they decided on the necessary tradeoffs gives you some insight into how they’d work a related problem at your job. Digging deep into their technical knowledge - like the old “what happens when you type https://company.com” into the browser, and just keeping going deeper at each step is something you can’t study for except by learning exactly the knowledge you want them to have (shades of qualifying exams).
If you follow this advice, then as per Julia Evan’s piece covered two weeks ago, you can have and incrementally improve a document outlining what to expect from the interview and share it with the candidates.
Everyone’s Sad and Getting Sadder - Cassie McDaniel
Just a reminder that just because everyone’s settled into a new routine over the past months doesn’t mean everyone’s ok. Uncertainty (verging on chaos in places), danger, and loss of what used to be normal life is weighing heavily on a lot of our team members; especially as we’re hearing that (e.g.) Google is planning to keep people home until summer 2021. Keep it in mind, and try to be kind.
Models for conflict resolution – choose the right one for you - Andy Skipper, CTO Craft
Leading Through Conflict - Scott D. Hanton, Lab Manager
These two articles cover how to deal with conflict in the technical or laboratory workplace, each with several resources to follow up on.
(Disagreements are not themselves conflict! Technical people of any field in any team should be cheerfully, respectfully, disagreeing with each other all over the place.)
Both start, sensibly, with the fact that conflict comes from somewhere - there’s some underlying issue driving it, which may be quite a bit removed from the topics or events that the conflict seems to be about. And as managers, part of our job is to work at not just ensuring the current conflict is resolved but reducing the chances of the same fundamental issue causing future conflicts.
Skipper’s article concludes with several broad models of conflict resolution with descriptions and pointers to find out more, and some general reminders. Hanton’s article goes into more specifics about broad approaches - stay calm and focused on the big picture and overarching goals so as to avoid being dragged into the conflict, stay away from opinions and try to learn from the two competing vantage points, and in so learning try to find (and create) areas of common agreement that can be built upon. Some examples are provided.
One thing I like about Hanton’s article is it points out the good that can come out of conflict - by helping get the underlying issue resolved, by bringing forward multiple vantage points, by clearing the air and in the end potentially strengthening relationships. As long as conflicts don’t fester and become toxic, some disagreement and tension is normal and even helpful.
Managing Your Own Career
One person’s approach to writing - Amy Tabb
Writing is important for your career, whether it’s papers, posts for your teams website, talks, or what have you. For many of us, the biggest issue is sitting at a blank screen and getting some words out first:
My philosophy is that editing is easier than generating text.
If that’s your stumbling block, too, this is a useful read. Tabb recommends just getting words on to page first. Committing to writing something at a given time (and not worrying about quality) is one way to do it - I’ve started using 750 Words and essentially paying a website to be disappointed in me if I don’t do some writing each day. Tabb mentions other approaches - dictating something into your phone/computer to get ideas out, dumping text from other sources (emails, slack messages, etc) into a google doc to get started, etc. Then it’s “just” a matter of iteratively, relentlessly editing, possibly collaboratively. I’m with Tabb here - for me, editing and improving is way easier than getting some words out in the first place.
“How could they be so stupid?” - Lorin Hochstein
Creating Good Processes - Stay SaaSy
So a lot of the twitter hack of a couple of weeks ago came down, amongst other things, to sharing credentials on Slack. And while it’s tempting (and not entirely wrong) to dismiss this as basically user error, that it’s something that just shouldn’t have been done, fire those people and the problem is fixed, that’s not really a solution.
Bad practices typically result from workarounds to awkward processes. Think of desire paths - people want to go from A to B, and if the processes/walkways won’t get them there, well, they’ll find a direct route. There’s quite a literature (over 7,000 in this list) on workarounds in electronic health records systems, for instance.
As the Stay SaaSy blog points out, good processes make it easier to do the right thing than the wrong thing. If there are bad practices that keep coming up amongst users, maybe that’s a suggestion that a walkway needs to be built along that desire path.
Random
A nice description of recurrent neural networks without using neural networks - working straight from linear algebra and optimization.
GRUB2 bootloader buffer overrun vulnerability. Pretty much only a problem if you didn’t trust the people configuring your systems’ boot loaders and were relying on vendor signatures to make sure they were doing the right thing. Note that RHEL/CentOS patches for this are currently broken
A couple of recent articles on scaling relational databases, the first focussing on queries, the second on maintenance and storage.
Nice recent work on zfp for storing floating point arrays in compressed format. When I was in grad school I refused to believe this sort of thing was even possible.
basho - include javascript expressions (math, json handling) in bash scripts.
One of the things I really don’t like about Jupyter notebooks for exploratory development is that, unlike say RStudio, it doesn’t give the user an offramp to software development tools - unit tests, refactoring, version control - for maturing the code past the exploration phase. Microsoft’s VSCode team is doing good and important work merging notebooks with their IDE’s capabilities.
This online latex editor and diagram maker, Mathcha, looks really cool, has anyone used it?
Absurdly abusing AWS’s Route 53 as a globally-distributed key-value store.
Wait, on Mac you can install fonts with homebrew?