Engineering and product blog of Parse, a mobile backend platform acquired by Facebook and later shut down, with open-sourced Parse Server.
HN commenters link its post on designing great API docs and cite it as an example of company blogging; its open-source release is also noted.
Flynn co-founder here.
Great question. We just consider ourselves to be a normal company that happens to build open source tools. We also try to make money in ways that don't interfere with the open nature of what we build.
There are lots of different kinds of companies whose engineers primarily work on open source projects. In most cases where their core "product" is an open source technology they also sell commercial support, usually to large companies who need an SLA. Others (like us) sell managed services as well.
We made the decision before we started the company to make anything we ever asked users to run on their own machines permissively licensed open source and just be careful with our trademark (like Mozilla is[1]). That leaves the door open for closed-source SaaS in the future but gives our users (and investors) a clear set of expectations about how and what we'll build.
I think it's important for companies to be as clear as possible about how and why they license their code, what choices they'll make in the future, and what happens when the company changes hands. It would be great to see something like an "open source pledge" where founders/the company could contractually commit to either a final open source release before closing (like Parse did[2]) or staying open after being acquired (like Sun didn't after being acquired by Oracle [3]).
[1] https://www.mozilla.org/en-US/foundation/trademarks/policy/
[2]…
San Francisco
* Parse * Developer Evangelist *
We're a fast growing platform for mobile development. We have over 25,000 apps on the platform and our customers include well known YC startups, NFL teams, and great national brands.
We're looking for our first Developer Evangelist. This role is for a hacker that wears a marketing and teaching hat.
You will be responsible for getting the word out about Parse and getting more developers on the platform. This is a cross functional role that involves aspects of marketing, community support, content production and software development.
The perfect candidate is passionate about Parse, platforms, and talking with and educating other developers. You should be a developer yourself and understand the problems that developers encounter.
This role will play a pivotal part at Parse. You should be fearless about taking on new challenges and owning important metrics inside the company.
Parks: Great location (right near the ferry building in SF), catered lunch & dinner, your choice of equipment, great insurance, and most importantly - ownership in terms of equity and product.
More information here:
https://parse.com/jobs
https://parse.com/about
http://blog.parse.com/
> There are many situations and styles where callbacks are perfectly adequate, and promises offer no benefit
Promises are superior in general, I guess that has been discussed already[1], many times. Promises may indeed offer just an insignificant benefit sometimes (you can even call it just a different style), for example when you are first writing a monolithic prototype. In this worst case, you would simply make a giant chain of ".then" methods, any your gain is you can get creative with the error handling if you want. However, the greatest benefit revels itself later: The composability that comes with them will help you immensely when refactoring.
[1]: One example: http://softwareengineering.stackexchange.com/a/302456/9451 Another: http://blog.parse.com/learn/engineering/whats-so-great-about-javascript-promises/
Great to see more things go open-source, and to target Android first! Phone-based login is quite cool, and becoming very popular in new apps.
To be mildly snarky, I would've called it Enterprise Digits. https://github.com/twitter/digits-android/tree/master/digits/src/main/java/com/digits/sdk/android
I recently built a sample implementation of phone-based login (on iOS) using Parse + Twilio, rather than Digits which was not available. A co-worker added a web interface to the same app, and another is building an Android client. At the Twilio Signal conference last week, it was a very popular demonstration. Our blog: http://blog.parse.com/announcements/phone-based-login-can-you-dig-it/ and our repo: https://github.com/parseplatform/anyphone
This page links to a summary. The source article is at http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/ .
The saddest part, and an example of why I think Postel's Robustness principle is not useful, is:
> The hardest part of the rewrite was dealing with all the undocumented behaviors and magical mystery bits that you get with Rails middleware. Parse exposes a REST API, and Rails HTTP processing is built on a philosophy of “be liberal in what you accept”. So developers end up inadvertently sending API requests that are undocumented or even non-RFC compliant … but Rails middleware cleans them up and handles it fine.
I think async/await is semantically similar to the promises pattern [1] but different to the Go concurrent models using channels. What the compiler does with await/async is quite interesting [2]. Essentially it takes your await/async code and turns the related code into a state machine which keeps track of how control should be switched between the callee and the await keyword (and uses Task for the async bit).
[1] http://blog.parse.com/2013/01/29/whats-so-great-about-javascript-promises/
[2] http://www.codeproject.com/Articles/535635/Async-Await-and-the-Generated-StateMachine