
Code Reads - pashields
http://ashkenas.com/code-reads/
======
jashkenas
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.

~~~
niggler
"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)

~~~
ebiester
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.

~~~
petercooper
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 ;-))

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

------
kenkam
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.

~~~
rustc
<http://codereview.stackexchange.com/>

~~~
Karunamon
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?

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

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

------
oinksoft
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.

~~~
jashkenas
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.

------
timruffles
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

------
cpr
(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. ;-)

~~~
jashkenas
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 ;)

~~~
josscrowcroft
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!

------
niggler
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?)

~~~
fogus
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).

------
mindhunter
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.

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

------
drsim
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.

~~~
jashkenas
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.

~~~
drsim
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.

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

~~~
jamesmoss
Sam Soffes of Cheddar fame charges $1000 per hour.

<http://hire.samsoff.es/>

~~~
athesyn
What's cheddar?

~~~
untog
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.

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

------
gfodor
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!

------
rebelidealist
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.

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

------
j_baker
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.

~~~
ky3
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.

~~~
klibertp
> Release some educational content.

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

~~~
ky3
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?

------
niels_olson
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).

------
moschlar
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.

------
programminggeek
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.

------
juanbyrge
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.

~~~
jashkenas
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.

------
softbuilder
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.

------
antonpug
Interesting. But how is this a sustainable business model?

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

~~~
kyllo
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.

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

