Computer Old Farts Forum
 help / color / mirror / Atom feed
* [COFF] Re: [TUHS] Interview question
       [not found] <20230102203646.GT25547@mcvoy.com>
@ 2023-01-02 21:13 ` Adam Thornton
  2023-01-03  2:58   ` Larry McVoy
  0 siblings, 1 reply; 14+ messages in thread
From: Adam Thornton @ 2023-01-02 21:13 UTC (permalink / raw)
  To: Larry McVoy, COFF



> On Jan 2, 2023, at 1:36 PM, Larry McVoy <lm@mcvoy.com> wrote:
> 
> The /bin/sh stuff made me think of an interview question I had for engineers,
> that a surprisingly few could pass:
> 
> "Tell me about something you wrote that was entirely you, the docs, the
> tests, the source, the installer, everything.  It doesn't have to be a
> big thing, but it has to have been successfully used by at least 10
> people who had no contact with you (other than to say thanks)."
> 
> Most people fail this.  I think the people who pass might look 
> positively on the v7 sh stuff.  But who knows?

Huh.  That is a surprisingly tricky question, depending on how you want to construe "entirely you".

v1 of https://atariage.com/software_page.php?SoftwareLabelID=2023 (before Thomas Jentzsch optimized the display engine) was ... stuff I did, but obviously neither the idea nor the execution was all that original, since I used Greg Troutman's Dark Mage source, which in turn was derived from Stellar Track.

There's a certain very large text adventure I once did, which I would certainly not bring up at a real job interview since it's riotously pornographic, but it is 200,000 words of source text, got surprisingly good reviews from many people (Emily Short loved it; Jimmy Maher hated it), and I put it all together myself, but the whole thing is a hodgepodge of T.S. Eliot and The Aeneid and then a few dozen other smaller sources, all tossed in a blender.  Not going to directly link it but it's not hard to find with a little Googling.  The arrangement is original, sure, but its charm--such as it is--may be that it is in some ways a love letter to early D&D and its "what if Gandalf and Conan teamed up to fight Cthulhu" sort of ethos.  (Jimmy Maher found the intertextuality very dense and unappetizing, whereas Emily Short really enjoyed the playfulness.)

There's https://github.com/athornton/uCA which fits the criteria but really is a very small wrapper around OpenSSL to automate SAN generation, which is a huge PITA with plain old OpenSSL.  Now, of course, you wouldn't bother with this, you'd just use Let's Encrypt, but that wasn't a thing yet.  Such as it is it's all me but it is entirely useless without a functional OpenSSL under it.

I'm not sure that ten other people ever used https://github.com/athornton/nerdle-solver because there may have been fewer than ten people other than me that found Nerdle all that fascinating.  It was fun talking with that community and finding out that the other solver I'm aware of was completely lexical, rather than actually doing the math.  But again: it's a thing that makes no sense without someone else having invented Nerdle first.

Or there's https://github.com/athornton/tmenu; probably also not actually used by ten other people, but it's the front-end of https://mvsevm.fsf.net (which certainly has been enjoyed by...uh...let's go with "at least a dozen" people).  It's original work, insofar as it goes, but it (like uCA) is really just glue between other things: a web server front end, a Javascript terminal emulator, and telnet/tn3270 clients.
 
Which of these, if any, do you count?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-02 21:13 ` [COFF] Re: [TUHS] Interview question Adam Thornton
@ 2023-01-03  2:58   ` Larry McVoy
  2023-01-03  6:06     ` Dave Horsfall
                       ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Larry McVoy @ 2023-01-03  2:58 UTC (permalink / raw)
  To: Adam Thornton; +Cc: COFF

On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote:
> 
> 
> > On Jan 2, 2023, at 1:36 PM, Larry McVoy <lm@mcvoy.com> wrote:
> > 
> > The /bin/sh stuff made me think of an interview question I had for engineers,
> > that a surprisingly few could pass:
> > 
> > "Tell me about something you wrote that was entirely you, the docs, the
> > tests, the source, the installer, everything.  It doesn't have to be a
> > big thing, but it has to have been successfully used by at least 10
> > people who had no contact with you (other than to say thanks)."
> > 
> > Most people fail this.  I think the people who pass might look 
> > positively on the v7 sh stuff.  But who knows?
> 
> Huh.  That is a surprisingly tricky question, depending on how you want to construe "entirely you".
>  
> Which of these, if any, do you count?

Any of them that are entirely done by you.  Here's an example.  I posted
move.c and copy.c to comp.sources.unix as an undergrad, a newbie.  They
let you do stuff like

	move =.c =.C++

and the = was the wild card.  .* in regexp.  They were a little better
than that because you could have more than one = and could expand with
something like \=2 \=1 (it's been 40 years, I might have the details 
wrong, still have the source, can post).  Just did

http://mcvoy.com/lm/move.shar

I know people used it because later in life it got mentioned.  But
literally noone ever asked me how to use it or install or anything.
It's a tiny thing but it meets what I was looking for.

Entirely you means entirely you.  If you have done that, you are in
a pretty small crowd.  
-- 
---
Larry McVoy           Retired to fishing          http://www.mcvoy.com/lm/boat

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-03  2:58   ` Larry McVoy
@ 2023-01-03  6:06     ` Dave Horsfall
  2023-01-03  6:16     ` Adam Thornton
  2023-01-03 15:57     ` Warner Losh
  2 siblings, 0 replies; 14+ messages in thread
From: Dave Horsfall @ 2023-01-03  6:06 UTC (permalink / raw)
  To: Computer Old Farts Followers

On Mon, 2 Jan 2023, Larry McVoy wrote:

> Any of them that are entirely done by you.  Here's an example.  I posted 
> move.c and copy.c to comp.sources.unix as an undergrad, a newbie.  They 
> let you do stuff like
> 
> 	move =.c =.C++

[..]

Many moons ago someone posted a script on aus.sources that did something 
like that i.e. based upon PIP; I'll try and dig it out.

-- Dave

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-03  2:58   ` Larry McVoy
  2023-01-03  6:06     ` Dave Horsfall
@ 2023-01-03  6:16     ` Adam Thornton
  2023-01-03 15:57     ` Warner Losh
  2 siblings, 0 replies; 14+ messages in thread
From: Adam Thornton @ 2023-01-03  6:16 UTC (permalink / raw)
  To: Larry McVoy; +Cc: COFF



> On Jan 2, 2023, at 7:58 PM, Larry McVoy <lm@mcvoy.com> wrote:
> 
> On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote:
>> 
>> 
>> Which of these, if any, do you count?
> 
> Any of them that are entirely done by you.

Well, then, all of the ones I listed, if you'll spot me the Fellowship Of The Ring Atari 2600 cartridge before Thomas Jentzsch got me a little more display space, even though the cartridge you can buy (and the sources available online) are the later version.

None of those are world-changing, and, for instance, I'm a lot more proud of the current state of JupyterHub Kubespawner, which wasn't mine to start with, but first I added per-user namespaces and upstreamed that, and then I changed it from threads to coroutines, and upstreamed _that_.  The second change has made it a lot more reliable for everyone (the first was useful for Rubin Observatory and people doing things like we do, but not generally useful for JupyterHub under Kubernetes).  But both of those were building on (a lot of) existing work and were also made a whole lot better by review commentary from my team.  Special thanks to Russ Allbery who was quoted on TUHS a couple days ago, who really, really helped with the thread->coroutine conversion.

Sure, I can do decent work on my own, but other people helping me out improves it immensely.  I know that I tend to: a) under-test, b) write huge functions and source files when I should be doing things with more granularity, c) write like it's 1979 and keystrokes are precious and use nondescriptive variable names which make things hard to read.  Review of my work helps with all of these.

Adam

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-03  2:58   ` Larry McVoy
  2023-01-03  6:06     ` Dave Horsfall
  2023-01-03  6:16     ` Adam Thornton
@ 2023-01-03 15:57     ` Warner Losh
  2023-01-03 19:53       ` segaloco via COFF
  2023-01-04  2:44       ` Bakul Shah
  2 siblings, 2 replies; 14+ messages in thread
From: Warner Losh @ 2023-01-03 15:57 UTC (permalink / raw)
  To: Larry McVoy; +Cc: COFF

[-- Attachment #1: Type: text/plain, Size: 1426 bytes --]

On Mon, Jan 2, 2023 at 7:59 PM Larry McVoy <lm@mcvoy.com> wrote:

> On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote:
> > Which of these, if any, do you count?
>
> Any of them that are entirely done by you.
>

With due respect, this seems like an impossible thing to have done. I think
it's an arbitrary question.

"No man is an Island" John Donne.

Nobody on this list can claim to have anything they did entirely by
themselves. Everybody used tools built by others. Everybody used an OS
built by others. Even people that did a full OS + all the tools used other
tools to boostrap that were done by others. They used hardware that was
designed by others, made from chips made by others from raw materials mined
by others.

We all "stand on the shoulders of giants"[*]. While I get the connection to
looking for someone that's independent, self sufficient, etc, it seems a
bit arbitrary. I've done a ton of work on the FreeBSD kernel, for example,
but it isn't all 100% me. Others have contributed to it, others have
reviewed my work, others have given me (or the project) bug fixes. That
project, as with so many others, are so much better due to the
collaboration that happened between people. In many ways that's more
important than doing something 100% yourself.

Warner

[*] "If I have seen further it is by standing on the sholders[sic] of
others" -- Isaac Newton in a 1675 letter to his rival Robert Hooke

[-- Attachment #2: Type: text/html, Size: 1963 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-03 15:57     ` Warner Losh
@ 2023-01-03 19:53       ` segaloco via COFF
  2023-01-04  2:44       ` Bakul Shah
  1 sibling, 0 replies; 14+ messages in thread
From: segaloco via COFF @ 2023-01-03 19:53 UTC (permalink / raw)
  To: Warner Losh; +Cc: COFF

[-- Attachment #1: Type: text/plain, Size: 4383 bytes --]

I like the way Carl Sagan put it:

"If you wish to make an apple pie from scratch, you must first invent the universe"

I've contended with this a lot in my experiences learning computing, programming, etc. Luckily my earliest interest was in embedded platforms (video game consoles specifically) so from an early point in my study I was already much familiar with the idea of a computer being a mindless piece of inorganic matter we overlay structure on in the form of programs.

What that's lead to though is a neverending desire to avoid cruft and outside resources in general, which I've thus far found impossible. Yeah I might replace a driver for a device, but that driver talks through a kernel someone else wrote. Yeah I might replace a kernel subsystem, but it still interacts with everything else. Heck, I might write a kernel, but I'm certainly not writing myself a new browser to run it, I'd be bound to at least providing the same interfaces as others to do anything effective. Even still, that kernel, running on a modern CPU, is probably sitting up on top of at the very least microcode and perhaps even a BIOS or other firmware, neither of which I control. Going even further, say I write a game for the Sega Mega Drive. That console maps the ROM cartridge into low-core, so from the moment the CPU hits the RESET vector, it's my code, and this still​ wouldn't be entirely my own. The algorithms internally applied by various ICs on the board based on what I put in the registers aren't mine. It's not like I'm manually bit blasting the analog CVBS signal being pooped out the back of the thing, someone at Ti and/or Sega decided how that works and packaged it in a nice little video display chip for me. I could write every lick of 68000 code that the CPU touches from poweron to poweroff and still wouldn't be solely responsible for the end result. I'm not responsible for determining efficient blitting routines, scrollplane population, FM synthesis calculations, analog signal generation, nor most of the synchronization. That belongs to engineers at Sega, Ti, and whoever else was involved.

This speaks to the necessity of good documentation, because any given part of a system becomes relevant when trying to understand it holistically and truly work "from scratch" on things, because any decision you don't make is still a decision you have to be aware of. There's no aspect of a design that won't be relevant to a consumer of that design at some point, that's why it's there after all. Even with side effects, it's better to understand them than not, as it's almost guaranteed if there is a corner that can be cut somewhere, not only is someone going to figure out how to cut it, they're going to make a mission critical decision based on it and blame the creator when it doesn't work.

- Matt G.
------- Original Message -------
On Tuesday, January 3rd, 2023 at 7:57 AM, Warner Losh <imp@bsdimp.com> wrote:

> On Mon, Jan 2, 2023 at 7:59 PM Larry McVoy <lm@mcvoy.com> wrote:
>
>> On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote:
>>> Which of these, if any, do you count?
>>
>> Any of them that are entirely done by you.
>
> With due respect, this seems like an impossible thing to have done. I think it's an arbitrary question.
>
> "No man is an Island" John Donne.
>
> Nobody on this list can claim to have anything they did entirely by themselves. Everybody used tools built by others. Everybody used an OS built by others. Even people that did a full OS + all the tools used other tools to boostrap that were done by others. They used hardware that was designed by others, made from chips made by others from raw materials mined by others.
>
> We all "stand on the shoulders of giants"[*]. While I get the connection to looking for someone that's independent, self sufficient, etc, it seems a bit arbitrary. I've done a ton of work on the FreeBSD kernel, for example, but it isn't all 100% me. Others have contributed to it, others have reviewed my work, others have given me (or the project) bug fixes. That project, as with so many others, are so much better due to the collaboration that happened between people. In many ways that's more important than doing something 100% yourself.
>
> Warner
>
> [*] "If I have seen further it is by standing on the sholders[sic] of others" -- Isaac Newton in a 1675 letter to his rival Robert Hooke

[-- Attachment #2: Type: text/html, Size: 5924 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-03 15:57     ` Warner Losh
  2023-01-03 19:53       ` segaloco via COFF
@ 2023-01-04  2:44       ` Bakul Shah
  2023-01-04  3:06         ` Larry McVoy
  1 sibling, 1 reply; 14+ messages in thread
From: Bakul Shah @ 2023-01-04  2:44 UTC (permalink / raw)
  To: Warner Losh; +Cc: COFF

[-- Attachment #1: Type: text/plain, Size: 2786 bytes --]

On Jan 3, 2023, at 7:57 AM, Warner Losh <imp@bsdimp.com> wrote:
> 
> 
> 
> On Mon, Jan 2, 2023 at 7:59 PM Larry McVoy <lm@mcvoy.com <mailto:lm@mcvoy.com>> wrote:
>> On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote:
>> > Which of these, if any, do you count?
>> 
>> Any of them that are entirely done by you. 
> 
> With due respect, this seems like an impossible thing to have done. I think it's an arbitrary question.

I see the point of Larry asking this. Presumably it is *one* of the questions he asks! There are a lot of smart people who don't know or don't have experience with how to deliver a product. Product delivery is a lot more than hacking up some code. It is writing good design and user documentation, thorough testing, lots of trial and error to make the UI/GUI as intuitive as possible, making it as bug free as possible, may be even dealing with customer bug reports and requests etc. etc. At least to me it would not be a pass/fail question (IMHO there is no point in asking such questions to an interviewee).

> "No man is an Island" John Donne.
> 
> Nobody on this list can claim to have anything they did entirely by themselves. Everybody used tools built by others. Everybody used an OS built by others. Even people that did a full OS + all the tools used other tools to boostrap that were done by others. They used hardware that was designed by others, made from chips made by others from raw materials mined by others.

Right but even with a complete set of tools and detailed plans not everyone can do good carpentry. It requires care, knowing your craft, knowing what shortcuts you can take, knowing who to ask for advice etc. etc. And it is a different challenge when you have to make a dozen matching chairs as opposed to one.

When I was interviewing people my job was to assess their experience, abilities & aptitude. Nobody is perfect so you have to find where they would be a good fit in some job for which there is an opening, as well as whether it is of sufficiently interesting/challenging for them etc.

> We all "stand on the shoulders of giants"[*]. While I get the connection to looking for someone that's independent, self sufficient, etc, it seems a bit arbitrary. I've done a ton of work on the FreeBSD kernel, for example, but it isn't all 100% me. Others have contributed to it, others have reviewed my work, others have given me (or the project) bug fixes. That project, as with so many others, are so much better due to the collaboration that happened between people. In many ways that's more important than doing something 100% yourself.
> 
> Warner
> 
> [*] "If I have seen further it is by standing on the sholders[sic] of others" -- Isaac Newton in a 1675 letter to his rival Robert Hooke




[-- Attachment #2: Type: text/html, Size: 3746 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04  2:44       ` Bakul Shah
@ 2023-01-04  3:06         ` Larry McVoy
  2023-01-04 15:42           ` Dan Cross
  0 siblings, 1 reply; 14+ messages in thread
From: Larry McVoy @ 2023-01-04  3:06 UTC (permalink / raw)
  To: Bakul Shah; +Cc: COFF

Bakul gets it.  "Entirely by you" does not mean "go get some sand
because you need to make some silicon ..."

"Entirely by you" means given a set of tools, show me what you did.
Just you.  Not your team, just you.

It's not an arbitrary question, Warner, it's giving people have done
it a chance to say so.  And weeding out the people who haven't.
Which is not a great way to sort people in general, it was a great
way to sort people for my 12 person company.  We needed people who
could do that, we were too small for people who couldn't.

And Bakul, yes, I asked a lot of other questions.  The only other one that
came up repeatedly was the "Safeway question".  What's that?  If you saw
a coworker at the store, do you go talk to them or do you hide in another
aisle and hope they don't see you?  There is your hire/don't hire answer.

Bill Moore's question was "If we need you to, will you sweep the floors?"

My 2 manager interview questions were:

If we hire you, who is going to come with you (good managers always have
people who love them and follow them.  Bad managers don't).

Tell me about the hardest time you had when you had to fire someone.
(I had people who wanted to be my VP of engineering who had never
had to fire anyone.  And it wasn't because they were awesome, it 
was because they had no experience).  Firing people, without it
blowing up in your face, is hard.  

On Tue, Jan 03, 2023 at 06:44:42PM -0800, Bakul Shah wrote:
> On Jan 3, 2023, at 7:57 AM, Warner Losh <imp@bsdimp.com> wrote:
> > On Mon, Jan 2, 2023 at 7:59 PM Larry McVoy <lm@mcvoy.com <mailto:lm@mcvoy.com>> wrote:
> >> On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote:
> >> > Which of these, if any, do you count?
> >> 
> >> Any of them that are entirely done by you. 
> > 
> > With due respect, this seems like an impossible thing to have done. I think it's an arbitrary question.
> 
> I see the point of Larry asking this. Presumably it is *one* of the questions he asks! There are a lot of smart people who don't know or don't have experience with how to deliver a product. Product delivery is a lot more than hacking up some code. It is writing good design and user documentation, thorough testing, lots of trial and error to make the UI/GUI as intuitive as possible, making it as bug free as possible, may be even dealing with customer bug reports and requests etc. etc. At least to me it would not be a pass/fail question (IMHO there is no point in asking such questions to an interviewee).
> 
> > "No man is an Island" John Donne.
> > 
> > Nobody on this list can claim to have anything they did entirely by themselves. Everybody used tools built by others. Everybody used an OS built by others. Even people that did a full OS + all the tools used other tools to boostrap that were done by others. They used hardware that was designed by others, made from chips made by others from raw materials mined by others.
> 
> Right but even with a complete set of tools and detailed plans not everyone can do good carpentry. It requires care, knowing your craft, knowing what shortcuts you can take, knowing who to ask for advice etc. etc. And it is a different challenge when you have to make a dozen matching chairs as opposed to one.
> 
> When I was interviewing people my job was to assess their experience, abilities & aptitude. Nobody is perfect so you have to find where they would be a good fit in some job for which there is an opening, as well as whether it is of sufficiently interesting/challenging for them etc.
> 
> > We all "stand on the shoulders of giants"[*]. While I get the connection to looking for someone that's independent, self sufficient, etc, it seems a bit arbitrary. I've done a ton of work on the FreeBSD kernel, for example, but it isn't all 100% me. Others have contributed to it, others have reviewed my work, others have given me (or the project) bug fixes. That project, as with so many others, are so much better due to the collaboration that happened between people. In many ways that's more important than doing something 100% yourself.
> > 
> > Warner
> > 
> > [*] "If I have seen further it is by standing on the sholders[sic] of others" -- Isaac Newton in a 1675 letter to his rival Robert Hooke
> 
> 
> 

-- 
---
Larry McVoy           Retired to fishing          http://www.mcvoy.com/lm/boat

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04  3:06         ` Larry McVoy
@ 2023-01-04 15:42           ` Dan Cross
  2023-01-04 16:00             ` Warner Losh
  2023-01-04 16:06             ` Larry McVoy
  0 siblings, 2 replies; 14+ messages in thread
From: Dan Cross @ 2023-01-04 15:42 UTC (permalink / raw)
  To: Larry McVoy; +Cc: COFF

On Tue, Jan 3, 2023 at 10:06 PM Larry McVoy <lm@mcvoy.com> wrote:
> Bakul gets it.  "Entirely by you" does not mean "go get some sand
> because you need to make some silicon ..."
>
> "Entirely by you" means given a set of tools, show me what you did.
> Just you.  Not your team, just you.

Hmm. I've worked on projects where all code had to be reviewed prior
to submission into a shared repository (though there was a carve-out
for a little experimental area). In that context, how does one define
"just you"?

> It's not an arbitrary question, Warner, it's giving people have done
> it a chance to say so.  And weeding out the people who haven't.
>
> Which is not a great way to sort people in general, it was a great
> way to sort people for my 12 person company.  We needed people who
> could do that, we were too small for people who couldn't.

It seems to me that the outcome is more important than the specifics
of this exercise. Reading between the lines, it sounds like you were
using this as a proxy for whether someone can come in and start
contributing largely unguided and without a lot of handholding, and
drive something to completion without a lot of external help. That's
all well and good, but I don't know if this is the best way to assess
that; as worded, it sounds mostly like you're asking if someone has
built some tool explicitly used by (at least?) a few other people, but
some people make much bigger contributions with much higher impact in
very complex systems without ever doing that.

I think Warner's point is sound: you're building something within a
framework/system/design/whatever that's been shaped by many others
before you; what is the meaning of an individual contribution in that
sense? In some sense, I've written software used by billions of
people, but they would never know that. I remember when my late mother
called me once and said, "I saw that Google was in the news for doing
<something>, was that you?" and I replied, "mom, if you ever hear
about anything that I did at Google in the news, then I messed up very
badly and I'm really in a lot of trouble and probably looking for a
new job." "Oh," my crestfallen mother said, "I told my friends you
worked on that." "Sorry, ma." Internally, I might have built something
or changed something used by tens of thousands of engineers,
well-documented, etc, but again, most wouldn't think about it that
way; most of them wouldn't even know. Warner's example of working
inside the FreeBSD kernel similarly: that's used in all kinds of
places by many, many people, but most don't give a second thought to
wondering how it works.

> And Bakul, yes, I asked a lot of other questions.  The only other one that
> came up repeatedly was the "Safeway question".  What's that?  If you saw
> a coworker at the store, do you go talk to them or do you hide in another
> aisle and hope they don't see you?  There is your hire/don't hire answer.

Ha! Which is the right answer? :-)

Seriously, though, this seems highly contextually dependent: I see
folks I now around town not infrequently, and I generally smile and
nod or say hello if I catch their eye, but if they look like they're
in a rush or are shepherding a couple of screaming kids, I'm not going
to bother them.

> Bill Moore's question was "If we need you to, will you sweep the floors?"

This better be well contextualized. Does this mean, "we're a small
organization and everyone needs to be willing to pitch in as needed?"
or does it mean, "are you willing to prostrate yourself before the
altar of this organization in order to prove yourself?" If the former,
sure. If the latter, then no: sorry, I've done my time in more ways
than one, including literally sweeping and mopping the floors (and
cleaning the head) in the Marines. There's a tendency in technology to
basically haze the friendly new guy; I'm done with that.

        - Dan C.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04 15:42           ` Dan Cross
@ 2023-01-04 16:00             ` Warner Losh
  2023-01-04 16:52               ` Dan Cross
  2023-01-04 17:51               ` Adam Thornton
  2023-01-04 16:06             ` Larry McVoy
  1 sibling, 2 replies; 14+ messages in thread
From: Warner Losh @ 2023-01-04 16:00 UTC (permalink / raw)
  To: Dan Cross; +Cc: COFF

[-- Attachment #1: Type: text/plain, Size: 2054 bytes --]

On Wed, Jan 4, 2023 at 8:44 AM Dan Cross <crossd@gmail.com> wrote:

> > Bill Moore's question was "If we need you to, will you sweep the floors?"
>
> This better be well contextualized. Does this mean, "we're a small
> organization and everyone needs to be willing to pitch in as needed?"
> or does it mean, "are you willing to prostrate yourself before the
> altar of this organization in order to prove yourself?" If the former,
> sure. If the latter, then no: sorry, I've done my time in more ways
> than one, including literally sweeping and mopping the floors (and
> cleaning the head) in the Marines. There's a tendency in technology to
> basically haze the friendly new guy; I'm done with that.
>


The best programmers I've ever worked with understood teamwork and the team
produced something way better than what any one of us could do (this was
back in the days before egoless programming, CI, code reviews, etc), so we
invented the bits that worked for us on the fly). The thing is, every
single person on that team could (and often did) work on any aspect of the
product, be it the documentation (though the tech writers usually did
that), the code (the programmers usually did that, but the tech writers
committed fixes to the example code that was in the book), to the printer
being out of toner / paper, the soda supply in closet running out, the
snacks that we got at costco running low, stuffing product into boxes to
ship to customers, handling customer calls, dealing with talking to
customers at a technical conference in a sales booth, presenting papers at
conferences, etc. Nobody did anything entirely by themselves. We
interviewed several 'lone wolves' that had done it all, but found the one
we hired couldn't integrate into our pack because they couldn't be part of
a team and put the team first and the group needs ahead of their own.
That's the Genesis of my mistrust of this question, or at least the premise
behind it. And Dan, these 'scut tasks' weren't about hazing, but just about
doing what needed to be done...

Warner

[-- Attachment #2: Type: text/html, Size: 2535 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04 15:42           ` Dan Cross
  2023-01-04 16:00             ` Warner Losh
@ 2023-01-04 16:06             ` Larry McVoy
  2023-01-04 16:58               ` segaloco via COFF
  1 sibling, 1 reply; 14+ messages in thread
From: Larry McVoy @ 2023-01-04 16:06 UTC (permalink / raw)
  To: Dan Cross; +Cc: COFF

I think people are bike shedding this so I'm gonna let it go.  What 
worked for me might not work for you, so be it.  You guys have fun.

On Wed, Jan 04, 2023 at 10:42:03AM -0500, Dan Cross wrote:
> On Tue, Jan 3, 2023 at 10:06 PM Larry McVoy <lm@mcvoy.com> wrote:
> > Bakul gets it.  "Entirely by you" does not mean "go get some sand
> > because you need to make some silicon ..."
> >
> > "Entirely by you" means given a set of tools, show me what you did.
> > Just you.  Not your team, just you.
> 
> Hmm. I've worked on projects where all code had to be reviewed prior
> to submission into a shared repository (though there was a carve-out
> for a little experimental area). In that context, how does one define
> "just you"?
> 
> > It's not an arbitrary question, Warner, it's giving people have done
> > it a chance to say so.  And weeding out the people who haven't.
> >
> > Which is not a great way to sort people in general, it was a great
> > way to sort people for my 12 person company.  We needed people who
> > could do that, we were too small for people who couldn't.
> 
> It seems to me that the outcome is more important than the specifics
> of this exercise. Reading between the lines, it sounds like you were
> using this as a proxy for whether someone can come in and start
> contributing largely unguided and without a lot of handholding, and
> drive something to completion without a lot of external help. That's
> all well and good, but I don't know if this is the best way to assess
> that; as worded, it sounds mostly like you're asking if someone has
> built some tool explicitly used by (at least?) a few other people, but
> some people make much bigger contributions with much higher impact in
> very complex systems without ever doing that.
> 
> I think Warner's point is sound: you're building something within a
> framework/system/design/whatever that's been shaped by many others
> before you; what is the meaning of an individual contribution in that
> sense? In some sense, I've written software used by billions of
> people, but they would never know that. I remember when my late mother
> called me once and said, "I saw that Google was in the news for doing
> <something>, was that you?" and I replied, "mom, if you ever hear
> about anything that I did at Google in the news, then I messed up very
> badly and I'm really in a lot of trouble and probably looking for a
> new job." "Oh," my crestfallen mother said, "I told my friends you
> worked on that." "Sorry, ma." Internally, I might have built something
> or changed something used by tens of thousands of engineers,
> well-documented, etc, but again, most wouldn't think about it that
> way; most of them wouldn't even know. Warner's example of working
> inside the FreeBSD kernel similarly: that's used in all kinds of
> places by many, many people, but most don't give a second thought to
> wondering how it works.
> 
> > And Bakul, yes, I asked a lot of other questions.  The only other one that
> > came up repeatedly was the "Safeway question".  What's that?  If you saw
> > a coworker at the store, do you go talk to them or do you hide in another
> > aisle and hope they don't see you?  There is your hire/don't hire answer.
> 
> Ha! Which is the right answer? :-)
> 
> Seriously, though, this seems highly contextually dependent: I see
> folks I now around town not infrequently, and I generally smile and
> nod or say hello if I catch their eye, but if they look like they're
> in a rush or are shepherding a couple of screaming kids, I'm not going
> to bother them.
> 
> > Bill Moore's question was "If we need you to, will you sweep the floors?"
> 
> This better be well contextualized. Does this mean, "we're a small
> organization and everyone needs to be willing to pitch in as needed?"
> or does it mean, "are you willing to prostrate yourself before the
> altar of this organization in order to prove yourself?" If the former,
> sure. If the latter, then no: sorry, I've done my time in more ways
> than one, including literally sweeping and mopping the floors (and
> cleaning the head) in the Marines. There's a tendency in technology to
> basically haze the friendly new guy; I'm done with that.
> 
>         - Dan C.

-- 
---
Larry McVoy           Retired to fishing          http://www.mcvoy.com/lm/boat

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04 16:00             ` Warner Losh
@ 2023-01-04 16:52               ` Dan Cross
  2023-01-04 17:51               ` Adam Thornton
  1 sibling, 0 replies; 14+ messages in thread
From: Dan Cross @ 2023-01-04 16:52 UTC (permalink / raw)
  To: Warner Losh; +Cc: COFF

On Wed, Jan 4, 2023 at 11:00 AM Warner Losh <imp@bsdimp.com> wrote:
> On Wed, Jan 4, 2023 at 8:44 AM Dan Cross <crossd@gmail.com> wrote:
>> > Bill Moore's question was "If we need you to, will you sweep the floors?"
>>
>> This better be well contextualized. Does this mean, "we're a small
>> organization and everyone needs to be willing to pitch in as needed?"
>> or does it mean, "are you willing to prostrate yourself before the
>> altar of this organization in order to prove yourself?" If the former,
>> sure. If the latter, then no: sorry, I've done my time in more ways
>> than one, including literally sweeping and mopping the floors (and
>> cleaning the head) in the Marines. There's a tendency in technology to
>> basically haze the friendly new guy; I'm done with that.
>
> The best programmers I've ever worked with understood teamwork and the team produced something way better than what any one of us could do (this was back in the days before egoless programming, CI, code reviews, etc), so we invented the bits that worked for us on the fly). The thing is, every single person on that team could (and often did) work on any aspect of the product, be it the documentation (though the tech writers usually did that), the code (the programmers usually did that, but the tech writers committed fixes to the example code that was in the book), to the printer being out of toner / paper, the soda supply in closet running out, the snacks that we got at costco running low, stuffing product into boxes to ship to customers, handling customer calls, dealing with talking to customers at a technical conference in a sales booth, presenting papers at conferences, etc. Nobody did anything entirely by themselves. We interviewed several 'lone wolves' that had done it all, but found the one we hired couldn't integrate into our pack because they couldn't be part of a team and put the team first and the group needs ahead of their own. That's the Genesis of my mistrust of this question, or at least the premise behind it. And Dan, these 'scut tasks' weren't about hazing, but just about doing what needed to be done...

Perhaps I was not clear. What you are describing sounds more like what
I meant when I wrote, 'does this mean, "we're a small organization and
everyone needs to be willing to pitch in as needed?"' That's fine; if
it needs to be done, it needs to be done. Sometimes that _may_ mean
literally sweeping the floor.

But too often I've observed what I've taken to calling, "the old
school Unix mentality": putting people in a pecking order based on
mostly arbitrary criteria, forming an in-group (and implicitly an
out-group) and expecting people to grovel to get into the in-group.
This is the opposite of teamwork, it's garbage treatment of people,
and I'm not interested in it anymore.

Here's a literal example of what I mean. From a "pattern" actually
called "Sweep the Floor" at
https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch04.html:

    | Playing the role of a traditional apprentice also helped me to
    | build up humility and respect for the senior craftsmen. I remember
    | Uncle Bob Martin came into a room, saw the trash overflowing,
    | and changed the garbage bag. My mentor scolded me and
    | appropriately said that it is not the job of the master craftsman to
    | take out the garbage. It is a sign of respect and piety that was an
    | important lesson for me to learn.

Yeah, no. Robert C Martin can take out his own trash, thank you very
much. And the "mentor" can hire custodial workers. This is highly
inappropriate and the person who wrote this should have walked. Again,
I've paid my dues in this department.

        - Dan C.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04 16:06             ` Larry McVoy
@ 2023-01-04 16:58               ` segaloco via COFF
  0 siblings, 0 replies; 14+ messages in thread
From: segaloco via COFF @ 2023-01-04 16:58 UTC (permalink / raw)
  To: Larry McVoy; +Cc: COFF

I do like the conversation that has spun up here and I think a good takeaway is that different projects require different workmanship.  Different goals hinge on different ideas of what a team should look like and how work is delegated.

The question on what one would do upon seeing a coworker some random place out in public is quite an interesting one these days what with remote work and all.  Admittedly there are a few coworkers I've done on-site assignments with in the past that I'd be encouraged to know were around and bump into every now and then, but by and large it would feel uncomfortable and awkward just by default.  As grateful as I am to have the sort of flexibility this work style allows, there's a part of me that feels hobbled by not having a big table to gather the team around and a white board at the end of the room to scribble all sorts of ideas on.  Oh for the day that I could find a local software job...

As for the sweeping, I'll echo other sentiments that it depends on whether it's a genuine need or an exercise in authority.  The former, of course, I care about the cleanliness of my space and would be one of the first to grab a mop when there's a problem.  On the flip side though, I've never sat well with completely arbitrary authority, and so if I see a legitimate reason to not do something, I most certainly will say so.  Granted, I've been of the persuasion for a while that the mindless drone direction is not the key to success and that sometimes you just have to exercise the expertise you've been trusted with, even if that means telling the boss something they don't want to hear.  They pay you to be the best at what you do (hopefully) so should hopefully expect dissent when it is warranted.  This was an area that took some adjusting to in my early working days, that a good supervisor is encouraging of criticism or alternative suggestions when those come from a place of sound reasoning, and that only a fool would dictate over any and all concerns voiced by those who will be doing the work.

- Matt G.

------- Original Message -------
On Wednesday, January 4th, 2023 at 8:06 AM, Larry McVoy <lm@mcvoy.com> wrote:


> I think people are bike shedding this so I'm gonna let it go. What
> worked for me might not work for you, so be it. You guys have fun.
> 
> On Wed, Jan 04, 2023 at 10:42:03AM -0500, Dan Cross wrote:
> 
> > On Tue, Jan 3, 2023 at 10:06 PM Larry McVoy lm@mcvoy.com wrote:
> > 
> > > Bakul gets it. "Entirely by you" does not mean "go get some sand
> > > because you need to make some silicon ..."
> > > 
> > > "Entirely by you" means given a set of tools, show me what you did.
> > > Just you. Not your team, just you.
> > 
> > Hmm. I've worked on projects where all code had to be reviewed prior
> > to submission into a shared repository (though there was a carve-out
> > for a little experimental area). In that context, how does one define
> > "just you"?
> > 
> > > It's not an arbitrary question, Warner, it's giving people have done
> > > it a chance to say so. And weeding out the people who haven't.
> > > 
> > > Which is not a great way to sort people in general, it was a great
> > > way to sort people for my 12 person company. We needed people who
> > > could do that, we were too small for people who couldn't.
> > 
> > It seems to me that the outcome is more important than the specifics
> > of this exercise. Reading between the lines, it sounds like you were
> > using this as a proxy for whether someone can come in and start
> > contributing largely unguided and without a lot of handholding, and
> > drive something to completion without a lot of external help. That's
> > all well and good, but I don't know if this is the best way to assess
> > that; as worded, it sounds mostly like you're asking if someone has
> > built some tool explicitly used by (at least?) a few other people, but
> > some people make much bigger contributions with much higher impact in
> > very complex systems without ever doing that.
> > 
> > I think Warner's point is sound: you're building something within a
> > framework/system/design/whatever that's been shaped by many others
> > before you; what is the meaning of an individual contribution in that
> > sense? In some sense, I've written software used by billions of
> > people, but they would never know that. I remember when my late mother
> > called me once and said, "I saw that Google was in the news for doing
> > <something>, was that you?" and I replied, "mom, if you ever hear
> > about anything that I did at Google in the news, then I messed up very
> > badly and I'm really in a lot of trouble and probably looking for a
> > new job." "Oh," my crestfallen mother said, "I told my friends you
> > worked on that." "Sorry, ma." Internally, I might have built something
> > or changed something used by tens of thousands of engineers,
> > well-documented, etc, but again, most wouldn't think about it that
> > way; most of them wouldn't even know. Warner's example of working
> > inside the FreeBSD kernel similarly: that's used in all kinds of
> > places by many, many people, but most don't give a second thought to
> > wondering how it works.
> > 
> > > And Bakul, yes, I asked a lot of other questions. The only other one that
> > > came up repeatedly was the "Safeway question". What's that? If you saw
> > > a coworker at the store, do you go talk to them or do you hide in another
> > > aisle and hope they don't see you? There is your hire/don't hire answer.
> > 
> > Ha! Which is the right answer? :-)
> > 
> > Seriously, though, this seems highly contextually dependent: I see
> > folks I now around town not infrequently, and I generally smile and
> > nod or say hello if I catch their eye, but if they look like they're
> > in a rush or are shepherding a couple of screaming kids, I'm not going
> > to bother them.
> > 
> > > Bill Moore's question was "If we need you to, will you sweep the floors?"
> > 
> > This better be well contextualized. Does this mean, "we're a small
> > organization and everyone needs to be willing to pitch in as needed?"
> > or does it mean, "are you willing to prostrate yourself before the
> > altar of this organization in order to prove yourself?" If the former,
> > sure. If the latter, then no: sorry, I've done my time in more ways
> > than one, including literally sweeping and mopping the floors (and
> > cleaning the head) in the Marines. There's a tendency in technology to
> > basically haze the friendly new guy; I'm done with that.
> > 
> > - Dan C.
> 
> 
> --
> ---
> Larry McVoy Retired to fishing http://www.mcvoy.com/lm/boat

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [COFF] Re: [TUHS] Interview question
  2023-01-04 16:00             ` Warner Losh
  2023-01-04 16:52               ` Dan Cross
@ 2023-01-04 17:51               ` Adam Thornton
  1 sibling, 0 replies; 14+ messages in thread
From: Adam Thornton @ 2023-01-04 17:51 UTC (permalink / raw)
  To: Warner Losh; +Cc: COFF



> On Jan 4, 2023, at 9:00 AM, Warner Losh <imp@bsdimp.com> wrote:
> 
> The best programmers I've ever worked with understood teamwork and the team produced something way better than what any one of us could do (this was back in the days before egoless programming, CI, code reviews, etc), so we invented the bits that worked for us on the fly). The thing is, every single person on that team could (and often did) work on any aspect of the product, be it the documentation (though the tech writers usually did that), the code (the programmers usually did that, but the tech writers committed fixes to the example code that was in the book), to the printer being out of toner / paper, the soda supply in closet running out, the snacks that we got at costco running low, stuffing product into boxes to ship to customers, handling customer calls, dealing with talking to customers at a technical conference in a sales booth, presenting papers at conferences, etc. Nobody did anything entirely by themselves. We interviewed several 'lone wolves' that had done it all, but found the one we hired couldn't integrate into our pack because they couldn't be part of a team and put the team first and the group needs ahead of their own. That's the Genesis of my mistrust of this question, or at least the premise behind it. And Dan, these 'scut tasks' weren't about hazing, but just about doing what needed to be done...

One of the things that makes working in my team at the Rubin Observatory the best job I've ever had is that our manager is brilliant at hiring smart generalists who can play nice together.  It's not that we can all do everything: I'm pretty terrible at RDBM stuff, for instance (I have learned a fair bit about time-series databases in the last year), but in a pinch, we can step in and try and get each other unstuck, and between all of us we have a lot of experience and our hunches have gotten pretty good.

And honestly, it's just a lot more fun to have other people to bounce ideas off of and to make the stuff I'm writing better through thoughtful code reviews.  Sure, I have done solo projects that saw the light of day, some very very large (that text adventure is the second-biggest Inform 7 project I'm aware of, and it took a decade or so of free-time screwing around, on and off; it's got a good-sized novella, anyway, of text displayed to the player, and all the logic wrapped around that probably doubles the size[*]), but the stuff I am most proud of currently (which is the conversion of the JupyterHub Kubespawner to coroutines) was a maintenance project.

I didn't own the original codebase, my work went through several rounds of internal review before we submitted it upstream, and then it went through a couple more rounds of review with the project maintainers before they accepted it.  But accept it they did, and our spawn error rate is less than 10% of what it was with the thread-based version.  And to get that last 10% down significantly farther we're going to have to abandon their spawning model entirely, which is the right decision for the Rubin Observatory but almost certainly the wrong one for the vast majority of sites who want to run JupyterHub/Lab under K8s.

Adam

[*] Inform 7 is a weird language.  It's fundamentally declarative, and in some sense wants to make the experience of writing a text adventure a lot like the experience of playing a text adventure.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-01-04 17:53 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20230102203646.GT25547@mcvoy.com>
2023-01-02 21:13 ` [COFF] Re: [TUHS] Interview question Adam Thornton
2023-01-03  2:58   ` Larry McVoy
2023-01-03  6:06     ` Dave Horsfall
2023-01-03  6:16     ` Adam Thornton
2023-01-03 15:57     ` Warner Losh
2023-01-03 19:53       ` segaloco via COFF
2023-01-04  2:44       ` Bakul Shah
2023-01-04  3:06         ` Larry McVoy
2023-01-04 15:42           ` Dan Cross
2023-01-04 16:00             ` Warner Losh
2023-01-04 16:52               ` Dan Cross
2023-01-04 17:51               ` Adam Thornton
2023-01-04 16:06             ` Larry McVoy
2023-01-04 16:58               ` segaloco via COFF

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).