Startup tools – (because you don't have time otherwise) – Who am I?



Startup tools – (because you don't have time otherwise) – Who am I?

1 0


startup-tools-talk


On Github crertel / startup-tools-talk

Startup tools

(because you don't have time otherwise)

Created by Chris Ertel / @crertel

Who am I?

I'm a developer and an entrepreneur!

I've built things using

Javascript PostgreSQL Ruby Linux WebGL C++ OpenGL Rails HTML C CSS Java NodeJS Python MATLAB (...and various other tools.)

What have I done?

  • Cofounded a J2ME game company while in college.
  • Cofounded DevStack, a SaaS startup for hosted development tools. also folded.
  • Currently engineering lead at a third startup: Medical Informatics Corp.!
  • (and other various boring non-startup things)

Mindset

Life as a startup is hard.

Very hard.

Everything is a tradeoff between:

  • Time
  • Capital cost
  • Mental cost
  • Customer satisfaction
Note that we didn't say cleverness. Note also that if you hit zero in any of those, you're screwed.

You need to be thinking:

“What can I be doing to solve $PROBLEM with the least effort and move on with my business?”

Remember!

Customers don't care how you make them happy.

So don't be afraid to use tools to make your life easier.

Don't reinvent wheels.

Process Tools

Process tools help you work faster

Two extremes of process

  • Don't do anything
  • MANAGE ALL THE THINGS

Both of these are wrong.

Don't do anything, and you lose track of what's what. In some industries, this is not acceptable. Manage all the things, and progress slows to a crawl. And you still end up cutting corners.

Startups have these process traits:

  • Small teams
  • Want to iterate quickly
  • Make frequent mistakes

Small teams mean flat hierarchy.

Pick tools that enable this.

  • Wikis
  • Logged chat

Wikis

Important thing is ease of use.

If it's hard to use, nobody will use it.

☞ I like Atlassian Confluence.

$10/month for 10 users.

Logged chat

Discussions happen.

Logged chat allows async communcation and searchable history.

Google Hangouts works well enough.

HipChat is a little fancier.

Hubot is fun but requires setup.

Startups have to iterate quickly.

This means not losing time thinking what to do next.

Good task management doesn't involve thinking.

Save your smarts for your business problems.

Lemma: Task queues are root of all effective task management.

Pick a task system that lets you assign and share tasks.

Use simple tools for your task system.

Trello is simple and free.

Pivotal tracker is a little more featured.

You might notice both of these are for "agile". Learn kanban or scrum, and use it. People know what it means (sorta), and it's a standard workflow. Less time thinking about how to organize work means more cycles to run your business.

Startups make mistakes frequently.

If you aren't making mistakes, you're not trying new things.

Ergo, use tools that make recovery from mistakes easy.

Use tools that support versioning

Google Docs supports versions.

Github uses git to version your source code.

Bitbucket uses git to version your source code and is free for small teams.

Ecosystems

Two classic slapfights in technology.

"My OS is better than your OS."

"My langauge is better than your language."

Remember, we are businessmen first, and technologists second.

"Best" means easiest, cheapest, and fastest to use.

"Best" does not mean perfect type system, prettiest desktop, fastest compilers, or anything else.

From this, all else follows.

Operating systems

Lemma: If your product needs programming or automation, use Linux.

Pick a sane, standard distro like Debian or CentOS. Minimize time spent sysadminning.

Exception when you are basing your business on some core piece of tech that is platform specific (Sharepoint, I'm looking at you.).

Languages

If your product is on the web, use Javascript or Ruby.

  • Both play well with Linux (which you're using, right?).
  • Both support testing well.
  • Both support REPLs well.
  • Both are very good at string manipulation.
  • Both have large united communities.
  • Both have large package repositories.

Languages

If your product isn't on the web, use Java.

Needed for Android development anyways,

If you have to, C# is also acceptable.

Hosting

Being a sysadmin sucks.

So don't be one!

Hosting options

(in order of preference)
  • Turnkey app
  • Hosted platform
  • VPS
  • Colo / Dedicated server / self-hosting

Turnkey app

Maybe you just need a blog?

Weebly is super easy to use and setup.

Wordpress has lots of developers .

Hosted platform

☞ Just use Heroku.

☞ Another good backend would be Parse.

LoopBack has a great dev experience for backend.

VPS

☞ I've had decent luck with Linode.

Rackspace has some good startup rates.

☞ Lots of people use Amazon Web Services.

Colo / Dedicated server / self-hosting

Don't do it.

No, really...don't do it.

If you must do it, lease the gear.

Story time!

Backend tools

Web frameworks

You want a framework that makes choices for you.

Ruby on Rails started this It's got preferences for managing assets, interacting with databases, and has good community support.

SailsJS is a Rails-inspired framework for Javascript.

Laravel is basically Ruby on Rails for PHP. It's clean and easy to pick up if you know PHP.

☞ If you decide you just want an API, NodeJS with ExpressJS is a good fit. It doesn't have nearly as much structure outside of that use case, though.

Databases

You need a place to store structured data.

☞ Just use PostgreSQL.

☞ If you're on Heroku, they offer it as a service.

Monitoring

Sometimes, bad things happen to good servers. So, we want to find out about it.

☞ If you need this, you're hosting yourself...and we talked about this. ☹

☞ If you're on Heroku, they offer New Relic and Airbrake.

☞ If you must, use Nagios.

Bulk data storage

Sometimes, you just need to store a bunch of files.

☞ Just use Amazon S3. Sane setup, everyone supports them, cheap.

☞ If you are really paranoid, use Tarsnap. This is not for normal people. You'll also have to roll your own interface.

Browser tools

Making your webpage look pretty

Don't waste time making grid systems from scratch.

You can always hire somebody later to make it super slick.

Twitter Bootstrap is very popular.

Zurb Foundation is good for mobile-first (and doesn't look like Boostrap).

Developer Toolkits

There are common tasks that you shouldn't spend time coding.

Highcharts makes very, very pretty graphs of data. Costs money.

Moment.js will save you a lot of time dealing with...time.

AngularJS helps write single-page apps. Can be used for small things.

Business

Billing and Payments

You need to collect money from your users.

Stripe handles credit card payments, recurring billing, and is super developer friendly.

Harvest is a really solid invoicing and time-tracking application.

Communication

You also need to talk to your users.

Twilio provides SMS and MMS messaging.

Wistia provides white-label video hosting for your site.

Mailchimp handles newsletters, marketing, and statistics.

Sendgrid provides Email-as-a-Service. Inte

Communication (slow)

Sometimes, even users that only use snail mail.

Lob lets you print letters, write checks, and do mass maililng.

Easypost handles buying shipping for packages and tracking pacakges.

Business Intelligence

If you aren't tracking what your users are doing, you don't know your business.

Google Analytics is the standard.

Mixpanel is a fuller-featured analytics platform from Google Analytics.

Rapportive gives you information about people you're having email conversations with.

Customer Service

Zendesk provides email support, chat, and even voice support infrastructure.

uservoice provides embedded user feedback in your page.

Thank you!

P.S.

(we're looking for interns!)

careers@medicalinformaticscorp.com