Founding & Building (for students)

Created by Ian Connolly for UCD's Investors and Entrepreneurs Society / Slides available on GitHub

About Me

  • Chair of DUCSS
  • I'm an engineer
  • I helped co-found TopHat and I worked for a successful Dublin startup
  • Never founded a startup
  • Never ran a startup
  • This presentation is what I've picked up from being around, and working for, some extraordinary people

About This...

First Half - Founding

  • Startups, definition, examples
  • Ecosystem, people, places
  • You, founding, hiring, growing

Second Half - Building

  • Walk-through of the web/mobile
  • Identifying what you need
  • How to build it, how to learn to build it
  • We'll (quickly!) look at some code too

My Goal

To excite you about what you can do with technology

To show you how you can build things that make a difference

To make you appreciate the skill and ability of engineers

To make sure you don't waste your time on crap

Founding

Startups

"A startup is an organization formed to search for a repeatable and scalable business model." - Steve Blank

"Being newly founded does not in itself make a company a startup. Nor is it necessary for a startup to work on technology, or take venture funding, or have some sort of 'exit.' The only essential thing is growth." - Paul Graham

Startups

A startup can be in any industry. As long as it is focused on growth.

But we're going to focus on technology. And software-based startups in particular.

Why Software?

"Software is eating the world"

Why?

  • Over two billion people now use the Internet
  • In a decade, 5 billion will use smartphones
  • Running a software company has gotten exponentially cheaper
  • Building a product has gotten faster and easier

'Disruption' (lol)

"To change a long established industry in a way that industry incumbents have overlooked"

So you want to found a startup

You need

  • A co-founder (or more than one)
  • A market
  • A product
  • A serious lack of sense

Finding a Student Co-Founder

  • You need a technical co-founder, or an engineer
  • Engineers are hard to find
  • CS students like to hide

Why do we hide?

  • CS is really hard
  • Computers continually make us feel stupid
  • Many CS students take this to heart and feel they aren't up to it
  • Imposter Syndrome

Talking to engineers

  • A co-founder is like an investor
  • Except money is easier to part with than time
  • You need to make them believe your vision as much as you do
  • Why should they join you rather than work for Google, Facebook or Apple?
  • They will have much better offers monetarily. Offer something else
  • Hiring is the hardest thing you will ever do

Finding/validating a market

  • Best product in the world is useless if nobody wants it
  • Theory of startup building called the Lean Startup says iterate, iterate, iterate
  • Minimum Viable Product
  • If you can find people who'll pay you before you build it, you're on to something

Dublin

  • Huge tech community: Google, Microsoft, FB, Twitter, LinkedIn, HubSpot, Yahoo, Amazon...
  • Local successes: Havok, DemonWare, Orchestra, Storyful, Intercom, Logentries, Soundwave, Datahug, Copper.io, FieldAware....
  • Accelerators: NDRC, Wayra, TCD Launchbox
  • Funding from Enterprise Ireland, growing network of Angels and VCs
  • The Irish Tech Startup Guide by Frontline Ventures

Dublin's Community

  • Purely 'startup' oriented: Web Summit, f.ounders, Dublin Beta
  • Engine Yard run a huge amount of programmer meetups in their offices
  • There's a good usergroup on Meetup.com for every language
  • Pub Standards, the monthly meetup of Dublin tech

Some hard('ish) questions

  • Why?
  • What do you bring to the table?
  • Ideas are really cheap. And 100 other people have had it before you
  • If you haven't been interested in learning how code works, why are you founding a tech company?
  • If your product is tech, why should you get equal equity for inequal work?

More questions

  • How much do you know about the tech world?
  • What problems does it have?
  • What culture do you want your company to have?
  • What are you like to work with?
  • Why are you starting a company?

Building

The Web

  • 'The Web' is a system of protocols and standards built on the Internet
  • Computers request documents (HTML, CSS and JS) from each other to view
  • Documents are written in HTML
  • Viewed in a web-browser
  • Traditional view of the web, getting a bit more complicated now

HTML (Hypertext Markup Language)

  • Decribes the layout of the page
  • Nested tree of elements
  • Layout means the relationship between the elements
  • Not their position on the page

HTML (Hypertext Markup Language)

  • Decribes the layout of the page
  • Nested tree of elements
  • Elements have semantics, they mean things
  • Layout means the relationship between the elements
  • Not their position on the page

CSS (Cascading Stylesheets)

  • Describes the style of the page
  • Positioning, size, colour etc.
  • Select an individual element by id
  • Select a group of elements by class

.reveal .slides>section,
.reveal .slides>section>section {
    display: none;
    position: absolute;
    width: 100%;
    padding: 20px 0px;

    z-index: 10;
    line-height: 1.2em;
    font-weight: normal;
}

JavaScript

  • The programming language of the web
  • The server sends it to your browser, which runs it
  • Previously only used for animating the page because it was 'slow'
  • Now it's used for so much more

JavaScript (Pt. 2)

  • Before: Web Browsers request new documents on each 'page'
  • Now (sometimes): One 'page', JavaScript requests updated assets
  • Single-Page Application (think Twitter, Facebook)
  • Also other complex things like chat, payments, games (entire engines!)

function factorial(n) {
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

Back-ends

  • The web server is running a computer program to respond to requests
  • These can be simple or really complicated, depending on your requirements
  • In StartupLand, most popular languages are Ruby, JavaScript (Node.js) and Python
  • Built using frameworks, Rails/Sinatra (for Ruby), Django/Flask (for Python), Express (for JS)
  • Huge amount of resources, especially for non-technical people, for learning Rails

Databases

These are really hard (and important), do not listen to buzzwords. Talk to someone who genuinely knows what they're talking about

Other buzzwords

  • API, Application Programming Interface: A way for a program to talk to another
  • Cloud: Marketing speak for lots of (generally cheap, virtual) servers
  • X-as-a-Service: Subscription business model for web software applications
  • BigData: Lots of data. Trust me, your data probably isn't BigData
  • Gamify: Hitting a users reward centre
  • Growth Hacker: Bullshitter

Faking it

  • I think you've discovered that this stuff is hard
  • This is barely scratching the surface of the surface
  • You won't be able to teach yourself to build something properly in a week
  • But you can build something to validate a market by faking it

Faking it (Pt. 2)

Resources

Tech + You (Or what I'd want if you were my co-founder)

You need to be literate in tech. That doesn't mean you have to be a programmer

Tech isn't like other industries, and business development in tech is different to everything else

If you're the business/product founder, you need to be the expert there

You need to be tech literate to understand product (look at the number of technical founders!)

Use your soft skills to your advantage

Questions?