Questions I want answered as a technology cofounder
Clone this wiki locally
Add the questions you want to the know the answer to? or questions that you struggled with when you started
Gap between scaling experience and blog posts
It's easy to read a blog post or listen to an amazing AirBNB engineering meetup (I love those things) and get a general over view of what it takes to scale, but it's hard to really understand how things like database indexes, locking tables and resources, etc really affect your apps until you've deployed a web app that is constantly under load. At some point just spinning up more Heroku dynos isn't going to work unless you've addressed the architecture issues.
A startup is very different than a hackathon where you are only working together over the weekend towards a fixed goal. Personally I could definitely use some help in understanding the best way to work with contractors and finding the best tasks in my roadmap to hand off to remote contractors.
Vision and Tech Alignment
As the startup grows, how do I keep the tech projects, code work and analytics tracking in line with the vision of the board and CEO. The expectations and vision can change almost everyday while accelerating growth. In addition to that, trying to raise another round is a constant priority. How do we prioritize, communicate and justify the tech work?
Justifying Mature Optimization (...not premature optimization)
When growing fast (as a startup does), some ideas will get thrown out and others will be pursued. When exploring new ideas, justifying the minimal use of tech work on those ideas can be hard to communicate across the management team.
Maintaining a flexible, experimental environment
Whether it's for optimization or for new ideas for revenue streams, how do you maintain flexibility in the codebase to build quick and dirty new experiments as your core product continues to get larger and larger? Is the solution in team management or setting up alternate domains not associated with the company brand or something else?
Refactoring / Repaying technical debt
When do you decide it's time to refactor or do a major overhaul to get rid of all that technical debt? And how do you convince the team that it's necessary to stop what they perceive as forward development and progress in order to "redo old work"?