How to Raise Money for Your Startup

I wanted to follow up one of my previous posts about How to Get into Y Combinator — in which I talk about the four kinds of risks investors look at when deciding to invest in your company — with a much more practical post about how to raise money from investors.

I’ll caveat here that in my own experience with One Month, we were fairly fortunately to have been accepted into Y Combinator, and so the process of fundraising was significantly easier than it would have been otherwise. That being said, I truly believe that’s because the partners at Y Combinator, including Paul Graham, have distilled some important truths about fundraising that they were able to pass along.

The first lesson is that the first investment is the hardest.

When you start fundraising, if you’re lucky you’re going to get a lot of “soft” commitments. These sound something like, “I really like the company and I’d like to invest, let me know when the round’s about to close.” In some cases, they may even say that they’re in, but they’re just putting up a little resistance to actually giving you the money.

You need to recognize that it’s not an investment until you actually have their money.

And it’s also in their interests as investors to wait as long as possible to actually invest. If they believe they can commit now, and put the money in later, they will always do that. Why? Because sometimes more information will come up and investors will back out. It happens all the time.

As an entrepreneur you need to apply a strong pressure here.

One of the advantages to using a convertible note or Y Combinator’s SAFE financing document as your fundraising tool in the seed stage is that you can collect money immediately as it comes in instead of all at once at the end. This is called a “rolling close.” It alleviates some of the risk of having to get buy-in from a bunch of people simultaneously and then having one person or problem fuck it all up.

The strategy that I learned at Y Combinator was that as soon as I got a soft commit from an investor, I wrote up a convertible note (using Clerky) for the highest amount they mentioned they might invest and sent it to the investor with the following email:

Our round is getting pretty tight, be we should have room.

I’ve sent over the standard YC convertible note docs using Clerky for a $100k investment at a $6M cap. Take a look and let me know if you have any questions and either [lawyer’s name] (legal counsel) or I can get back to you. Otherwise, just sign and we can guarantee your spot in the round.

So you really have to do whatever you can to close the first investment in a round. The first $25k or $50k or $100k. In terms of focusing your energy, don’t spend a ton of time on small investments like $5k or $10k (we actually didn’t accept any investment under $20k in our first round).

The momentum builds after you get your first investor, because it’s likely that investor will introduce you to other investors, and so on. Like a chain reaction. Sometimes that doesn’t happen but in a large enough round it will.

The second lesson I learned was don’t create a pitch deck or a business plan.

You’ll hear, “do you have a deck?” from investors all the time. The stock response that the YC partners told us to give was (roughly):

We’ve been too busy running the company to prepare a pitch deck. I’m happy to meet in person to tell you more about the company.

In the early stages, if an investor asks for a pitch deck, he or she doesn’t know what she’s talking about. It just turns out it’s not really necessary. And it saves you a ton of time doing something that isn’t important.

Instead of a pitch deck, prepare whatever short document you think the investor will need to see in order to invest (a simple Google doc will do), but only send it to the investor after your first meeting.

The later in stages you get, the more documents you’ll need to prepare, but in the seed stages you may not need to do any.

The third lesson is that with a “rolling close” you can change the amount you say you’re raising.

This can be helpful for applying pressure to investors that are on the fence.

At first we told investors we were only looking to raise about $250,000, and we had already gotten $150,000, so if they wanted to guarantee a spot in our round they would have to do it immediately.

This helps counter that investor feeling of, “I can still wait it out and get into the round right before it closes. I have time.”

The major caveat here is that it’s important to know how much the person or fund you’re talking to needs to be able to invest. This is a major mistake we made. We said we were raising the same number ($250,000) for angel investors and funds initially, but that essentially ruled out the funds.

Many funds have to be able to invest large amounts of money (anywhere from $500–750k to $3–5 million) for it to even be worth considering you as an investment. If you say you’re only raising $500k and you already have $250k, that essentially rules you out as an investment.

Find out what terms the fund typically invests in, the size of the fund, and how far through the fund they are. Almost all VCs are willing to tell you that information almost immediately.

But you don’t really need a lead in a seed round. It can be helpful for filling up the round faster, convincing others to get on board, and later for strategic stuff like introductions and advice, but it’s not really necessary. You can raise the entire round in checks like $50k or $100k if you need to.

And as time goes on, you up the amount you’re raising. You can even theoretically up the valuation cap on the note as you get more interest.

Take easy money.

If someone wants to invest, and you like the terms, take it. But be discerning. Talk to some of the companies they’ve already invested in, especially the ones that didn’t succeed, to see how the investor relationship worked (you may have to reach out to these companies yourself).

The last thing you want is an investor that’s going to cause trouble or be difficult to work with. (For example, we had one investor who asked for his money back after three months and didn’t want to sign a standard convertible note extension even after all our other investors had.)

At the end of the day, investors often aren’t as helpful as you’d like them to be. Their helpfulness comes in waves. If you reach out, they may offer a hand, but most of the time the intros they’ll make come right after they invest, and trails off as the excitement wears off. That’s okay. Money is money. And you wouldn’t want them too involved anyway.

Finally, don’t talk to associates.

It’s a waste of time. Insist on communicating with partners and getting partners involved early on. If you’re talking to an associate at a fund you like, ask which partner would really be interested in a company like yours and then ask if they can put you in touch with that partner.

Because some firms know this, Associates often go by the name of “Investor,” or “Venture Partner” instead.

Why I Built A Microscope Instead of Writing My Book

True story: I recently made a microscope out of an old computer charger box, the lens from of a CDROM drive, and a bunch of tape.

I may have also cannibalized an LED from the front of my bike (no night riding for me anytime soon). The whole thing took me a weekend, and when I was done, I could take digital photos of plant cells with my smartphone.

If you’re wondering whether I’m MacGuyver, the answer is yes. I am MacGuyver.

I have a novel hanging over my head, one I recently declared I would finish by the end of the summer.

When I shared this with my family, I got something of a mixed response. Universally, they agreed it was cool, but then universally they wanted to know why I was spending my days off making a microscope when I could be writing. In other words, why was I wasting time on these little projects of mine rather than tackling the much larger project of finishing my writing? Wouldn’t a weekend spent writing do much more toward knocking that out of the way than a weekend spent harvesting lens parts and fashioning cardboard harnesses for my phone?

Fashioning a microscope with cardboard and old Mac parts.

They’re right, up to a point. I have a novel hanging over my head, one I recently declared I would finish by the end of the summer. With this mental stone sitting heavy in the middle of my calendar, spending a whole weekend designing, cutting up pieces of charger box, testing an instrument with no guarantees of it working on the other side amounted to an act of pretty hardcore procrastination.

It works! Sand detail through my homemade microscope.

Being called out on this sucks, to be sure. In a culture that values productivity more than creativity, results more than process, being called a procrastinator is tantamount to being called lazy.

But here’s the thing: Not all procrastination is made equal.

There exists that special breed of procrastination that actually helps get our creative juices moving. For me, it’s working on weird craft assignments where I build scientific equipment out of e-waste. At least one person I know makes origami cranes when a deadline looms at work. My partner cleans the house when she has to start any big project (she’s writing a dissertation now; our apartment absolutely sparkles).

These are the useful acts of procrastination — the creative procrastination — in which the stress of trying to exist in a product-oriented, perfection-oriented culture transduces into the need to make a physical product. Yeah, we have forms of procrastination that are totally useless.

Yeah, we have forms of procrastination that are totally useless.

No, it is not the most useful expenditure of time to spend an afternoon obsessively checking social media or reading reviews of last week’s Game of Thrones finale on the internet (both of which I have done while writing this post). Indeed, that video of a cat slowly pushing a drawer closed after getting caught stealing food is the funniest thing ever posted to the web, but it will not get your project off the ground.

All of these amount to a kind of passivity in the face of a big workload, but when we respond to the pressure to produce, to perfect, to imagine ideas bigger than we know we can handle by creating physical objects, what we’re doing is using the physical world to shape our mental space into a creative space.

Our creative projects so often fail because the end seems so far away, the process so messy and imperfect, that the easier pleasures of passive procrastination seem better and more readily attained. This is the value of creative procrastination: it gives us a way to push back against the mental pressures of creativity and to sublimate stress, fear, doubt — all the negative emotions that can orbit around creative projects, threatening to fall in and crush our brilliant ideas — into a physical medium that proves to us we can make a project.

This is the value of creative procrastination: it gives us a way to push back against the mental pressures of creativity and to sublimate stress, fear, and doubt.

That’s not passivity. It’s not exactly productivity, either, but it amounts to a kind of active putting off of work that deserves to be seen as a valuable part of any creative workflow. When I finished making my microscope, I had opened up a world of new sights and creatures to myself. I had also proven to myself that I could finish a big project. When I started writing at the end of the weekend, I did so with a creatively charged mind and a will to get through the toughest writing problems.

Minnow Egg Detail.

I sincerely hope, then, that the next time you have a project coming due and decide to spend an afternoon gardening beforehand, you don’t chastise yourself for wasting time. Congratulate yourself for knowing your process well enough to incorporate productive procrastination into it.

Now if you’ll excuse me, I need to finish a chapter. Time to look up how to build a telescope.

Swift Tutorial: Optionals for Beginners

Swift Optionals

Optionals are a powerful feature of the Swift programming language, but they can be difficult to understand and use effectively. Let’s review the essentials.

At a high level, what are Optionals?

Let’s say a mutual friend is throwing a Halloween party. The invitation outlines the pertinent details (e.g. time and location) and among other things it says, “bring a beverage, costumes optional.” Now if we wanted to represent this party and its guests in code, we might create a Party object and a Guest object, and we might translate the above details into properties on these classes. However, in order to accurately represent this Halloween party we want to express the fact that costumes are optional. We do this like so:

class Party{var time: NSDatevar location: CGPointvar guests: Array // …} class Guest {var beverage: String // Each guest must have a beveragevar costume: String? // Each guest can choose to come in costume or plain clothes (i.e. costumes optional)// …}

view rawswift-optionals-1.swift hosted with ❤ by GitHub

In Swift, the ? is how we designate a variable as Optional. And this just means that it’s okay for the variable to have a value costume = "Frankenstein" or to not have a value costume = nil. In contrast, every guest must have a beverage, this is expressed by the absence of a ?, and the compiler will enforce this for us.

A little background

Optionals work in tandem with variables. A variable is a construct that we use to hold onto a piece of data. At a minimum we usually give a variable a name, type and value.

// Here we explicitly specify the typevar beverage: String = “Leffe” // But the type can also be inferred from the fact that we’re assigning it a String valuevar name = “Leffe”

view rawswift-optionals-2.swift hosted with ❤ by GitHub

vars and lets

Swift offers us two distinctly different kinds of variables: vars and lets. In order to understand Optionals we must first understand vars and lets.

The primary distinction between vars and lets is that vars are mutable and lets are immutable. In other words, we can change the value of a var as many times as we want, but once we set the value of a let, we can never change it. Let’s look at some examples.

// varsvar mutableBeverage = “Leffe”println(mutableBeverage) // “Leffe”mutableBeverage = “Bud”println(mutableBeverage) // “Bud”mutableBeverage = mutableBeverage + “weiser”println(mutableBeverage) // “Budweiser”// letslet immutableBeverage = “Bud”println(immutableBeverage) // “Bud”immutableBeverage = “Leffe” // Compiler errorimmutableBeverage = immutableBeverage + “weiser” // Compiler error

view rawswift-optionals-3.swift hosted with ❤ by GitHub

Test these out in a Swift Playground and you’ll see that the compiler enforces these mutability rules for us. And in doing so it forces us to be explicit about our intentions. If we used vars alone we’d be wandering into a lawless land. Mad Max territory. Variables that we intend to be immutable might unintentionally be mutated. But in this day and age we can elect to use vars and lets where appropriate, and proceed with confidence.

Something and Nothing

Optionals add a layer of complexity to vars and lets. They modify vars and lets to make a distinction between variables whose value can be either something or nothing, and variables whose value can be something but never nothing. In the context of Swift, nothing is expressed with nil, the absence of a value. Let’s look at some examples.

// Non-optional varsvar mutableBeverage = “Leffe”println(mutableBeverage) // “Leffe”mutableBeverage = “Bud”println(mutableBeverage) // “Bud”mutableBeverage = mutableBeverage + “weiser”println(mutableBeverage) // “Budweiser”mutableBeverage = nil // Compiler error// Optional varsvar mutableCostume: String? = “Dracula”println(mutableCostume) // Optional(“Dracula”)mutableCostume = “Frankenstein”println(mutableCostume) // Optional(“Frankenstein”)mutableCostume = “Bride of “ + mutableCostume!println(mutableCostume) // Optional(“Bride of Frankenstein”)mutableCostume = nil // nil// Non-optional letslet immutableBeverage = “Bud”println(immutableBeverage) // “Bud”immutableBeverage = “Leffe” // Compiler errorimmutableBeverage = immutableBeverage + “weiser” // Compiler errorimmutableBeverage = nil // Compiler error// Optional letslet immutableCostume: String? = “Dracula”println(immutableCostume) // Optional(“Dracula”)immutableCostume = “Frankenstein” // Compiler errorimmutableCostume = “Bride of “ + immutableName! // Compiler errorimmutableCostume = nil // Compiler errorlet anotherCostume: String? = nil println(anotherCostume) // nil

view rawswift-optionals-4.swift hosted with ❤ by GitHub

Note the addition of a question mark to our variable declaration. The question mark signifies that the variable is an Optional, a variable that can be something (a value) or nothing (nil). Without the question mark these variables can never be nil. Note that declaring a variable as Optional does not effect its mutability. vars remain mutable and letsremain immutable.

Also note the use of an exclamation mark in select locations. The exclamation mark is a heavy-handed way to unwrapi.e. gain access to the value that an optional variable holds.

Unwrapping Optionals

Allowing variables to be either something or nothing injects risk into our programs. If we assume a variable is something and it turns out to be nothing, our program might behave unpredictably or worse yet crash. To mitigate this risk and avoid having to make assumptions, we want to know definitively whether a variable is something or nothing before working with it. Anyone who has worked with Objective-c is familiar with this upfront runtime check.

NSString *costume = @”Dracula”; // …if (costume == nil) {// Do something for this plain clothes guest} else {// Do something else for this costumed guest}

view rawswift-optionals-5.swift hosted with ❤ by GitHub

Swift Optionals allow this check to happen at compile-time. If we attempt to use an optional variable withoutunwrapping it, the compiler will throw an error instructing us to first unwrap the value. Which means that the compiler will never let us use an optional value without first being certain that it is something or nothing.

We can safely unwrap optionals like this:

var costume: String? = “Werewolf”println(costume) // Optional(“Werewolf”)costume = costume + “ dressed as Michael J Fox” // Compiler Errorif let something = costume {// The value is not nil, use it with confidencesomething = something + “ dressed as Michael J Fox”println(something) // “Werewolf dressed as Michael J Fox”} else {// The value is nil}

view rawswift-optionals-6.swift hosted with ❤ by GitHub

A heavy-handed way to unwrap an optional is to make use of the exclamation mark. This is called force unwrapping:

var costume: String? = “Werewolf”println(costume) // Optional(“Werewolf”)costume = costume! + “ dressed as Michael J Fox” println(costume) // Optional(“Werewolf dressed as Michael J Fox”)

view rawswift-optionals-7.swift hosted with ❤ by GitHub

The former is greatly preferred to the latter. By force unwrapping the optional we’re asserting that we’re positive the variable is not nil. But if we’re wrong our program will crash. Force unwrapping puts the onus back on us humans to keep track of what is nil and what is not, and in doing so brings all of the risk and assumptions back into our code.

Optionals in Practice

So when do we use Optionals? We use Optionals when a nil value is meaningful.

Consider the case of a model object in our iOS app that represents a video on our server. If the video’s image_urlproperty is non-nil we know it has a thumbnail image that we can use. And if it’s nil we know it doesn’t.

Or consider the case of an NSError object passed as an argument to a network call’s completion handler. Not every network call will return an error, so it makes sense for this error object to be Optional.

On the other hand, our program might make use of a Person object. And it might require that every Person have anage. In this scenario age would be non-optional, passed into the Person constructor and never allowed to be nil.

In Summary

In Swift, we have four different kinds of variables at our disposal:

  • vars (mutable, never nil)
  • Optional vars (mutable, nilable)
  • lets (immutable, never nil)
  • Optional lets (immutable, nilable)

This simple toolset empowers us to write clearer code and more stable programs. And it allows the compiler to be a better partner in helping us achieve these goals.

How to Get Your First Job in Tech: 15 Strategies

Want to break into the tech industry?

Let me tell you: sifting through job boards is old news. The real way to land your first tech job? Get your butt out there, get yourself noticed, and build experience. Below are 15 actionable tips on how to do just that.

1. Update your LinkedIn profile.

If you don’t have a LinkedIn yet…where are you? Join the other 300+ million people in the modern world.

LinkedIn is where recruiters go. Meaning it’s where you need to be.

Make sure to add skills relevant to the job you want, not the one you have. And nix your college job scooping ice cream.

2. Be present on social networks relevant to your dream industry.

Designer? Get yourself signed up for Dribbble or Behance.

Developer? You better be grooming a Github profile.

Although it may not be industry-specific, Twitter is also a great place to network. It’s even been called “the cocktail party of the internet.

Professional networking without pants? Yes, please.

3. Network IRL.

Yeah…you do need pants for this one.

Attend tech meetups. Go to industry-relevant conferences. Get cheap business cards made on MOO.com, with your title and contact information.

Don’t be super aggressive, though, about promoting yourself and finding a job. Make sure to have fun. If you make enough friends, the jobs will come to you.

4. Ask people out for coffee.

Know your dream job? Find people with *that* dream job on LinkedIn or related (like from their blog). Casually introduce yourself. Ask to talk over coffee. Basically, “Pick their brain” (but for the love of God please don’t actually say that).

Tips for the initial email:

  • Keep it short (they’re probably busy)
  • Connect with them — find similar interests (oh hey, we both love to ski) and if possible compliment them (Ex. “I really liked your blog post on ____.” Make sure it is genuine!)
  • Ask for a short amount of time (15 minutes or so — the less time you ask of them, the more likely they’ll say yes)

Tips for the day of:

  • Be present. Ask them questions, like “Can you share helpful resources?” or “Any good books I should pick up?”
  • Be legitimately interested in what they’re saying, and don’t check your smartphone
  • Send a follow-up email…again, keep it short. Thank them
  • Stay in touch over time. Eventually, ask if they can connect you with the HR manager at their company

Not everyone will say yes. In fact, most will not respond. But some will. Just keep at it.

5. Get a mentor.

If you play your cards right, the people that you take out to coffee can turn into mentors.

Mentors are awesome.

  • They will help connect you to others down the road
  • Offer career-related recommendations
  • Give you an “in” at their company

It depends on the mentor, of course, but it never hurts to have an extra person on your side.

6. Reach out to friends/family.

You’ve probably heard this a thousand times: “It’s not what you know, but who you know.”

And that’s true. (Though you do need to have skills, too. Don’t nothave skills.) Your friends and family almost definitely know people who need design or website work. Or they have sites themselves.

At the end of the day, money is money. And experience is experience. In the beginning, you *need* experience!

7. Start a blog.

Seriously. Even though it seems like everyone and their aunt has a blog nowadays, there are still so many opportunities that can come from blogging.

You don’t need an actual blog with a domain name, either. You could write on Medium, which is easy to create and syncs to your Twitter account.

The key is to write content your dream potential employer wants their candidates to be familiar with.

Is your dream to work for a startup, building Ruby on Rails apps? Then your blog better talk about stuff that a person at that startup would care about. Industry news. Related code topics. (Example: if you know they use Angular in their applications, talk about Angular on your blog.)

Do NOT just post funny pictures of your cat. Yes, Mittens is adorable. No, employers do not care.

8. Build a killer (but simple) mini app.

Make it free. Aim to get it on Product Hunt. Get noticed.

It doesn’t have to be complicated. In fact, the simpler the better.

Take a look at Jon Chan, as an example. After teaching himself how to code and building personal projects, he landed his first full time, salaried, job at Stack Overflow. Demonstrating initiative and independence can get you far!

9. Volunteer.

Sometimes when you’re first starting out, you need to take some lower-end projects. Or even work for free.

And what better way to do that than to volunteer your services for a non-profit? Help spruce up the website of an organization you care about. Maybe build them a new site altogether. Add it to your portfolio/Dribbble/LinkedIn.

Plus, if you work for free, you’re much more likely to be able to get a glowing testimonial.

10. And on that note…get testimonials!

When you’re first starting out, getting testimonials or references from people you’ve worked with is really important. This helps establish that you know what you’re doing.

  • Ask clients you’ve done volunteer work for if they’ll write a recommendation on your LinkedIn
  • Reach out to former bosses to comment on your work ethic (even if it was for a non-tech role)
  • Even connect with old college professors who remember your work to give a recommendation

11. Look locally.

Make sure to check the big job sites like Indeed and SimplyHired for local openings, as well as smaller sites like jobing.com or even your local chamber of commerce.

And don’t forget Craigslist! I’m kind of obsessed with Craigslist.

It’s a great way to find little jobs and “gigs” to make extra money while building up your portfolio. Plus, CL offers remote/telecommuting positions, too. (So you can work in PJs now and then!)

12. Think beyond traditional job boards.

Don’t limit yourself to the big top job hunting sites only. Check out niche ones, too!

CrunchBoard is specifically geared toward Internet and tech jobs. Coroflot is a great resource for designers. GitHub Jobs narrows their focus to programmers and developers. There are many other industry-specific job boards too; check out this list of 100 broken down by category.

Additionally, you can explore websites that let you know when new jobs are posted. For instance, TweetMyJobs allows you to sign up for alerts via email, text, or Twitter when a job is posted in your field.

13. Post on forums.

No, not the kinds of forums people posted to in the early days of the internet.

I’m talking about online communities like:

  • Quora
  • LinkedIn groups
  • GrowthHackers
  • Product Hunt
  • Stack Overflow

If it’s relevant to your industry, you should be posting on it. Don’t just post boilerplate comments like “Cool.” Instead, provide value to the discussions.

These kinds of online communities, centered around a particular interest, are essentially yet another way to network online.

14. Show that you’re passionate.

This is oversaid and kind of cheesy…but seriously, whatever you do, show that you care.

It sounds simple, I know, but many people hire for passion, not skill. Skills are trainable, but passion is something you either have or don’t.

15. Create your own job.

You don’t need an employer to make money or establish yourself as an expert in your field.

You can always:

  • Make your own product/service
  • Work as a freelancer/consultant
  • Start a blog/website and monetize it

In the long run you might even earn more working for yourself, because salaries don’t always make you rich.

Striking out on your own gives you the freedom to carve your own destiny. And when you have tech skills, the options for that destiny are truly limitless.

When it comes to getting a job in any industry, it’s all about putting yourself out there. So do exactly that — in person and online.

It’s not all about sifting job boards; it’s about getting experience and making connections. And if you’re unable to land a job immediately, don’t fret: create your own. Your success is up to you!