

Ask HN: what are the two best technical decisions you made for your startup? - guybrush0

Looking back on your startup and its progress so far, what are the two best technical decisions you've made? Did you know they would have such a dramatic impact?<p>I'll start the ball rolling:<p>1. Linode - its flexibility has helped us keep costs seriously low without sacrificing power or scalability.<p>2. Memcached - using it various places instead of database access helped us turn a beast of a ~12second algorithm into a sub-400ms beauty.<p>I suspected they'd both be pretty cool but didn't realise quite how <i>insanely</i> fast memcache would be.
======
idlewords
For context I run pinboard.in, a bookmarking site.

1\. Using PHP rather than Rails or Django. It meant having to hand-code simple
things like form handling, but resulted in a peppy site that can handle sudden
spikes in traffic. The initial investment in writing boilerplate and laying
out the code has really paid off now that I need to tune and add features.

2\. Sphinx. Made the site searchable with minimal configuration, and allowed
me to move certain queries out of MySQL without having to set up caching. It's
nice to have caching as a luxury to make the site even snappier, rather than
an essential prerequisite for usability.

People have to pay to use our site, and the main thing that sets us apart from
our many free competitors is speed, speed, speed. That fact has loomed large
over our technical choices.

------
patio11
Rails: Two years ago I switched from the standard shareware five-page-HTML-
brochure site to the same site written in Rails, with the immediate goal of
not having to do templating by hand anymore. It has grown organically since
that, now boasting a CMS, a full-fledged web app, an API which interacts with
my desktop application, copious reporting/administration/backend features,
consumption of several web services for outsourced providers, and an A/B
testing framework. You'd think it would be a staggering mess of spaghetti by
now, but no, the MVC discipline makes it easy to maintain, easy to extend, and
fairly easy to manage. Almost all time I spend in my IDE creates additional
business value. This contrasts markedly with my experience with developing in
Java, where frequently I have to mark off a week just to fight my tools.

Prawn: A maaaaaaaaaaaaaaajor pain point for me in developing my desktop
version, and developing unrelated web apps for my day job, was laying out
documents properly to be printed. Prawn makes it absurdly easy. For added
goodness, throw in ImageMagick and you can turn the PDFs into GIFs for
essentially no extra work.

------
trapper
1\. Puppet - being able to roll out a new server in a few minutes on either
ec2, external networks connected to our vpn or locally is magic. Having our
server definitions version controlled is seriously powerful.

2\. AWS - enough said.

------
mahmud
I get paid to make good technical decisions.

Used web-service based architecture; small independent modules, each with a
light json-rpc based API.

------
dryicerx
* Using Protocol Buffers

* Amazon Web Services

