YCNYC: A lost opportunity.

27 09 2011

Man, was I looking forward YCombinator’s (YC) first New York event last night. Shrouded in secrecy and anticipation, I was eager to see the people behind the famous incubator – the enigmatic Paul Graham (PG) and some of the other power brokers from the West Coast. What I wasn’t anticipating was an event with an unclear theme, little insight and a collection of anecdotes from some of the most respected people in the industry.

organization: 5 ⁄ 5

If you’ve ever tried organizing an event with well over 1000 pax, you know it is no mean feat. The fact that the line of attendees stretched well around the block and yet moved smoothly gives true credit to an incredibly well-run event. The space itself was well laid-out, and everything flowed together beautifully. Even the complimentary beer and pizza was a pleasant – if a little cliched – surprise. Kudos to the event manager.

Yet I would have given that all up to hear something I didn’t already know. To be amazed. To be wowed. These are some of the best and brightest from the tech scene in the US and they can’t even get themselves together to create an engaging event?

this is Paul Graham

When PG took the stage, it was a non-event. I was expecting great fanfare but no, he simply strode onto stage and started speaking. Yet the crowd truly loved him. It’s hard not to – he is casual and unassuming. He radiates good-naturedness and oozes integrity right down to his polo and shorts. But the feeling I experienced was somewhere between admiration and embarrassment. This was clearly a man in the know, though why he was so obviously distracted I have no idea. The short breaths, the continual ummms, the pacing, the hand-written notes, the lost placing. Perhaps he’s not a great speaker, but I’m not so sure. This man is by all accounts one of the most influential in the tech startup scene across the US, and he reeked of unpreparedness.

He mentioned that they weren’t sure how receptive New York would be to the event. From the turnout, it was evident that we were drinking the Kool-Aid as much as there were in the Valley. Surely YC had known the interest levels from the booking form which closed some weeks back – yet PG didn’t seem to have a clear direction in his speech.

He wavered between a friendly familiarity with YC – peppering his talk with anecdotes on alumni and VCs in one breath – then going on to expound on thoughts as to why environment plays such a heavy effect on motivation. There was no introduction about YC, the school, their process – it was more a working theory on why the East Coast is vastly different to the West. One story painted eastern VCs as less savvy than their Californian counterparts; great to know, but why do you think that is PG?

He suggested East Coasters should take the plunge – join the YC school for a few months. But he didn’t even touch on the process they use to choose startups. What are they looking for? Obviously hardworking individuals who are passionate and dedicated, but what else? Personal traits or characteristics? Emotional maturity? How about the kinds of achievements they’ve accomplished? What about matching founder personalities? Which characteristics suit which in his experience?

He did touch on key point in regards to New York and tech talent: the spectre of Wall Street. In no uncertain terms, he outlined that the challenge facing us developers in New York was resisting the monetary rewards of the financial sector. He then laid out the benefits of the startup life as opposed to that of Wall Street. It is a relevant discussion, and one that I think leads to an interesting debate. Unfortunately there was no real forum to this speculation, and it was left at that.

His entire speech was essentially the introduction to the evening and yet there was no clear message. There was no point. What were we really doing there Mr Graham?

the Q and the A

After PG’s speech came the Q&A. I feel they (or at least Alexis Ohanian) honestly tried to put some interactive content into the evening, and should be commended for it. Nonetheless, it would have helped to have given the audience some forewarning as to the event theme and structure to help us ask more poignant questions. If I knew PG was going to get specific on Startups vs Wall Street or even West vs East Coast VCs, I definitely would have had a few questions up my sleeve.

Perhaps a better alternative is to ask live questions from the audience, allowing us to digest the information we’ve been given and ask relevant questions that follow from what has been presented.

alumni presents

After the Q&A came the YC alumni presentations.

While some of the founders’ stories of hardship were tough, sleeping on the floor of an office and using your shirt as a towel are definitely first-world problems. As anyone who’s ever tried to make it in a startup will tell you – back to back 18 hour days are nothing. Facing eviction, the degradation of family and close relationships, weight gain, sleep loss, deterioration of health, endless stress – are all part-and-parcel of founding a startup.

What I’d like to hear more of is how they dealt with the depression, the emotional stress. When they were in the Trough of Sorrow, how did they find the strength to keep going? How did they resist the sway of those who sell them exactly what they want to hear, all because they are so emotionally tied to their venture that they’re easy game for anyone with half a trick?

What we got was the same old mantra: work hard, build it first, stick it out, believe in yourself, listen to your users, it’s gonna be tough. There’s only so much you can hear the same rhetoric before the condescension kicks in.

It would be remiss of me not to point out two standouts from these presentations. The first was the founder who mentioned PG’s The Process graph, outlining the typical phases a startup lives through. The other was from the Airbnb designer & founder who mentioned one of PG’s directives “do things that don’t scale” – focus on the users you have and wow them in some non-technical manner.

startup.com ⁄ jobs!

After a few of the alumnis had done their rounds, it was becoming apparent that there was indeed a common theme to their decks. This beer-and-pizza event was a mere talent scout. (Ye gads!) Presenter after presenter repeated the same tired lines: IF you’re curious about startups BUT not yet ready to take the leap of faith THEN join us instead.

Now I don’t begrudge them hunting out talent – and hats off to them for being open about their businesses and heartaches – but I would have found their bitter pills much easier to swallow if I knew that’s what I was in for in the first place.

Here’s an idea. Why not setup small stands at the event with someone from their recruiting team to promote their startup to the engineers? Hardly revolutionary, but it gives attendees somewhere to go if they’re interested and want to continue the conversation about some company they’re curious about. People mill about and meet over a particular startup – perhaps it’s the problem trying to be solved, maybe it’s their design or energy. By having the stands it effectively channels people of a particular interest to a certain area – a handy feature when you’ve huge crowd of people in a large space.


PG mentioned in his speech to mark your name badge with an ‘X’ if you were on the hunt for a cofounder. There was a lot of chatter about the networking, but little in the way of structure.

In terms of networking, who was in the audience? There were a few thousand people milling about and only YC really knew the makeup of the crowd. I made a few introductions and asked some questions but my guess is inconclusive at best. Why not have a presenter ask some questions of the crowd. Say, hands up or some such – give everyone an idea of roughly who was there for what. To me it seemed like mostly developers sprinkled with some founders and ex-founders though I’m just guessing.

How about a system established prior to the event where attendees wear either an accessory or article of clothing based on what they offer and what they’re looking for. Perhaps a tie if you’re an MBA looking for a tech. Maybe a vest for investors. Black T-shirts for developers of course. Or what about creating a twitter board where people could add their handles to notice boards based on skills/roles and people could look them up online based on categories. You could search out talent and try hunt them down at the gig.

the aftertaste

Although it is too late to avoid being labeled a cynic, I felt as though the whole evening was merely a big YC circus meant to drum up enthusiasm for engineers to work for startups. There were mixed messages from PG and the startups themselves, and they oscillated between treating us as peers and as admirers. On the one hand, they’d be talking about the scene, their stories and their failures, and on the other they were endlessly filling our ears with tripe about hard work and endurance, “you can do it” and a can-do attitude.

In all honestly, I wouldn’t have minded so much if there was more transparency about the stated goal of the event, and a little more targeting to the different categories of developers and founders in the audience.


  • Be transparent: don’t keep us in the dark, tell us what the purpose of the event is. Tell us more about YC and what you do.
  • Be consistent: there was no real theme to the event; no strong message other than “work hard”, “don’t give up”.
  • Tell us what we don’t know: we’ve come to see some of the best talent in North America, teach us something we can’t learn online (we know to “find a problem to solve” by now).
  • Innovate: use your creative talent to generate a more interactive event. Take live audience questions, poll us, have a East Coast VC defend their turf, allow for quick 30 second audience pitches, generate networking interest with methods to break up the crowd into relevant groups.
  • Engage: talk to us, learn who we are and what we represent.
  • Share: take what you learn from us and share it back to the community.

YCombinator, this is New York city and if the turnout is anything to go by – we love you. We adore you. Tell us more about your incubator. Blow our minds with your insights and your prescience.

Selective removeAll() addition to as3-signals

22 09 2011

This post and code is related to my fork of as3-signals. The fork is from the latest version of as3-signals 0.9-BETA.

Summary of additions

  • ISlot.applyTo(value:*):void
  • ISlot.doesApply(value:*):Boolean
  • SlotList.filterNotAppliesTo(value:*):SlotList
  • SlotList.findNotAppliesTo(value:*):SlotList

Summary of modifications

  • IOnceSignal.removeAll(appliesTo:* = null):void


This backwards compatible addition to as3-signals chiefly allows the removal of all listeners for a given instance or class type. It keeps the convenience of the removeAll function but provides a mechanism to prevent removal of listeners not bound to the current instance or class.

The removeAll() method allows for an optional parameter which will then removeAll slots that applyTo the given parameter, if any.

Essentially, this allows us to asynchronously clean up after a class or instance without affecting any listeners from other classes and without having to define our anonymous functions or closures.


A signal – as a promise – may be reused across instances and classes. For example, a service that is managed by an IOC container may cache signal calls, or a model may use signals to notify of changes. When the signal is shared across various types (either directly via the IOC container, or indirectly cached within an instance) we don’t want to removeAll() lest we remove functional code in other classes (that may well have been written by other developers).


Update Sept 23: Changed the example to use Robotlegs and Mediation

Let’s look at an example to follow this through. This example below illustrates usage when marshalling updates of a model to a view (using covariant mediation to an interface) via a Mediator. Chiefly, the problem arises when an asynchronous cleanup method is called (in this case `onRemove()`), it needs to remove all of the listeners applied to by this instance but not remove listeners that may be used elsewhere.

public class LogModel
	protected var updateSignal:ISignal;
	protected var logs:Vector.<LogItem>;
	public function get update():ISignal
		return updateSignal ||= new Signal();
	public function set logs(collection:Vector.<LogItem>):void
		logs = collection;

public class SomethingMediator extends Mediator
     public var model:LogModel;
	 public var view:IDoesSomething;
     override public function onRegister():void
			view.logs = collection;
     override public function onRemove():void
          model.update.removeAll(this); //removes all listeners applied to this instance only

Usage (pseudo-code):

//setup values
const logModel:LogModel = new LogModel();
injector.mapValue(LogModel, logModel);

//map interfaces to a mediator 
mediatorMap.mapMediator(IDoesSomething, SomethingMediator);
const viewA:IDoesSomething = new DoesSomething();
const viewB:IDoesSomething = new DoesSomething();

//register mediators for our views (creates two instances of SomethingMediator)

trace(logModel.update.numListeners); //2 - one listener from viewA.onRegister() and one from viewB.onRegister()


trace(logModel.update.numListeners); //1 - one listener from viewB.onRegister()


trace(logModel.update.numListeners); //0