1. 3

    Just have your clients reconnect every 10 minutes or so?

    1. 2

      Just restart whichever server has the highest load every 10 minutes. Solves memory leaks too.

      1. 1

        Or listen to a certain response from the server and only then reconnect. That way you only need to reconnect on demand. Still this is a hackish kind of way to “solve” the problem

      1. 3

        I also really struggle with technical interviews. The timed take-home tests are probably my weakest area right now, it is something about that clock ticking that quite literally makes my hands start shaking. I have been writing code for 20 years, the last 10 years in some kind of lead/staff role. I have recently worked my way through all the exercism puzzles and yet… add a clock and I can’t function. These are new to me since they weren’t around the last time I interviewed - or not as prevalent.

        I don’t think it is about pressure, one area I thrive is when there is a critical outage and the solution requires quick and decisive actions - that doesn’t bother me.

        Anyway, FWIW - I really like your suggestions here but what I have come to terms with is that if that is how they want to hire and if these are the things they care about - I probably am not going to be a good fit for the company. It does not take all of the sting out of the rejections, but it does help in reflection. I keep doing them because I do believe I can get better if I practice. But in the meantime, I just trust that the right opportunity will come along.

        1. 3

          That’s really interesting as many people are the exact opposite. The stress of not having a time limit causes anxiety because you’re constantly wondering how much time and energy the rest of the applicants are spending on this challenge and whether your submission will look bad in comparison.

          I have a horse in this race as I run what I believe to be the first time-limited technical challenge tool that allows you to use your own editor/IDE. - https://takehome.io

          I think what this underscores is the author’s point about building flexibility into your process that can allow for the different preferences of your candidates. There’s no one-size-fits-all interview technique.

          1. 2

            How do you, at takehome, make sure candidates don’t fiddle with the git history so they maybe look like they performed better than they did?

            1. 1

              What do you mean by fiddle?

              If just rebasing, moving commits around, etc. to make the commit history look Good(TM), when you’re worried that your natural workflow looks unprofessional e.g. if it’s anything like mine:

              git add -A && git commit -m "more stuf" && git push
              git add -A && git commit -m "dang" && git push
              git add -A && git commit -m "ttt" && git push
              

              I don’t see that as a problem. The end result is a clean commit history - whether it happened during the writing of the code, or after the fact, is irrelevant - the candidate demonstrated that they could A) write a functional POC and B) release it with (eventually) good commit history.

              Also, the above disorganized git commits I find are almost unavoidable for “first commit” style POCs, when there is no codebase.

              Once the codebase is established, maybe then creating clean commits is expected as a skill, when working with a team on a large codebase - but even so you can do dirty crap in a branch and then fix the commits before creating a PR.

              1. 1

                My understanding of takehome is you use git (partly) to make sure assignments are done inside a desired schedule. But since you can edit git history, people can easily use three hours but edit the history to make it look like they used two.

                But maybe I misunderstood what takehome uses git for?

                1. 1

                  Ah, I see - didn’t think of time limit cheating.

              2. 1

                Takehome has a custom git server implementation. When the candidate fetches the repository from their unique URL a timer starts. When that timer expires, the git server stops accepting pushes from the candidate into that repo.

                While the submission window is open they’re welcome to fiddle with the history all they like. All I care about is that they didn’t spend longer than allowed writing their response.

                1. 1

                  That makes sense. I thought you where relying on normal git history to track time.

          1. 8

            It feels like all our best engineers are tied up building programs-for-programmers-to-program-programs-for-programmers.

            Many programmers are under-employed by the ‘real world’. They actually really want to do the type of work that you do, but don’t know how to find those opportunities, or it involves a significant amount of risk. So they solve their own problems, because they are denied that from 9-5.

            I think there’s a huge opportunity here: a lot of what we call business is not actually that hard, it’s just veiled in credentials and bullshit. If someone set out to make a course to commoditize the MBA (as it were) and teach programmers how to do market research, talk to potential users, and be create their own opportunities, we could create a small, thriving culture of indie technologist-business types.

            At the age of 37, I’m already sick of working on other people’s dreams.

            1. 5

              Risk is definitely a factor. Over the course of my career I’ve created space to experiment with these kinds of things. That’s a privileged position and I acknowledge that.

              I actually did an undergrad business degree years ago. I don’t think there’s much of that in these products though. Maybe it helped shape my mindset, though. “Market research” in this small context is just “talking to people”. It’s looks much less like the market research I learned in uni than it does the user interactions discussed in the agile manifesto and the original extreme programming principles.

              Reading a few lean startup books and then giving it a go a few times is probably all the MBA you need at this level. Managing a multi thousand dollar company is much easier than a multi million one.

              1. 2

                Thanks for the reply. Any lean startup books you like?

                Meant to also say, thanks for the article. Looking forward to more entries!

                1. 3

                  Thanks! Personally I haven’t read any lean-specific books. I leant on HN posts, blogs, podcasts, etc for that stuff.

                  The early Free Agents podcasts are good.

            1. 8

              My main question is, how do you get to that place, and how do you find those clients? And how do you weed the promising ones from “do me good for cheapest possible”: is it just by putting hourly rate high enough? I’d guess you are, or at least started as, a consultant/freelancer? I suppose this requires some particular personal traits, being ok with working in non-9-to-5 environment, chasing clients etc.? Also, I really respect and admire what you’re doing; I think a lot of things you gloss over are not that easy to achieve.

              1. 4

                I think the way to find opportunities is to talk to lots of people and keep your eyes open. The opportunities are out there but often we look past them.

                The steel distributor gig was posted on the jobs channel of a Slack community I’m a part of. I got in touch and pursued the opportunity.

                The ski club thing came about because I offered to help out on the board of my club. They approached me because they knew I had tech skills and was personable.

                Just try and network as much as you’re able to create flow, I guess.

                As for weeding out time wasters a high day rate definitely helps. Clients get a lot more focused about what they need when it hurts a bit. The trade-off is that you need to make sure you’re equally focused and you make every work day count. Split your down time between looking after your family/self and investing in future revenue streams, too.

                1. 2

                  Without bias: that sounds like a typical consulting business, with the commensurate sales & business skills required.

                  1. 2

                    Hm; so, isn’t your story here basically what every freelancing/consulting programmer is doing?

                  2. 2

                    Same here, I would like to know how to find this type of clients too.