I'm biased here since I know Ray, but I thought this post was super informative & helpful! I love how short & sweet it is yet so chock full of meaningful points. Thanks Ray!
Here's an interesting notion -- that a lot of wisdom is simply bound up in the integral over time of personal life experience.
Thus, the value of wisdom is individual, and non-transferrable -- it can neither be carried "backwards over time", nor handed over to another human via a "brain dump".
The best one can hope for, is to distill personal lessons from our own experience (compute that integral), and invite others to sample it (no guarantees that it'll stick in any way, but their journey might be similar, allowing them to compute their own integrals faster, by seeing our own).
Our first product was Paper for iPad, an app to let you capture your freeform ideas. It won both an Apple Design Award and App of the Year (2012).
Our second product was Pencil, an active stylus that works especially well with Paper. It too has received critical acclaim (e.g. "the best iPad stylus yet" —The Verge).
We're hard at work on our third major product, a sharing and collaboration service to bring your ideas together. And we'd love your help in shipping it.
We're looking for experienced back-end web engineers, both on the purely programming side and on the operations side. Our jobs page has all the details, but the highlights are:
- We run our app on Node.js (w/ CoffeeScript) deployed to Heroku.
- We run our non-app infrastructure (e.g. our Neo4j database) on AWS, e.g. EC2 and Route 53.
- We automate with Ansible and bash (moving over to Node.js).
Experience with most/all of these isn't expected, but at this stage, we are looking for existing experience somewhere. Show us what you've built.
It's not every day you find a startup that's building both software and hardware, that's making multiple things people love, that's making significant revenue from day one even as a consumer company, and that strongly values a maker culture at the same time.
It's great that you tried CoffeeScript and prefer JS. Your opinion is well-formed.
With my statement, I was referring to the many developers I've encountered who haven't tried it, yet actively dislike it and argue against it. Hence the (subjective) "most" in my first sentence that you quote.
You're right that people should try out stuff before criticising, and in general I support the notion; yet I fully understand people who don't want to jump ship onto very new things because leaving a well-established environment for an immature/unstable one can (but doesn't have to) be a risk. At least Coffee is relatively easy to leave - just take your compiled code and get rid of the source.
I'd also like to add for the rest: what convinced me to try Coffee was @jsjabber podcast with the author http://javascriptjabber.com/017-jsj-coffeescript-with-jeremy... - I think it explains the concepts pretty well (I recommend the whole podcast btw, it's great) and I encourage to listen to it if somebody is curious and wants to try out.
Thanks for the compliment! The viewer doesn't quite look and feel right on the iPhone, but glad you didn't think so. =)
I don't know what your stack is, but FYI on Node we use Connect/Express middleware that automatically compiles CoffeeScript files to JS -- and in production, caches the results -- before serving them. No manual building/compiling/packaging needed at any point. You might find something similar for your stack if you haven't already looked:
There was some slight formatting issues but overall it worked well. It's nice to have the additional context/detail with the slides kind of like what you'd get if someone presented it live.
The node.js side project is a RESTful API so all the CS is server code (no front end CS or JS). It all builds automatically and no special config there. I started if off using a stripped down version of the template I linked to above (though removing mongoose and using node-postgres async instead).
The custom build process is for out main app JackDB[1]. It's written in Java and it's a combination of taglibs and a build script. We have a check in there for dev/prod to decide whether to serve precompiled JS files or the original CS files (if its local dev). We did it this way so it fits into our nginx caching setup which marks all static assets as permanently cached (max-age + public). The build process also prefixes the resources with the git revision so each new build forces the client to get the latest and greatest.
Not that I'm biased or anything ;), but I can confirm this is an awesome place to work! We're building some really great stuff, our vision is nothing short of enabling people to create more effectively, and our team of engineers and designers truly is world-class. Keep on creating. =)
https://github.com/babel/babel/blob/b1e73d6f961065c56427ffa8...