6 ms·
We (https://obvious.in https://obvious.in) documented our entire hiring process on our Playbook (https://playbook.obvious.in/hiring/hiring-process/engineering-h
by vinaysshenoy 6y ago
We (https://obvious.in https://obvious.in) documented our entire hiring process on our Playbook (https://playbook.obvious.in/hiring/hiring-process/engineering-hiring https://playbook.obvious.in/hiring/hiring-process/engineerin...).
Took us about a week to write everything down the first time and then we continuously updated it until it reached the current state.
We had the advantage of being a "public by default" company, so there was no need for approvals of any sort.
- catsarebetter 6y agoOh nice, you know it does have an interesting effect on me of making Obvious a more enticing place to apply... Has this improved the quality of interviews and/or applicants?
- vinaysshenoy 6y agoIt's hard for us to tell since this was the first time we were doing an "official" interview for hiring.
- gozzoo 6y ago> We expect you to use git, commit code as you go along, and build the app iteratively -- just as you would during a normal workday. This seems a little bit odd to me. How long do you expect people to work on their home assigments in order for them to commit often? Is it days, or weeks? I don't imagine multiple commits for a 3 hour poject. For a new project there aren't any well defined states of the code that make sense to be persisted. This means the commits will be arbitrary and their messeages not very meaningful.
- jeff_jefferson 6y agoI think you've just failed that part of the test. If you've got more than an extremely simple project there are multiple point s where you should commit. If you implement a piece of logic with passing tests, then commit. It takes seconds to do but makes reviewing so much easier.
- gozzoo 6y agoOr the company failed to attract the most suitable people for the job. As I said - I don't see a reason for multiple commits for a few hours project. It is not how people start a new project. This is an exploratory phase, you check this, test that. Very often it becomes a mess. Eventually your idea of the project gets clearer, then you clean the code, or start again from scratch. I don't see why these steps need to be persisted. This has been my experience each time I've started a new project, unless it is something very trivial, where you just follow the steps from the tutorial. If that's the case though I don't see the value of such assignment. Conversely, if it is a few days or a week project you shouldn't expect experienced developers to take you seriously. This has been discussed multiple times here on HN and most poeple don't like it. People have lives, they probably have applied to multiple companies and it's just not possible for them to invest that much time. In both cases the company misses the chance to meet potentially bright and hard-working people, which should be the purpose of the whole thing. There is something else - what commit messages should look like is a very controversial topic. Introducing a chance for a strong disagreement on such an early stage of getting to know a candidate is not very wise.
- twic 6y agoI get the impression that the project here is not one that calls for exploration - "a simple note-taking app with a couple of screens". You can use a tech stack you already know well, the entity model is pretty obvious, you should be able to sit down and mostly just smash it out. You can make lots of little commits while doing that. I have had interview projects that were much more open-ended and exploratory, and there, i would not expect to be cranking out neat atomic commits. But i don't think that's what they are doing here.
- jeff_jefferson 6y agoBy specifically mentioning this, I would imagine it is something that is important to them. Therefore, somebody who doesn't agree with this way of working is not "suitable". In my experience, hiring people (however good) who do not agree with the company's core practices doesn't end well for either of them. Unless it is something completely new to me and I am basically "playing with the tech" (which this does not seem to be) this is exactly how I would start the project. I find it easier to be organised from the start. Especially if, when I do take a wrong turn, I can revert easily to a previous commit.
- vinaysshenoy 6y agoThe exercise itself is a simple note-taking app with a couple of screens. We don't impose a time limit on candidates interviewing to complete this stage. > For a new project there aren't any well defined states of the code that make sense to be persisted. This means the commits will be arbitrary and their messeages not very meaningful. I didn't understand this? The problem is well scoped and defined. Regardless of whether it's a new project or old, we expect candidates to be able to split their work as atomically as possible.
- twic 6y agoThere are two ways of working in programming. One is to make disciplined incremental progress: write a test, make the test pass, do minimal cleanup, commit, see a refactoring opportunity, do it, commit, write another test, see a related bug, write the bug down but don't fix it, make the test pass, clean up, commit, tackle the bug, commit, etc. The other is to flail about wildly until you have something which more or less works, and then commit it. Then make a few follow-up commits fixing bugs. People who have only experienced the latter will find the idea of making numerous commits during the day absurd.
- Dayshine 6y agoSure, but I'm not sure how much progress you're going to make in the 2-3 hours one would spend on a speculative take-home task (they've stated there is no guaranteed interview). You're going to be judged on how well the end product works, so if we start with the following tasks, and you have 180 minutes. 1. 20 minutes: their stack's boilerplate/tooling 2. 10 minutes: unit testing boilerplate 3. 20 minutes: integrated testing boilerplate (browser automation is a fickle beast) 4. 20 minutes: basic database entity + database setup 5. 20 minutes: basic UI page + frontend setup 6. 20 minutes: replace default styling (their guide talks about UI "polish") That's 110 minutes and nothing more than a pretty display from the database. The task will almost certainly ask for more than one user action. I might be able to write an action in 20 minutes, but there is no way I can write good tests, seed test data for integrated testing, and keep each commit atomic and green. So, do you choose to have a tidy commit history and complete test coverage, or do you choose to complete the task?
- lnsru 6y agoIt is not expected to be 3 hours project. Target easily 3 days for it. Requirement to get more points for this assignment from that page: “Detailed documentation with setup, screenshots, configuration instructions, etc.” This alone might take couple hours.
- Dayshine 6y agoYou expect candidates to spend 20-30 hours on a task, and you don't even guarantee an interview? Talk about exploitative. Hell, that's incredibly biased. Can you imagine a young parent being able to do that?
- vinaysshenoy 6y agoWe did allow concessions for people who were not able to find time to do the exercise. We merged it with the pair programming exercise and asked them to build it with us in office.
- VBprogrammer 6y agoYoung parent here. Not a chance in hell I'd be taking part in that exercise. The only possible way would be to take a weeks holiday and that's just not going happen. At least they are open about it. It is probably a fair indication of the companies values if they are oblivious to how unreasonable a 3 day take home assignment is.
- milesvp 6y agoYeah, no kidding. If you’re not going to pay an hourly rate for a homework assignment, you are not getting particularly good applicants. No quality engineer will spend more than a couple hours at a chance to maybe have someone look at their code, to maybe offer them a job.
- raghava 6y agoAs I have said in a comment below, it sorta became a way to signal being hip-n-cool, while actually being totally otherwise. Most cheapo shops which won't pay FAANG salaries but still want near-FAANG-quality-engineers end up using this as a bait. Other ways are "your work has great purpose!" "You will advance humanity!" "You will bring great experiences to users" ... yeah yeah yeah, just an alias for "we are a glorified bodyshop. BigCos hire us for some piecemeal job. We get it done and get paid relatively well." But this isn't too appealing, is it!
- odshoifsdhfs 6y agoCan I honestly ask what is the point of this question: > Why do you want to be at Obvious? I never understood this. Unless you are Apple or Google or some other big brand, most likely people found your job through a job forum or even HN and never heard of you before. Then most likely the answer is money. So what is the point? I just stopped filling up job applications that have this. Seems so counter productive. Heck, I was approached by a CTO of a Ycombinator company a while ago, he found my resume somewhere, asked me if I would be interested in the position, then redirected me to a form where 2-3 questions was about why I wanted to work with them, and what I would bring to their team. I want money, and in exchange I give you my time and knowledge. Is that so hard to understand?
- Huggernaut 6y agoNo, it's not hard to understand, but that doesn't do you any favours. I'm not saying that someone needs to be so desperate to work somewhere (that would probably be bad), but if a candidate can't express why they have an interest in a particular role then that's of note, especially if I'm comparing to someone who can. Pretty much everyone wants to exchange their time and knowledge for money, but they could do that anywhere, so why here?
- odshoifsdhfs 6y agoI'm not sure what to reply. I was going to be snarky but prefer not to. From their website 'We help people create digital experiences their customers love.' Has anyone been 6, day dreaming in school, 'when I grow up, I want to help people create digital experiences their customers love.'? My interest in the role is it matches my experience and I want money. Again, if you are a FAANG, fine, if you are a startup no one really knows but pretend you are changing the world, you are making yourself a disservice by asking these questions. You can ask 'What are you looking in a new position/What excites you/etc', but to ask specifically why this company is tacky and I know I am not alone with this as I regularly talk with friends that feel the same. Maybe I am jaded as a software developer with more than 20 years professional experience, but job=money so I can money=things/time I want. 99.9% of companies aren't changing the world. They are trying to make money for the owners/shareholders/investors, and employees should think exactly the same, and that is motivation enough. If you paid a million dollars a month for people to dig holes for 8 hours a day, you would see the fastest shortage of shovels ever.