CoderPad – Interviewing Platform for Programmers
indiehackers.com
indiehackers.com
This sounds hyperbolic, but I've never wanted a feature during an interview and found CoderPad to lack it.
I’m also impressed by your YIMBY project and that you mentioned it!
But how often in real life does a manager come to your desk and say, implement this feature RIGHT NOW and by the way I'll be standing over your shoulder the whole time? Would your first thought be, damn, I hope my key bindings work?
It doesn't matter how technically good a thing is if it shouldn't even be a thing in the first place...
Sometimes, there's already a library or SaaS product that I could use, but the catch is we have to pay for the product.
For something that isn't a core business expertise, I could take an afternoon, implement it myself, and then spend all of my time maintaining that instead of working on our company's product, which is ultimately penny wise but pound foolish.
Smarter companies will realize some things are worth paying for, and seeing a company that has picked coderpad demonstrates that they are willing to pay for quality software that works.
> It doesn't matter how technically good a thing is if it shouldn't even be a thing in the first place...
We should have universal basic income and I shouldn't need to have a job not to be destitute, but until then, I'm going to keep going in to the office.
The point is that coding during an interview, whether digitally or physically, is a stupid practice that solves nothing and needs to stop.
Discussing a problem, getting a shared understanding and outline of the solution, and then seeing how the candidate turns that solution into code - that's the kernel of a coding-heavy job, and it needs to be observed during the interview process to make even an approximate evaluation of their ability.
Other forms of observation can substitute: strong personal recommendations from previous co-workers, or famous accomplishments visible from afar, where there's no doubt as to who exactly accomplished them. But observation must be made.
The job I'm recruiting for requires someone to be able to write code. Also, there are a lot of bullshitters in the world. Given these facts, I conclude that writing code in a an interview for a position where you'll be writing code is necessary.
How does one learn about these "mundane" issues that small business owners face? The examples I've seen from Vincent / Patrick McKenzie (patio11) are happenstance (e.g. I happen to hang out in this community, so I know). Like many of us here, I'm an engineer in a tech company and does not naturally have small business owners in my circle.
So what's an efficient way to reach out and understand small businesses' problems? Online forums (which one?), local business associations?
I actually have a lot of thoughts about this that are hard to condense, so I'll just say this: curiosity isn't a personality trait. People tend to model curiosity as just something you "have" or not, but curiosity is actually a function of knowledge you already have. You can only really be curious about things that are adjacent to things that you already know about. I would say the best way to find ideas is to just do a lot of different things. There's no formula, but you can maximize your odds by just learning about as many different kinds of things as possible.
I'm guessing that this is because you haven't already accepted the status quo in those areas, and because people with your skillset who would beat you to it may not have spent a lot of time there yet.
You also still have this sparkling energy at all of the possibilities that can only fade with time, whether you tackle a problem in the space or not.
But then, I don't tend to accept the status quo. I think there are certain personalities that never do. There's always something else to challenge/improve.
Here are a couple of ideas from my day-to-day as a programmer:
- Code review reminder tool. Code reviews are great but there can be social friction to getting them done. I think the typical way this works is to @ mention someone which sends them an email & then ping them on slack if they don't review it w/in a certain amount of time, but I always feel at least a little bad about pinging someone on slack.
- Better software to sync local files to servers for development. A lot of devs run linux machines on aws, develop code locally, and then somehow sync their code from local to the dev server. I feel like people often just write their own scripts that amount to using rsync and some kind of system event watcher for file changes.
- More complex reminders. I want task and date specific reminders. So, for example, remembering to buy someone a gift for their birthday. I want the first reminder 3 weeks before and then a reminder everyday until I resolve.
I dunno if any of these ideas are worth solving though. I don't know if I'd pay for them..but they are things I want.
I agree that more complex reminders with the features you describe would be quite cool, for both code reviews and birthdays would be cool, but you admit that the business case isn't quite there yet. (There is a glut of reminder apps on the app store, those features probably exist between all of them.)
Better sync software falls under the category of development tools; even Visual Studio is free these days (in the form of VS Code) because selling to developers is notoriously difficult to sell software to, because they know how to code. (There is also no shortage of open source inotify+rsync based sync tools.)
Fwiw, it's also a lot easier to hate on every idea than to believe in it :-D. I'm the first to be pessimistic, but I learned that you have to try something & iterate on it even if all you can do is find fault with every idea.
These were also ideas I came up with in like 5 mins. Just showing that ideas are a dime a dozen and it takes exploration to actually find something that works.
But I have to disagree in some sense. If it is really boring, you will not have any passion or motivation to see it through.
Another option is owning a house, or taking some interest in the various maintenance folks that run an apartment building. You encounter lots of people with no systems, but not enough knowledge/time to get something working on their own. Or, even better, those that have been burned with custom shitty software. I had to get a tree trimmed and the arborist was a goldmine of information on the software available, and the problems his company had with it. Markets like these are ripe for disruption with simpler and cheaper SaaS solutions.
I remember first encountering CoderPad a few years ago and being immediately sold on it as a development hiring manager. It's an excellent product and I'm not at all surprised to see it achieve such success.
I actually ended up finding a security issue in it back then, and Vincent had it resolved within two hours of me reporting it, which I was extremely impressed with.
In the event that someone else is looking to integrate CoderPad into their product, here's the Java client library I wrote for CoderPad in 2015: https://github.com/skidder/coderpad-java-api
This is actually pretty sneaky. It takes a long time for the corporate gears to grind and get a contract signed. Meanwhile the engineers are finding the product more and more indispensable because the product is fantastic and there's not anything really stopping them from going over the limit. Eventually a signature is inevitable, even at the (to me) eye-popping price point because everyone in the org loves it.
Standout quote from the article, also pretty awesome candor all around.
This quote popped out at me from the interview:
> In general, we want CoderPad to mirror a modern development environment as closely as possible, and we jump through a lot of hoops to make that happen.
I'm curious about your thoughts on Floobits, which provides a shared buffer using the developer's native IDE. If your goal is IDE parity then it seems like they'll always have you beaten.
I think that as an interviewee I would prefer my familiar IDE. And as an interviewer I want my interviewee to be as comfortable as possible. I don't do whiteboard coding, as it introduces a artificial barrier of difficulty that interferes with my evaluation. I think the same argument applies to making the candidate write Scala code without being able to determine the type of an expression at a keypress or step through line-by-line in a debugger, or even just to be unused the unfamiliar keymappings.
So what's your pitch for CoderPad in the face of Floobits? Reliability? Ease of set-up? The replay over time feature in CoderPad is really neat for the interviewer but I'd rather the candidate feel a bit more at ease than to have that feature.
BTW, love your product. We use it where I work! :)
Honest question from a newbie:
Why developing in node.js felt slow? What did ruby offer that node didn't?
What did you find difficult to do in devise? In my experience extending it was possible but the documentation was sparse and wiki can be confusing.
If I ever aim to build a strong, low-overhead SaaS business, I would definitely look to CoderPad for inspiration on execution.
No, I don't get a finder's fee.
I cannot imagine the author of CoderPad would be happy to be in the position of an applicant again having to do such a stupid test. He is only happy because he now makes so much money of that process and never have to be an applicant again. Well done, we less lucky devs are f* anyways.
Furthermore the interview test "FizzBuzz" was announced back in 2007, yet there are applicants who claim they can program but still fail such a basic test. (Failure modes include the applicant thinking they are "too good to take the test" and refusing to trivially demonstrate they are able to code. Choose your reaction carefully.)
The candidate is never allowed to see how manager solves technical puzzles.
And that's the other reason I never do online tests. I don't know what the company and for example CodePad will do with the data collected from me. Will they store, sell and/or share it? Will CodePad reuse collected data in any way if I do an interview for another company? Etc..
If anything, companies are much more concerned with candidates sharing questions with each other.
There you go buddy:
"A record of everything the candidate types in the pad will be permanently saved for your team to review and share afterwards."
I think akanet was clarifying that CoderPad doesn't share your data with any other companies.
If you're worried about the company you're interviewing with doing shady things, I'd suggest interviewing somewhere else.
Anyway, just one more reason to be weary of these types of tools.
[i*i for i in range(20)]
displays each number on a newline. I tried in Firefox 45.9.0