December 22, 2012

What/Which Web App Framework? Technology Stack Example?


from Quora:

What are the programming languages and frameworks the top NYC startups are using?



In a conversation with the NYCEDC and ITAC, I learned that no one has a sense of what are the predominant languages and frameworks that people are using.

If you are with a startup or company that has more than 1M pageviews a month and is based in NYC (or the boroughs), can you give a sense of the skills/experience you are looking for? This will help people understand what skills we need to grow….

Companies like:

  • Tumblr
  • OMGPOP
  • Kickstarter
  • Makerbot
  • AppNexus
  • Aviary
  • the Fridge
  • ideeli
  • Daylife
  • HowAboutWe
  • Thrillist
  • Gawker
  • Artsy
  • Sailthru
  • 20x200
  • fanfeedr
  • SolveMedia
  • Social Flow
  • HuffingtonPost
  • AppFund
  • betaworks
  • Work Market
  • Chartbeat
  • Producteev
  • Voxy
  • Food52
  • infokent
  • forumidea






Jason Pearlman, CTO @ OMGPOP

Here at OMGPOP:

Language - Ruby, AS3, Erlang, C/C++/Objective C, Javascript
XMPP - ejabberd, openfire
Web Frameworks: Rack, Merb, Sinatra, Express
Database - MySQL, Redis, Memcache, Vertica
App Server - Thin, node.js
Proxy Layer - Nginx + HAProxy
Hosting - Amazon EC2 / Softlayer / Managed Colo
Queuing - Redis/Resque
JS Library - jQuery / underscore
Monitoring - New Relic, Nagios, Munin, Flume, Custom
Testing - rspec, selenium
Etc - jira, git, svn, puppet, capistrano
  


Languages:
Python, some C, and a little bit of TCL (yes, really)
Web Framework: Tornado
Reverse Proxy: nginx
Redirect App Server: AOLserver
Databases: MySQL, Tokyo Cabinet, and MongoDB
Volatile Data Stores: Memcache, MemoryFly (internal)
Hosting: NTT and EC2
Queueing - simplequeue (https://github.com/bitly/simpleh...)
JS Library: jQuery
  
Michael Lysaght, VP Engineering, SecondMarket

At SecondMarket we use:
  • Language - Java
  • Web Framework - SpringMVC
  • Databases - MongoDB & Postgres
  • App Server - Jetty
  • Proxy Layer - ELB & HAProxy
  • Hosting - Amazon EC2
  • Email - SendGrid
  • Queuing - ActiveMQ
  • JS Library - jQuery
  • API interface - Rest/JSON
  • Etc - Bamboo, Puppet, SVN, JIRA
  • QE tools - (ruby, watir, webdriver, selenium)

Harry Heymann, engineering lead @ foursquare.com

foursquare:
  • Language - Scala
  • Web Framework - Lift
  • Database - MongoDB
  • App Server - Jetty
  • Proxy Layer - nginx + HAProxy
  • Hosting - Amazon EC2
  • Search - Solr
  • Email - SendGrid
  • Queuing - Kestrel
  • JS Library - jQuery
  • Etc - FogBugz, Git, CIJoe, ReviewBoard
Pat Nakajima, I work at GroupMe.

GroupMe uses the following:

Languages:
Ruby, Javascript

Web Frameworks: Rails, Sinatra, node.js
Database: Postgres, Redis
Frontend: Sass, Haml, jQuery
Services: Twilio, Heroku
Tools: RSpec, Git, Github, Pivotal Tracker
  
Jose Diaz-Gonzalez, Developer at SeatGeek


We use a wide variety of tools and software at SeatGeek:
  • Hosting: Combination of EC2, S3, Route53, and CloudFront.
  • Deployment: set of Capistrano application deploy tasks and an internal set of Chef Cookbooks for deploying new instances and services.
  • Languages: Python, PHP, and Ruby - Stata and R used internally for data analysis.
  • Databases: MySQL for mission critical data, MongoDB for some caching and analytics, Redis for queuing, ElasticSearch for our API and search
  • Cache: APC for server cache, with Redis doing double-duty for generated, larger cached data.
  • Monitoring: Cacti - we are moving away from this - Graphite+In-house version of StatsD in Ruby, Get Exceptional, Pingdom. Diamond and graphite-pager for monitoring/alerting.
  • Servers: Unicorn+Thin for Ruby, Nginx for everything else; HAProxy sits in front of everything. Web.py for older Python services, but more and more favoring building services in Tornado. We've mostly deprecated Ruby services in favor of lighter and faster Tornado ones. Our api has Varnish sitting in front of a crap-ton of tornado processes, which seems to work well on our current load.
Rudy Menendez, Developer of fantasy sports

Frameworks: Django 1.2, jQuery
Web Servers: Cherokee, Nginx
Data: Postgres 8.4
Hosting: Amazon EC2, Linode
Caching: memcached
Queuing: Celery/RabbitMQ
Web Services: Sailthru, KISSmetrics, Twillio, Recurly, Discus, Google Analytics, Facebook
Tools: SVN, Unfuddle, Pivotal Tracker, Basecamp, Google Docs/Apps
Mobile: Objective-C, HTML5/CSS3
Benny Wong, former Gilt City lead engineer


Gilt Groupe/City:
  • Frontend: Java/JSP
  • Middle Tier: Java/Jetty
  • Internal app: lots of Rails
  • Javascript: jQuery
  • Database: Postgres, Voldemort, used to use a bit of Mongo
  • etc: JIRA, Hudson, puppet, git
  
Chartbeat (http://chartbeat.com)
Languages: Python, C++, Javascript

Frameworks: Tornado (Python), django, Google Closure Tools
Webserver: nginx
Infrastructure/deployment: puppet, fabric
Database: MongoDB, MySQL
Email: Sailthru
Monitoring: nagios, ganglia, chartbeat :), munin
Hosting: AWS
Queueing: RabbitMQ, Gearman
Versioning: GitHub, https://github.com/chartbeat/labs
Etc: fogbugz, reviewboard  
Adam Mayer, Makerbot Industries

One of these things is not like the others, but since we're on the list:

Firmware: C++
User-facing software: Java
Gcode generation and general glue: Python
Also: git, hudson.

Skills to grow: grow generalists. Frameworks can have short lifespans. Every sufficiently complex app becomes its own framework anyway. Create good learners.
Luke Melia, G.M. at Weplay

Weplay
  • Frameworks: Ruby on Rails, jQuery
  • Web Servers: nginx, unicorn, rack
  • Data & Caching: MySQL, Redis, memcached
  • Queue: delayed_job
  • SCM: git
  • Testing: rspec, cucumber, selenium, Hudson
  • Process: XP/Agile/Kanban
  

Edgar Gonzalez, CTO @ Piictu


Piictu.com backend:
  • Languages: Ruby / Clojure
  • Frameworks: Ruby on Rails / Noir
  • Data: MongoDB, Redis
  • Hosting: Heroku
  • Queuing: Resque
  • Monitoring: NewRelic, Airbrake
  • Services: Amazon S3 / CloudFront, Seachify, Twilio, MixPanel
  • Test: RSpec, Cucumber
  • Other: Github, Jenkins
  

Carter Adams Cleveland, Founder/CEO of Art.sy

Art.sy

Stack: Ruby on Rails, MongoDB, Backbone.js, JQuery

Tools: Git, Pivotal Tracker, GitHub, CI Joe, RSpec, Steak (BDD), Jasmine (BDD for JS)
  
Rick Mangi, Technology Director, MTV Networks


Mostly Java and PHP here on the backend. We have several hundred websites, some are legacy dynamo jhtml and others are running spring/grails/mongo and just about everything else. On the front end javascript/css are clearly required and many groups have standardized on jquery. We're experimenting with HTML5 but still rely heavily on flash/flex.

To me, the bottom line for developers looking to expand their skills is this: Don't worry about the "in" tool of the moment. We look for developers who have solid core skills as software engineers (or front end chops). Focus on the skills that matter the most to developers - software engineering best practices, unix, sql, solid debugging skills and a passion for what you do. The rest can be learned.
  


Jonathan Vingiano, Creative Technologist
At Hyperpublic (hyperpublic.com) we use:

Languages: Ruby, Javascript
Web Frameworks: Rails, Sinatra to come
Database: Postgres, MongoDB
Frontend Frameworks: SCSS, jQuery
Tools: RSpec, Git, Github, Pivotal, Heroku

Ty Ahmad-Taylor, CEO at FanFeedr
FanFeedr (http://FanFeedr.com) uses the following:

Languages: Python, Java, Erlang, Objective-C, Javascript
Frameworks: Pylons
Tools: JIRA,SVN
Database: Postgres
Search: SOLR
Servers: apache, rabbitmq

Evolving to:
Languages: Python, Java, Erlang, Objective-C, Javascript
Frameworks: Pylons, JQuery/Backbone
Tools: JIRA, Puppet, mercurial, Bamboo, Thrift
Database: Postgres, Hadoop/HBase, CouchDB
Search: ElasticSearch
Servers: nginx, rabbitmq,
  


StreetEasy:
  • Framework: Ruby on Rails
  • Data: MySQL, mongodb
  • Caching: memcache, mongodb
  • Hosted on EC2, with nginx frontend and unicorn for app servers.
  • Tools: git, github (both hosting and tracking)
  


Daylife: Primarily Python/Django, Javascript/JQuery, and
some Java/Tomcat.
  
Saverio Mondelli, Engineer

At fav.tv we're using:

Languages: Javascript, PHP
Frameworks: EightPHP (https://github.com/enormego/Eigh...) - Branch of Kohana
Data Stores: MySQL, MongoDB
Frontend Frameworks/Technology: LESS CSS, jQuery, jQuery UI
  

Jonathan George, CEO @ Boxcar
Over at Boxcar:

Data stores: Redis, MySQL
Languages: Ruby, Objective-C, Java, Javascript, HTML
Frameworks/libs: Ruby on Rails, EventMachine, jquery
Tools: git, xcode
Email: sendgrid
  
Marcus Smith, CTO Location Star, CoFounder EarCandy... (more)


for Location Star:

Languages: Ruby, PHP, Obj C
Web Frameworks: Rails, node.js
Database: MongoDB, MySQL
Frontend: JQuery, haml, Bootstrap
App Server: Nginx (maybe Thin soon..)
Hosting: Rackspace Cloud, S3
Monitoring: MMS, Airbrake, New Relic
Tools: rspec, git, basecamp
  

Prajwal Tuladhar, Programmer


At Sailthru, we are using:
  • Languages: PHP, Java, JavaScript, and some R, Python
  • Web Framework: Custom
  • Databases: MongoDB
  • Web Server: Apache with Pound Load Balancer and HAProxy
  • Queuing - ActiveMQ
  • JS Libraries - jQuery, Ace, TinyMCE
  • API interface - Rest/JSON (XML also available but not recommended)
  • Hosting - Amazon EC2 (east and west coast) + colocated servers
  • Monitoring: Cacti, Graphite
  • Etc - Github, Lighthouse, Scribe for log collection


I ran a program for startup CTOs in NY in the fall.   When we asked for people to name their stack, out of about 100 people present, it was fairly even split between Java, Rails, .NET, Python/Django, PHP, and others (Grails, Scala, etc).  Some C++ as well for specialized applications.  So I think it's a mix - each startup decides for themselves, but just like you'd expect, all the popular languages /frameworks are being used.

For us, EnergyScoreCards:  We are not 1M pageviews, but we are B2B and highly specialized market, so pageviews is not a metric we care about.

Stack:  Grails / Groovy, MySQL, Tomcat, JVM
RIA Library - JQuery, ZK, YUI (phasing out)
Bug Tracking:  JIRA, CI - Hudson / Jenkins
Jeff Weisberg, CTO @ Solve

Solve Media:
Languages: Perl (mostly), C++
Web Framework: Mason
Web Servers: Apache, nginx
Database: Postgres (SQL), Yenta (noSQL)
Hardware: generic x86 (mostly), sparc
  


Snehal Patel, Engineering lead @ Frid.ge; SPG.com
Fridge (frid.ge) uses:

jQuery, PHP, Doctrine, MySql running on nginx, PHP-FPM, DotCloud on EC2.  Misc services: SendGrid, mixpanel, GA
  

Vivek Krishna, startuper @ General Sentiment Inc

  • FrontEnd: Java, Struts
  • BackEnd: Java, Python, Perl, C++, Apache Hadoop, Apache Cassandra, Memcached, Apache Flume, Apache Lucene.
  • (Experimenting with Scala recently)

Prasath Ram, Ruby on Rails Consultant

Milaap
  • Languages: Ruby, Erlang, JavaScript
  • Frameworks: Rails, sinatra, Node.js, jQuery, underscore.js
  • Tools: Git, Rspec
  • Database: Mysql, MongoDB, Cassandra, Memcached
  • Servers: nginx
  • Queue: rabbitmq
  • Hosting: Ubuntu on Rackspace
  • Api: Odata, Rest
  

Froilan Mendoza, startup cto, adjunct professor, geek


JWed/Frumster: PHP, MySQL, jQuery, xajax, memcached, emails via Goodmail and Sailthru, Bugzilla(!), Rackspace
  


Jay Janarthanan, Microsoft Stack Guru
Backend : C# (LINQ, Task Parallel Library)
Development Tools: Visual Studio, ReShaper, ANTS
Profiler, NDepend, , FinalBuilder
Front End : Java Script (Node.js, now.js, knockoutjs.com, ExtJS,
JQuery )
Reporting and BI: Tabule Software, Excel (Real Time Push,
C# Macros, DB Integration), MS Light Switch
Database: Db40 and MS SQL Server
Middleware: WPF REST, Thrift, Web Sockets, Commet

I stay away from :  Silverlight, WPF, SQL Server
reporting, ASP.NET.
Architecture : Clean front and back end separation, All
REST server with NO html generation on the server side.
Micah Craig, CTO and lead developer for SocialWork


SocialWorkout:
  • Stack: jQuery-UI/jQuery, Grails/Groovy, GORM/Hibernate, MySQL, Linux
  • Tools: Pivotal, SVN, gDocs

Tian He, Co-founder & VP of Engineering, Gojee

Gojee
  • Frameworks: Ruby on Rails 3.0, Backbone.js
  • Frontend: Coffeescript / Javascripts / HTML5 / CSS3
  • Information Retrieval: Solr
  • Web Servers: Heroku
  • Database: PostgreSQL
  • Backend Processes: Linode, AWS
  • Queue: delayed_job
  • SCM: git
  • Testing: Rspec, Cucumber, Selenium, Jasmine, TeamCity
  

Gil Hildebrand, Technical Cofounder


Squidoo.com (http://quantcast.com/squidoo.com):
  • Language - PHP
  • Web Framework - Custom
  • Database - MySQL and Cassandra
  • App Server - Apache and lighttpd
  • Caching Proxy - Varnish
  • Hosting - Peer1 Managed
  • Search - Sphinx
  • Email - SendGrid
  • JS Library - jQuery
  

Andy S. Parsons, CTO, Entrepreneur, Hacker, Saxophonist

Obikosh is using this setup:

Languages: Ruby, JRuby, Scala
Frameworks: Rails 3, Pinky, SproutCore, JQuery
Tools: Pivotal Tracker, HipChat, Puppet, Git, GitHub, DeLonghi Espresso Machine
Databases: PostgreSQL 9.x, MongoDB
Search: Solr/Lucene 
Sam Kaufman, Lead Developer, SocialFlow

SocialFlow:
A lot of perl in the back ( Catalyst web framework, DBIx::Class ORM )
A bunch of jQuery and Dojo in the front.
Joseph Misiti, I love computer science

SocialQ's (www.socialq.com) tech stack consists of the following:

Web servers: Nginx/Gunicorn
Framework: Django
Queuing: Celery
Database(s): MongoDB/Redis
Hosting: EC2/S3
Javascript: Backbone.js/JQuery
Email: SendGrid
Data: R, Python, Hadoop, Mongo Map/Reduce
Dev Tools: Github, Asana, Campfire
Payments: Stripe
Adam Gotterer, VP of Engineering @ Lot18

Lot18 (http://www.lot18.com):
  • Languages: Python, PHP, JavaScript
  • Frameworks: Tornado (Python), custom MVC (PHP)
  • Webserver: Apache and nginx
  • Database: MySQL
  • Email: Sailthru
  • Monitoring: nagios, graphite, statsD, splunk, chartbeat, pingdom
  • Hosting: AWS and Slicehost
  • Etc: git, vagrant, chef, capistrano, RabbitMQ, jQuery
Peter Van Dijck, Belgian information architect.


Gush (pre-launch, partly based in NYC and partly in Canada):
  • Scala
  • Play!
  • MySQL, and looking at Solr, ElasticSearch and Couch and Mongo
  • AWS
  • Github


Dag Liodden, VP Engineering at Tapad

Tapad:
  • Back-end - Scala, Akka++
  • Front-end - Scala, custom framework built on Scalatra, Scalate, SCAML, Coffeescript and jQuery
  • RDBMS - MySQL
  • Analytics and DW - Vertica
  • KV store -Citrusleaf
  • Load balancing - nGinx and dedicated hardware
  • Hosting - Hybrid bare metal and EC2
  • JS Library - jQuery
  • Dev tools - Github, Jira, Jenkins, SBT
  


Devon Jones, API Community Manager
Knewton:

Languages: Python, Javascript, R, Ruby (depricated), Small amounts of Java, C, Perl
Frameworks: Cherrypy, KOI, Rails (deprecated)
Webserver: Apache, nginx
Database: MySQL
Monitoring/Testing: Nagios, Browsermob, Saucelabs/Selenium
Hosting: AWS
Queuing: RabbitMQ

Our stack has evolved to be python for writing services, with a front end entirely in javascript.  No html rendering middleware.
  


BlogTalkRadio.com / Cinchcast.com is built on .NET. This might seem like an unusual language for a startup but it's actually very solid, scales easily:
  • C#, IIS, MS SQL server
  • Scaleout for caching and session state.
  • Elastic Search for searching (built on top of lucene)
  • Experimenting with REDIS right now
  • Jira/SVN
  • Load balancing through Coyotepoint
  • AICACHE, Aptimize for optimization


 Chris Sim, Head of tech @ bookish

bookish.com (coming soon) has a services based architecture built with:
Scala - Akka, Spray, Salat, Casbah, Scalate
Mongodb
Solr
Nginx
Javascript - Ember.js
AWS - incl. Elastic Cache, Elastic Beanstalk
JRuby (internal CMS)

 
Naveed Memon, CTO at Verge Systems, Founder at WebHR

WebHumanResource.com:
  • Language - PHP, JavaScript
  • Web Framework: Custom
  • Database - MySQL
  • E-Mail: Google Apps
  • Host: JustHost

No comments:

Post a Comment