
CoderPad - Ashuu
https://coderpad.io/
======
akanet
Cool, it's nice to see one of my projects make the rounds again. CoderPad has
gone from frustrating "I can't believe no one's built this yet, interviews are
so annoying" to a thing actual people are paying me for, and I have HN to
thank for a lot of that early traffic.

If anyone here has any questions about CoderPad, please feel to ask here, or
if it looks like this topic's dropping off the frontpage, I'm always available
at me@vincentwoo.com.

~~~
RogerL
Your front page is scant on details, and I really don't like providing both
email and a password just to figure out if I should send money to somebody.
You don't have a published privacy policy, which reinforces that feeling.

Okay, so you say you do C++. What does that mean? Can you compile and see
error messages? The editor in the demo has no line numbers - is there any hope
in actually deciphering the errors and fixing the problem? Can I, the
interviewer, provide or run unit tests against the code? Does the editor have
things like auto-complete, code formatting, etc?

Okay, I gave up, I signed up. It's pretty cool, no, strike that, very cool. I
had no idea from your front page. It wasn't clear at first that I could
experiment endlessly without using my 2 pad quota, which was another thing to
add friction for me to try it out. I can see that I can easily paste in some
unit tests for the user to use. But, do you have boost, gtest, etc? What
version of Python (and all other languages) do you support? What C++ compiler
and version are you using? I tried some C++11 code, and it compiled, which is
nice, but should I really need to type in test code to figure out what is
supported?

Site seems very hacked together. Now that I am signed in, I have no way to get
back to the start page, the FAQ, and whatever links you had on that front
page. The code of my pads seems to somewhat overlay the ad links (select your
plans) below. One I start editing code, there is no back button. If I use the
browser's back button, sure I end up where I was - at the profile, with the
new pad I just created not listed as one of my pads until I hit refresh on the
browser. If I create a bunch of pads, it just creates them in a never ending
expanding list - will I have ways to sort through for different candidates,
times, etc? I kind of wonder what happens when you get to 50-60, as you don't
seem to be storing them in a container - am I going to end up with a huge
unmanageable page? Can I delete pads?

I also am not crazy about your tiers, though I recognize it is a common
strategy. Small shops hire in bursts - a few months go by with few to no
interviews, you get funding or a new contract, and suddenly you have 100
people to interview. Do I need to pay for a high tier so I can deal with the
bursts? What if I buy the 20/month, and need 21 pads? Can I change my
subscription level on a monthly basis? Is it really safe for me to just type
my credit card number into your site? Why doesn't this just scale to my needs
- why do I have to subscribe to tiers? Amazon doesn't make me pay for computer
services I am not using, why do you?

I'm not looking for the answers to any of the above in this thread - I'm not
going to recommend that my company pays for a service that cannot describe
itself on it's webpage but eagerly provides me with fields with my credit card
info, and whose only contact information is "me". There's not even an address
- what recourse do I have if you take my data, or I have billing issues? Are
you in the US, the UK, Argentina? Finally, I don't believe you can actually
provide 24/7 support. I'm emailing "me@vincentwoo.com" \- I doubt one person
can service enterprise scale use 24/7\. I don't even know what your
infrastructure is - are you using AWS such that you can easily add nodes as
needed, or is this run on a box in your basement that dies when the power goes
out?

Awesome app, bad site.

~~~
akanet
You're right, frankly, a lot of the web-facing stuff isn't quite there yet. I
would say that this is because I have been working on improving the technical
offering for my current customers, and that this HN posting has caught me in
the middle of a frontpage redesign. I'm sorry about that.

As for the language versions, privacy policy, etc - those will be coming soon,
but you can be assured I'm not NSA'ing you guys.

The tiering is because most shops favor cost predictability over scale-to-
your-needs billing, which smooths out acccounting. I understand your concern
here, though, and the pricing is still definitely very new (like the rest of
this site).

My site is in fact on top of AWS (heroku), and I have 0 doubt about my ability
to scale to enterprise usage. I've invested a fair amount in the architecture
thinking up front, and I eagerly await a reason to pull the switch on my dyno
counts. Unfortunately, I need an excuse to do it, but I might just spin up 20
nodes and do a load test for fun one of these days.

Anyhow, I'm glad that you at least like the product. Hopefully improvements to
the landing page will be present soon. Sorry that your experience with it was
so unfavorable.

------
mmorett
Going out on a limb here, but I'll assume this is for Ruby only? Nothing in
the landing page suggests this works for other languages.

I like the implementation, but if folks didn't like the NSA spying on them,
they might not like this. This is wiretapping on steroids. I'm assuming the
interviewer watches every keystroke. Creepy. I'm sure authors, well spoken and
in full command of the English language, would get annoyed at someone staring
at them to see if they can write a novel.

Tech interviewing is broken, but all solutions historically point to trying to
watch a person code. I don't think that's the solution. When folks
realistically work on multiple tech stacks with multiple frameworks and
multiple languages, what is to be gained by zeroing in (deeply) on only one
aspect of it.

This explains the need for a tech interview "study guide" posted earlier in
the day. You're working on stuff contextually needed for your current job, but
you'll be tested on stuff you don't use daily/monthly/yearly? That's insane.

~~~
akanet
Sorry if it isn't super highlighted, but if you scroll down a bit, you'll see
that I support most languages you'd want to use this for (current notable
exceptions are Go and Obj-C, the former of which is coming soon). Here's the
list:

c, c#, c++, clojure, coffeescript, haskell, java, javascript, lua, php,
python, ruby, scala, scheme

As for your philosophical objection, I think the true value prop of CoderPad
is a bit more nuanced than you make it seem, respectfully. The primary
benefits as I see them are twofold:

1\. The right kind of candidate is wowed. It is a real fish landing back in
the ocean moment. "Finally, this works like I've always dreamed it should."
You look really sexy administering that interview.

2\. It can help you see candidates who have a firm grasp of programming but
not quite a great hold on syntax do better. I would argue the former is more
important, and CoderPad let's you see them experiment with syntax without
having to rack their brains over whether the parameter goes before "do" in
ruby.

~~~
epaga
I do think it could be highlighted better that other languages are supported.
I almost didn't sign up because I thought it was Ruby only after the tutorial.

It would obviously be ideal to have a demo for each language you support, but
even if you simply highlight a bit clearer which languages you support right
in the top part of the page rather than as a bullet point further down, that
should really help your conversion rate.

~~~
akanet
I'm in the middle of a reworking of the landing page. I almost wish this got
posted a few days later :)

------
zachlatta
Neat website! One quick thing - the Ruby 1.8.7 REPL on the homepage was a bit
of a turn-off because that Ruby version was recently discontinued. I'm not
sure if any newer versions of Ruby have been compiled down to Javascript yet
though.

~~~
DanWaterworth
"Note that we are not using Ruby 1.9.x due to its reliance on threads, which
cannot be ported directly using Emscripten." \-
[https://github.com/replit/emscripted-
ruby](https://github.com/replit/emscripted-ruby)

~~~
akanet
Hey, I made CoderPad. I'm looking at replacements for emscripted-ruby
currently. Interesting candidates currently include doing it all server side,
and using mruby compiled via emscripten. Unfortunately mruby's greatest
current shortfall is lack of `require` support, which may or may not be a
dealbreaker. What do you think?

~~~
judofyr
mruby is a completely different beast from Ruby. Consider it a different
language, not a different version.

What about using JRuby on the server-side?

~~~
akanet
I've thought about it. The daunting bits are the trickiness around how long
the session should live. You'd like the repl's variables to persist between
commands, etc, but at the same time letting an arbitrary code session live for
a long time on your server is probably not the safest thing. If you have any
resources on the topic, I would love to look at them.

~~~
grk
Check out [https://github.com/opal/opal](https://github.com/opal/opal)

~~~
akanet
This is awesome. Thank you.

------
xianshou
Looks wonderful, and far better than just copying the code from a hackpad into
ideone. Unfortunately, the real thief of time here is the phone screen itself
- although what would have gone on an online collaborative editor now goes in
a REPL, the interviewer still has to shepherd the 8 of 10 candidates who can't
write Fibonacci. And out of generosity or fear of giving offense, they'll
likely sit through it all.

(Which is the beginning of a fascinating discussion about choosing between the
Scylla of wasted eng time and the Charybdis of a rigid, non-adaptive auto-
screening, but that's for another comment.)

As far as the env itself goes, though, props++.

~~~
akanet
I do appreciate Greek myth. Allow me to respond in kind.

Athena is said to have emerged fully formed and fully armored from her
interviewer's head, but what her peer reviewers did not see at the time was
the struggle she faced in Zeus' ego. Though newly born, she yearned to wrest
the tools of code to her will, yet no matter how she strained at the yoke of
her keyboard, she could never quite overcome the compiler.

One day, she happened upon a memento that belonged to Metis. It was CoderPad,
and it allowed her to more fully bring her will into reality. Using it, she
forged herself a suit of armor - not her best work, but much better than the
patchwork stuff she was making before. She banged and clamored with her
shield, and eventually, the hiring manager Hephaestus was finally brought
around to overrule's the stubborn Zeus' "no hire."

------
_delirium
I was wondering how all this could work in a browser, and to my surprise it
appears there's a pretty well-developed project that has a bunch of language
interpreters working in the browser via Emscripten (discovered via viewing
coderpad.io's source):
[http://replit.github.io/jsrepl/](http://replit.github.io/jsrepl/)

It appears to have been developed by/for [http://repl.it/](http://repl.it/),
which is education- rather than interview-oriented.

~~~
akanet
Repl.it is really quite great. Unfortunately it is beginning to feel its age
(2 years, now). I'm looking to get off of it for some of the core languages I
support, and I already rely on other services for the other, trickier
languages (C++, java et al).

------
jmickey
I recently used [http://thereq.com/](http://thereq.com/) for a similar
purpose. Features I liked:

    
    
      * I can set interview questions in various languages
      * Candidate can write code right away, I can see everything he/she writes
      * Code can be executed to see the result right away
      * This even works for SQL, they have a sample schema the candidate can manipulate
      * They have a fairly large library of questions you can just add to your interviews
      * It's completely free as far as I can tell
    

No affiliation with the site, but it was very useful for me.

------
ID_10T
Nice site, but please capitalize the first word of each bullet point. It looks
unprofessional.

[http://oi44.tinypic.com/amqgqw.jpg](http://oi44.tinypic.com/amqgqw.jpg)

~~~
akanet
Good point. I'll do it now.

------
wldlyinaccurate
This is really great. A friend and I were going to start building something
like this, mostly because we were like "why the hell does something like this
not exist already"?

~~~
akanet
Those words are almost literally the gripe to my coworkers that spawned this
whole thing.

------
wasd
For further discussion, check this previous posting:
[https://news.ycombinator.com/item?id=5707525](https://news.ycombinator.com/item?id=5707525)

Glad to see you took some of my copy write advice from last time :)

If you don't mind me asking, how many users do you have?

~~~
akanet
Not very many by internet startup standards, but the ones I do have are very
engaged. Thank you for your advice from last time, it was very helpful.

------
tobiasbischoff
Awesome what you can pull off in SaaS. $200 Bucks a month and still no
unlimited use.

~~~
ChrisLTD
It's likely a bargain if you end up using a lot of support hours.

------
filereaper
Very cool and immediately useful.

Might want to go over the "flow" of how the application will be used?

I'm guessing the interviewer will set up the "pad" and just send a URL to the
interviewee?

~~~
akanet
Yup! Updated copy for the landing page is coming down the pipe. I should
really make that bit explicit.

------
C1D
This seems great and something like I would use but the only problem is that
it doesn't work on my ipad and I use my ipad, allot.

~~~
akanet
I'm going to take some time this week or the next to flesh out tablet
functionality. If you drop me a line via email, I can let you know when it's
ready.

------
FreshCode
Would be nice if I could try out all the languages in the local session, just
to drop any remaining objections.

~~~
akanet
This is coming - I've been swamped. Hear you loud and clear though.

