
Founding a company in the high-tech industries requires a lot of technology know-how in your startup. It is a core competence you should value. Always focus on delivering a cutting-edge product that sits on top of the best and often one of the newest technologies and services in this area. This enables you to gain significant advantages to competitors with regards to short development cycles, a scalable infrastructure or flexible feature sets.
This week our business department is working in China, so it is time to speak about the geek topics or let's say about Internet and Web technologies, software engineering issues like scalability, software architectures, best practices in software development and of course testing.
So how can you develop a cutting-edge web application as a bootstrapping startup? First of all, throw away the believe that everyone else has more resources and can do a far better job. That's theory, same is the believe that large companies know everything better, have the best technologies, the best tools, the best work flows or the most valuable experiences. Reality is that you have the big advantage to set up everything to perfectly suit your organization, your work flows and your software development methodologies. In a startup there are no legacy systems, no dependencies on software contracts or "preferred or de-facto standard" technologies.
Sascha and me, the IT department ;-), already made a lot of experiences in the area of software development at our studies, in research environments and in large companies. Combining, rethinking and discussing all these experiences and we have a pretty good starting position where you can do more with less which should be the goal of every startup.
So here are the things we play with everyday after our development call, when we discuss the next steps and the latest commits.
Mac OS X, Git, Textmate, Terminal, autotest, Sphinx, Firefox + Firebug, Opera, Safari, IE, Campfire, Redmine, Skype, PostgreSQL, Postgis, SQL, Ruby on Rails, Ruby, Rake, RSpec, a dozens of plugins and helpers, Google Maps API, (Reverse) Geocoding API, Prototype, Scriptaculous, ReCaptcha, (X)HTML, CSS, JavaScript, Http, REST, API, XML, JSON, KML, RSS, GeoRSS, AWS, S3, EBS, EC2, SSH, Linux/Debian, Shell scripts, Administration utilities, Cacti, NewRelic, Monit, Mongrel, Nginx, haproxy, load balancing, Starling, memcache, capistrano, scalr, staging, Splunk, SNMP, Selenium, Agile Development, Test Driven Development and many more
Naming & Caching are always the hardest problems in computer science. Sascha complains about my naming of variables, file names or markup ids and I complain about his, so we are having a lot of discussions about appropriate names and we spend the extra hours to make everything seem logical and easy to understand. Tagcrumbs is not a project where you have a deadline and you don't care about what happens afterwards. So we avoid all dirty hacks and "solutions" that solve some problem just temporarily. At one point we will write about our key learnings and what worked best and what not.
There are just too many websites who are driving into a one-way street after some months of development. Web applications have to evolve and adapt as any other product, so halt is your death.
To conclude, keep an eye on the technology side of your startup and it will become a lot easier to market a product that just works and what your customers love.







