What motivates your programmer?

We’d like to deliver great products on tilllate.com. For great products you need motivated developers. So recently, Leo, Stefan, Maarten, Mario and me did a brainstorming about “what motivates programmers”. Here are the results:

1. Offer him the best type of work

Avoid giving finished specs to your developer. Let him do the specifications himself. Let him do the technology selection. Let him define the architecture. Give him challenging tasks to do on technologies he has never used before. Keep routine and maintenance work from him (nevertheless, someone has to do those tasks).

Continue reading

Posted in Management | 4 Comments

Avoid the query: Peter spoke at webtuesday.

After a day of speaking about about memcached, squid and sharding at the tilllate offices, Peter was still fresh enough to hold a talk about Advanced MySQL Query Optimization for the Webtuesday (notably on a Wednesday).

Even though we announced the talk just three days ago I’ve never seen the room at namics packed so much. Even the Ruby guys around Tristan cancelled their Höck and joined us! No surprise: Peter is well known through his Mysql Performance Blog.

Continue reading

Posted in Webtuesday | 1 Comment

Peter Zaitsev of the MySQL Performance Blog speaks in Zurich

Peter ZaitsevBusy week for the open source IT pros around Zürich: On Thursday Vint Cerf will talk at Google. On Wednesday, Nov 21st tilllate is happy to announce a presentation of Peter Zaitsev of the MySQL Performance Blog. He will talk about query optimization for high traffic sites.

Peter Zaitsev was manager of the High Performance Group at MySQL Inc. He specializes in MySQL Server performance as well as in performance of application stacks using MySQL, especially LAMP. Web sites handling millions of visitors a day dealing with terabytes of data and hundreds of servers is king of applications he loves the most.
Continue reading

Posted in Database, Webtuesday | 2 Comments

Squid and Mysql metric scripts for Ganglia

Ganglia Title imageAfter a long day of meetings and other tedious manager work the perfect way to relax is to code. The best is a mini-projects where you see your results after an hour or so. I call these tasks “Plausch-Projekte” (“plah-oosh project” =”fun projects”).

This week my plah-oosh projects were two metric tools for Ganglia. Besides Nagios Ganglia is the main monitoring tool for our cluster. We monitor something like 20 metrics like load, memory, disk usage, network activity.

Ciprian and Stefan recently built a script to monitor apache (bytes/sec, hits/sec, idle processes etc.) via the /server-status interface. Based on their work I hacked two scripts:

ganglia_mysql_metrics.php monitors multiple mysql parameters like queries/sec, slow queries/sec, threads connected:
Screenshot of mysql_* metrics in Ganglia

ganglia_squid_metrics.php reports regularly about squid metrics: Requests/sec, service time, available file descriptors:

Screenshot squid metrics in Ganglia

The scripts are quick and dirty code. Procedural. Not well documented. Does only read the mcast_port from the config file and ignores the rest. But it might be a good base to be used on your cluster too. Just call them every minute via the crontab.

Posted in IT Infrastructure, PHP, Programming | 10 Comments

Query Optimization Challenge

StopwatchEvery few months at tilllate we play the query optimization game. At this game I use the slow query log to find out those queries the most load on the servers.

With the queries I found I then either: optimize the query or cache the results to avoid the query.

I prefer the former because caching means data duplication. Which is not very DRY.
Continue reading

Posted in Database | 3 Comments

Five ways to impress at the job interview

Job interview

As CTO I often have to do job interviews. Recently, I spent two days interviewing candidates for our tilllate development center Belgrade (Yes, I am one of these brave CTOs having a distributed team :-)). So here’s five tips to impress your employer of your dreams:

Keep a low profile!

Andy writes in his CV that he’s "extemely experienced in OOP". And when I ask him why he thinks he’s so experienced OOP he tells me: "My biggest class has 25’000 lines.". Ooops. God class. Classical Antipattern. Not only he showed that he has no idea of good OOP coding style. But also he cannot judge his own skills. Once at your company he’ll be the guy grabbing every cool project but then not finishining due to missing skills. Zap. Disqualified.

Continue reading

Posted in Management | 2 Comments

Visit of the Silverlight evangelists


There are two ways convince a company to switch to a new programming language. The old fashioned way is to send out salesperson. They get in touch with the CEO show them a few Power-Point slides, throw some buzzwords at them and voilà, Mr. Manager will introduce that new technology.

Well, he will try to introduce that new technology. In most of the cases it won’t work. Because usually the CEO looks at other things when deciding for a programming language than the development team. The dev-team won’t accept the new technology. This will slow down development and thus reduce productivity.

Continue reading

Posted in Management | Comments Off on Visit of the Silverlight evangelists

Sharedance, Memcached and Cache_Lite

Treasure ChestWith 125 million page impressions a month and highly dynamic content, caching is essential for tilllate.com. At tilllate, we have worked with several different caching techniques. Before we used caching, we just pre-generated the data: A nightly cron job populates a database table or generates a file containing the expensive data. Usually expensive queries, like the Most viewed pictures.

Then we are using Cache_Lite a lot. For example our homepage: If you look at the source code of our homepage you will notice the string <!--cache id a:4:{i:0;s:1:-->. This means that the page is coming out of the cache. There are a few disadvantages of Cache_Lite:
Continue reading

Posted in PHP, Programming, Web Development | Comments Off on Sharedance, Memcached and Cache_Lite

Applikationen von Drittanbietern integrieren.

IntegrationBei tilllate ist momentan eine Diskussion zum Thema “Integration von externen Applikationen auf www.tilllate.com” im Gange. Dieser Artikel beleuchtet Kosten und Risiken einer solchen Integration.

Beispiel: Anstatt ein Forum selbst zu entwickeln, soll FUDForum oder phpBB genommen werden und auf tilllate.com integriert werden. Damit sollen Entwicklungskosten und -zeit gespart werden. Warum etwas, was es auf dem Markt schon gibt, selbst entwickeln?
Continue reading

Posted in Management | 4 Comments

PHP5-Entwickler im Aufstieg

TreppeIhr habt spannende Projekte, ein tolles Team, fünf Wochen Ferien… aber tut mir leid… Ihr arbeitet mit PHP… Ich möchte eher Richtung Java gehen“, hat ein Bewerber für die Software-Entwickler-Stelle seine Absage begründet.

Ich denke, das Image von PHP ist ein Problem für Unternehmen, welche PHP-Talente suchen. Erwähnt man PHP, dann kommt dem Software-Entwickler Stichworte wie “Gästebuch-Programmiersprache”, “Personal Homepage Processor”, “Spaghetti-Code”, “Sicherheitslücken in phpBB” in den Sinn.
Continue reading

Posted in Programming, Web Development | 15 Comments