Hacker News new | past | comments | ask | show | jobs | submit login
Code Reads (ashkenas.com)
201 points by pashields on March 13, 2013 | hide | past | favorite | 83 comments



Holy moly. Didn't expect to see this at the top of HN. Went to grab some dinner, and the ol' inbox is already starting to fill up. Thanks for the warm response.

To illuminate the rationale a bit more ... A lot of folks have asked for quick "gut checks", "sanity checks", and similar overviews of their codebases in the past, and this seems like a way to:

1) Help folks out in a way that doesn't entail a massive commitment or expense. Much of the time, when people are struggling with a thorny technical problem, an outside perspective and a bit of friendly advice is invaluable in getting it solved.

2) Get a lot of valuable exposure to different approaches in production apps, to learn as much as I teach.

3) A style of work that I can be productive with, even without a reliable internet connection, or offline entirely (a large problem these days).

So, it seemed like a fine idea to try. I'll keep y'all posted on how it goes. And although Code Reads will be entirely confidential, if any of the companies are interested in sharing theirs (perhaps to attract recruits) -- maybe I'll be able to post one or two up publicly.


"And although Code Reads will be entirely confidential, if any of the companies are interested in sharing theirs (perhaps to attract recruits) -- maybe I'll be able to post one or two up publicly."

Can you take a high-profile public project (like coffeescript or underscore/lodash or angularjs) and do a code read? (yes I'm aware that you are the man behind coffeescript and underscorejs but I'm sure you can find something in a code read)


Tom Dale made a tweet about submitting Ember (as a joke, presumably), but I saw at least one "Do it!" reply.

I'll admit, it would amuse me.


I was one of those people, lol. To be honest, these things can only help. Rails advanced a lot with the Merb merger. (I'm not suggesting Backbone and Ember could or should merge, naturally ;-))


I don't know... I think Backbone's approach to documentation would be awesome. ;)


Shame you don't do matlab... >_<

It would, I think, be instructive to see rough pricing guidelines. I am assuming that whilst you get a feel for the market these things are in a state of flux, but nice to see ballpark figures when thinking about whether your service could be relevant.


Any reason why pricing isn't available on the site?


He probably has no idea what the demand is. If 60% of the Fortune 500 has code they want Jeremy Ashkenas to review, the pricing will be very different than if three ramen-profitable startups want it.


I'm sure Jeremy can only do so much code reviews a day (unless he's a ninja robot), so why isn't there a crowd-sourced version of this? Sometimes I write code that I would like other coders to help/critique with. Github is great for collaborating and some code reviews happen (pull requests) but sometimes you're just working on a project and have no idea whether you're writing the right things or not. There have been times where I'm writing Python code and kept wondering whether I was being pythonic.

Think of it as a StackOverflow for code review. Reviewing someone's code gives you karma/points/kudos/<whatever>, and dupes are OK because we're trying to encourage everyone to help (score points). Note: I haven't really given this a lot of thought, just an idea.


Sounds like an awesome project. I think there's room both for open-source-y versions of this, where you review shorter bits of code for the karma -- as well as a more professional version, where you spend a lot of time reviewing private code, in conjunction with testing a prototype of the application.

That said, if anyone is really excited about this sort of thing, and think they'd be good at it -- do drop me a line. I imagine there might be ways to team up.



How will this work with SE's infamous hatred of discussion threads? I'd imagine posts about code style would generate multiple "right" answers with lots of discussion to be had?


That's mostly Stack Overflow, not Exchange. If a Stack Exchange is appropriate for discussion, they're fine with it.


Noo.. the Stack* sites in general. Overflow is just one, I've seen the same deletionist bias on Superuser and Programming as well.


Generally speaking when it comes to SE, I've noticed the smaller the site the bigger the tolerance towards discussions, and codereview it's not quite a big community yet.


I've not participated much in the new SE sites, but I feel they do not hate discussion threads as much as the original SE sites.


You mean something like this: http://codereview.stackexchange.com/ ?



This may sound cliche but I also thought of a similar concept when reading the post, with the added aspect of reviewing someone's review for 'karma' points. Self-policing, so to speak.


I agree. I wouldn't be surprised if someone threw something together after this post. As a new programmer, I love to read posted reviews of code.


Maybe fork Discourse? Naturally this would eliminate the crazyness that issues with every SE discussion. I can help.


On a semi-related note, it's silly how there isn't a "canonical" StackOverflow-like site for open discussions yet.


Reddit comes close. I don't know that there can really be a 'canonical' discussion site, any more than there can be a canonical Q&A site (Stack Overflow is not that, given the existence of Quora, Yahoo Answers, etc. serving other large niches of Q&A).


Slate.co looks like it could evolve into a viable contender in this space. I have a few qualms about the way questions are structured, but the site is pretty and nice enough.


I use Quora for this mainly, but I'm not sure it's "canonical" yet.


Good old irc?


Does a robot also need to be a ninja in order to process code quickly? Why so elitist?


Well, we all know that the best people at writing code happen to be ninjas (have you read any job descriptions or got any recruiter emails lately?), so I think this may perhaps be the reason.

Still open to explanations of why ninjas have an enhanced coding ability though.


Isn't that obvious ? Ninjas are fast, so they type faster. That's what coding is all about, after all.


I also heard that they can see in the dark thus you can cut the light when you leave them in the office.

On the other hand, I've seen it in the movies that they can disappear... I assume that's what they do before someone can actually try to run their code.


> Still open to explanations of why ninjas have an enhanced coding ability though.

Do they? Seeing that you can't actually see ninjas, how can you see they have an enhanced coding ability? ;)


When you get into the office, and your code has seemingly magically improved with no explanation visible in your git log, it's ninjas.


merge conflict due to ninja throwing stars


Probably a silly question, but what's the deal with this?

  <button ...
   onclick="location.href='mailto:jashkenas@gmail.com?Subject=Code%20Read%20%5BSmall%5D'">
    Small
  </button>
Not a huge deal but I think it's good to show where a link goes on mouseover, especially a mailto: link (some mail clients take a while to start) ... it'd seem you want <a> here.


Just started with a bit of CSS that worked better for a button is all. You're right that a real link would be better. I'll change it.

The idea is to perhaps eventually sell these directly on the page, via Stripe, in a more explicit fashion. But for starters at least, I think we'll work together on setting the scope of the "read", and keep things bespoke.


Could be spam prevention?


If that were the aim, and he's content to rely on JS, why not set the href attribute at runtime?

In any case I'd think a small contact form a worthy investment, as I doubt he's charging pennies.


Maybe because of the fact that bots usually scan the href attribute, but not the onclick attribute?


I would think any self respecting bot would notice "Hey, there's a valid email address on the page source code :D".


If someone has coded up a "self respecting bot" then I think we've lost all hope against the spam harvesters (unless, of course, that bot's notion of self respect includes the recognition that spam is annoying to innocent people :)


I tried clicking and it did nothing. That's bad advertising.


I'd like to offer the same service free to anyone would like a Code Read but Jeremy's rate is too high/he doesn't have time.

I'd get a lot out of it as I'm building a Javascript static analysis tool - exposure to lots of production code would identify how useful its features would be.

I'm no Jeremy Ashkenas, but:

- I've been writing JS apps since 2009, after I stopped doing AS3 apps with Flex

- Teach Backbone.js, JS and d3 at General Assembly, have given various talks/workshops

- Lead dev on two 10k+ LOC JS apps (for Picklive and Skimlinks) using Backbone.js

- Built 3 game clients for Picklive with JS, on mobile and web

- Built a visual scraper recorder/runner plugin for Chrome for Arachnys

- Contribute to JS open source - shims, Sinon.js, lots of little pull requests

https://github.com/timruffles @timruffles


(Jeremy, are you still working for the NYT and free-lancing, or has your wanderlust finally made you take off for good?)

Looks like a great idea. Maybe you could require projects first convert to Literate CoffeeScript to make your job easier. ;-)


Traveling for the year, and doing a little bit of freelance work for the Times (and hopefully DocumentCloud as well) as I go.

... now you see the hidden motivation for the recent flurry of Docco releases. I want to make these sort of working code/prose documents easier to produce ;)


Fantastic, really enjoying the blog so far. Beautiful pictures and layout (though some of the galleries have a bunch of blank slides, even after waiting for loads)

Keep updating it!


I wish there were a real example (to get a sense for the types of things he looks at), involving an open source project (how about coffeescript itself?)


Is it enough to say that his credentials are everything that he's ever written made available for public perusal? There's a lot to chose from. If I had a JavaScript/CoffeeScript/Backbone codebase that needed some love then I probably wouldn't hesitate to contact him based on the example set in his public code (and that he's the primary creator... but maybe that goes without saying).


Me too, but it's only been launched for an hour at this point ;) I'll try to post up real examples and excerpts as soon as any are available.


How I hoped this to be an announcement for a public code reading. Like a author reading a chapter of his book, Jeremy reading and discussing a part of the coffeescript source.


For projects that are open source that are submitted to this, I would love to see its code review published.


In my previous life as an enterprise code monkey I've came across good and bad Architects. Just knowing and being able to tell me how something could be done better is valuable. But I found my frustration often was 'just f*ing do it!'.

If an Architect came with great refactoring suggestions that would take minutes or even seconds to implement, what's the value in dumping me with a document?

The best Architects would just do it if it was straightforward, review it with me (so I'd see why/if it was better and teach me) then commit.

I'd like to see a similar thing here. Hands-on code reviews with commits. There's little I hate more than documents that never get actioned.

I love the spirit of this service but add in commits to make it dynamite.


I hear you, but I'm concerned about trampling on other folks' code without being involved in a long term relationship. Code bombs dropped by consultants often have this sort of problem -- where some of the more invasive changes either aren't welcome or are more difficult to integrate with the existing system than they're worth. I'm hoping that having inline examples of working code, with references to the source, strikes a happy medium here. Plus, "teach a man to fish", and all.

That said, we do live in a Git world these days. Maybe a fancier package could include the creation of a branch that implements some of the tweaks/changes/ideas.


A combo of doc + a branch commit would be spot on.

You're right on the code bomb problem, but I think a good review involves making a judgement on the entire codebase. Something may be the 'right' thing to do but completely uneconomical due to dependencies.

Understanding the impact of a recommendation leads to a valuable refactor or rewrite call that developers often have to make on a mature ecosystem.


I've done this kind of job before and you're right, sometimes it's simplest to send a patch.


Just curious: how much do such prolific programmers usually charge? (Hourly/daily/etc.)


Sam Soffes of Cheddar fame charges $1000 per hour.

http://hire.samsoff.es/


That says nothing about wether Sam ever got paid $1000 per hour or not.

Judging by a post on his blog* I doubt that his was very lucrative for him.

* http://soff.es/changes


Sam Soffes is a toy.


What's cheddar?


I thought the same. "Fame" didn't seem the right word to apply to it, but when I clicked to the homepage I remembered seeing it on HN before now.


I thought he was making a joke... like trying to bring out the stark contrast between the word fame and the relatively unknown Cheddar.


Cheddar is a task management app. If I recall, he recently sold the app and he was willing to give his services for $1000/hr. https://cheddarapp.com/


Stumbled across this today, http://guru.sensiolabs.com. Seems to answer your question well!


as much as people are willing to pay.


heh, yeah. whatever the market will bear.


This is a really interesting model. It seems that if Jeremy gets some traction with this there is a very obvious follow-up product which provides these artifacts as a service. Of course, between here and there is all the stuff he's going to learn doing it "manually" first.

I could see this being a inflection point for him (or someone who runs with this idea) in a few years. Good luck!


I always thought there should be a good market for companies hiring outside code reviewer before they hire an employee or a consultancy. Seen many projects crippled by dirty code written by contractors.


Could stand to benefit from having a domain specifically for the project.


Don't take this the wrong way, but why would I want you to review my code? I would consider adding a few "achievements" like:

* I've worked on JS for x years.

* I've written client-side JS for x companies.

Anyway, you get the idea.


Hint: google his name. His target audience already knows who he is.


Agreed.

The HN effect only lasts for so long. Once the flash crowd evaporates, prospects need more than such an unvarnished offer before they can act.

Cozy up to your prospects. Release some educational content. Give some examples of how you deliver value with your code reviews.

Going forward, a testimonial strategy definitely wouldn't hurt.


> Release some educational content.

Like very well documented and widely used compiler of some language to JavaScript, perhaps?


I don't doubt that those who are familiar with his work won't hesitate in taking out the credit card and thwacking it at the screen.

Do you know if it would hurt those sales in any way if he inserts a short bio for those who don't?


Interesting, is this new in code? There is a significant market for editorial review (in contradistinction to peer review), especially after translation (e.g.: a Japanese or French scientist will pay a translator and then an English-speaking, technically competent editor to comprehensively edit the translation).


This is a wonderful example of false advertising...

He's talking about very general "code reading" on the whole article and then, at the bottom, he lines out which languages he knows - and it suddenly gets disappointing for anyone outside the Ruby/JS world.

He has to be more clear about that in the headline.


Would anyone be interested in a podcast of code being read with professional/semi-professional voice talent, possibly with more in-dept technical review?

Also, would anyone be interested in dramatic reading of potentially horrible/hilariously bad code?

I think either could be fun, but maybe that's just me.


IMO this is more effort than its worth, and he will get annoyed with companies trying to hire him outright. You'd be surprised how hard it is for companies to change coding practices.


It very well could be, but part of the idea here is to make it as much of a "product" as it is a consulting gig. Having a clear scope and a document delivered at the end should help keep things clear-cut, and simple for both parties. In theory, at least.


I considered doing this same thing a few years ago but decided that I don't scale. I'm glad someone is trying it out. I'm curious to see if there's a market.


Interesting. But how is this a sustainable business model?


How is it not? It's not like people are going to stop writing code.


I think what he means is "how does this scale?" If the OP is personally reviewing the code, which the landing page makes it sound like he is, he can only do so many per day, and there will be a long queue if his service is popular.


Then he can start charging more or delegating, both have benefits/drawbacks obviously.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: