Career advice 5 - Publish your projects

Posted by Patrice Neff Mon, 03 Apr 2006

Software developers can be judged best by their work. A CV or even an interview can never really be trusted. While I try to very honest in my CV I have seen some CVs that will make me double-check every claim an applicant makes in his CV. Some of my classmates of my apprenticeship would write they had a "good" understanding of C++ while they just barely knew that it was some object oriented programming language. And I have gotten requests by friends where they asked me to define some terminology. It later turned out, that they needed that to put into the CV. "Ouch" is all I can say about that.

But how can your potential employer ensure that you actually know your stuff? Recommendations are important. Can they call your former coworkers and ask about your performance? This can also be dangerous though if you left the job with sour feelings. The company may give you bad ratings because you criticised the company strategy a bit too loudly. I haven't had that experience myself but have friends who did.

What nobody can influence though is the quality of the projects you publish. An extensive software project shows your creativity, problem solving skills, communication skills, code quality (if you publish the source code). And it shows that you are actually able to deliver and know the programming language you are using. All things that your employer will want from you.

There are several ways you can do that. The most obvious is to implement some idea that's floating around your mind and publish it as free software. Or you can put out some Web project. Be aware that this requires quite a time commitment, though. Something not everybody is able or willing to do.

The second option is to participate in an existing open source project. Found a bug? Fix it. Have feature request? Build it. All of that is visible as well and gets an URL. Document the work on your Web site (as you now have one, don't you?).

And the third option is to make the work of your current job public. Are you working on something that could be bundled as a product? Publish it as free software. Of course, that's not your decision but has to be approved by your boss. If you need a case study, point your boss to Ruby on Rails. Published by David of 37signals, that company is now extremely well known and produces a lot of buzz on the Web. Rails was originally created as part of Basecamp and then extracted and made public.

No matter which way you choose, make sure that the code you publish is of good quality. Take pride in your code and see it as a piece of art. Actually you should always do that no matter whether the code is public or not.

To some extend I have taken all three routes. I have published a lot of projects (blog directory, Swiss weblog statistics, Media Manager, Bookmark Manager, though I'd like to remove that code from the Web because it's horrible). Also I have contributed patches to some open-source applications. And I was able to publish a research document I did at namics (Web application security).

Career advice 4 - Knowledge management

Posted by Patrice Neff Tue, 28 Mar 2006

It is my opinion, that knowledge management is very important in the tech sector. For companies it's immediately clear why. But it also makes sense for developers. Being able to look up knowledge and also specific solutions in your personal repository will make you a faster and better developer. My knowledge management includes the following items:
  • Solutions to problems I had. Somehow the same problems/challenges seem to pop up every now and then.
  • Working code for common problems.
  • Documentation, books, standard documents, research papers.
  • My own descriptions of technologies (applying the old trick that you understand stuff better after describing it yourself).
  • Description of applications I have worked with, including solutions to problems.
  • Links.
  • Any other knowledge I want to keep. This is not necessarily tech related. For example I follow a few countries more closely than others (Switzerland, Japan, Peru) and put news of those countries into my repository as well. And my diary is also in the same database.

For most of my knowledge management I now use DEVONthink Pro. Before that I used a Wiki. And as far as I know Roger uses his blog as a knowledge repository. For managing my links I use del.icio.us.

I also put mails into my knowledge database. Before using DEVONthink Pro I just put them into some special folders in my mail program. This mails include mainly good tips from mailing lists.

If your company has some knowledge repository your want to participate in that as well. And if your company doesn't have anything like that yet, lobby for something. At namics it's a Notes database with articles filed under topics, at local.ch we have a Wiki. Both approaches work well.

At first sight it may look like you don't profit from participating in that repository. It looks as if only the company takes value out of it even to the extent that you can be replaced a lot easier if you document your knowledge. Many people I know actually have that opinion. For a variety of reasons I disagree very strongly with that assessment. Most important is that you will never be able to put all your knowledge into that database no matter how hard you try. Most of your value comes from the experience anyway. So while you do spread knowledge and therefore make yourself a bit easier to replace, at the same time you show to your coworkers and bosses how much you really know. There are additional advantages which I will explain below.

Say you document your knowledge about some obscure CSS implementation bug and put it into the database. You will get noticed as a CSS expert. So next time somebody has some CSS bug that needs debugging it's quite likely that he will contact you. We are talking job security here.

Or say you have 300 articles about that content management system that your company uses extensively. Even that personal manager who knows nothing about technology will see that the company won't be able to replace you without problems. Again, it's about job security.

A job is a lot easier to get if you have recommendations by coworkers who already work at the given company. I've also received mails by friends asking me about a person I knew from previous jobs or from school. Positive recommendations are easier to get if people know you from the knowledge repository. For example at namics I often got help requests from people at the German offices even though I didn't know them personally. Reason: they saw my name connected to that topic in the knowledge database. I'm sure that some of those people would put in a word for me should I try to get a job at their new work.

Sometimes your articles may lead to a discussion where other people propose better solutions, other workarounds, other products or whatever. So you learn as well. And to me it happened often that when writing a short note I would research a point for a few additional minutes. And sometimes during that short research I learned a lot of additional things.

The net result of contributing to the company knowledge repository is therefore that you make yourself seen and respected and that you learn more. And you help your colleagues which in itself is a good thing.

Quick action for today: do yourself a favour and think a bit about how you want to manage your knowledge.

Career advice 3 - Write & Publish

Posted by Patrice Neff Mon, 27 Mar 2006

In my opinion a central point of improving the likelihood of getting a job is making yourself known. Show the world and thus also your future employers what you know. There are a few ways to do that.

You can contribute in mailing lists, newsgroups or forums. For some time I was very active in some German Visual Basic newsgroups. And I actually got quite a few job offers (permanent and freelancing) in those days. But that was still during the apprenticeship so I didn't accept them. There is probably some list for just about any topic you might be interested in. If for some reason there isn't anything, yet, you can always create a mailing list yourself (or a forum though I have a strong dislike for forums).

Having your own Web site also helps. This can be a list of articles you wrote, you can publish software there (more on that in a future article), put on your CV (though I personally have not published it because it contains private information) and also publish private information as well. Today a weblog is often the easiest and most logical solution for that. Personally, I use both. I have traditional Web site with long term stuff, such as software I published, and my weblog where I nowadays publish all of my stuff. It's actually possible that one day my weblog will replace my Web site.

On that Web site of yours write about your experience with technologies, report proudly when you found some bug that you were able to fix, publish learnings, recommend tech books you like, etc. There is endless content just waiting for you to write it. And if you decide to also write about other topics, that's fine. On my weblog I write about a lot of other stuff as well (politics, Peru, Japan, Switzerland and sometimes a bit of private stuff).

That Web site will serve you nicely when applying for a job. Put the Web site URL prominently into your CV and your future employer can find out a lot about how much you really know and who you are. It gives you a lot more credibility when the company can read details about actual problems you have solved in C++ than when you just write "have worked with C++ for two major projects" into your CV.

Make sure that your Web site doesn't come after you. For example there is at least on blogger in Switzerland to whom I'd be reluctant to give a job because of his weblog. He publishes a lot of things that lead me to conclude that his knowledge in the topic he writes about may actually be good, but that he is very arrogant about it. I don't like to work with arrogant people and try to prevent it from showing up in my behaviour. And I'm sure people will also call me arrogant for writing this.

Anyway, let me conclude with saying that only people who know you will consider giving you a job. And by making yourself known to a wide audience you may actually get job offers instead of having to run after a job yourself. And what's better than that?

Career advice 2 - Learn, read, learn, read, ...

Posted by Patrice Neff Fri, 24 Mar 2006

(Nur auf englisch damit du den letzten Tipp gleich umsetzen kannst).

This advice should be pretty obvious. But I meet far too many people in this industry who don't like to read. In my book (no pun intended) it's pretty much impossible to survive in our business without the willingness to learn a lot. And there is no cheaper and better way to learn than reading. I've always loved reading and I'm a natural autodidact, so that was not a difficult lesson for me to learn. I actually prefer reading technologies from a good book to course lessons.

One thing you really should learn is parsing a lot of text quickly for some keyword. Though I have that gift, I have no idea how you can learn that. You may want to buy one of the many speed-reading books or search the Web for some advice (look for speed reading).

So, what might you want to read? There's a lot of stuff out there that may help you. Of course, the obvious answer is reading books. I myself am a book addict. And when you want to learn a technology from the ground up a book is often the best way. Also when you have a problem at hand, O'Reilly Safari Bookshelf often comes in extremely handy (though more for big picture questions than specific error messages). Safari is also available as a site license for groups of five or more. You may want to lobby your boss about this. Unfortunately no pricing is published for the site license.

Then there are application documentation, standards (I LOVE reading RFCs), weblogs, wikis, mailing lists and newsgroups. And of course there's the Web as a whole. It includes many a gem that you really need just now for just your problem.

Overcome your reluctance and start to love reading. It's worth it.

Karrieretipp 1 - Lerne Englisch

Posted by Patrice Neff Mon, 20 Mar 2006

(This article is also available in English).

Vor einigen Tagen schrieb ich über den Arbeitsmarkt in der Schweiz und versprach einige Tipps, wie du deine Chancen verbessern kannst. Diese Tipps sind vor allem für Leute gedacht, welche momentan in der Lehre, Fachhochschule oder Uni studieren. Es ist klar, dass ich mit meinen bescheidenen Erfahrungen nicht sehr viel darüber weiss. Aber ich habe einige Ideen, welche ich kommunizieren werde. Ich hatte auch schon einigen Kontakt mit Praktikanten und kann die guten von den schlechten unterscheiden. Oder anderes gesagt: jene, welche ich einstellen würde, von denen, welchen ich unter keinen Umständen einen Job geben würde.

Und hier kommt mein erster Tipp: Lerne Englisch.

Sehr viel technische Dokumentation steht nur auf Englisch zur Verfügung. Vor allem für neue Technologien. So gibt es zum Beispiel meines Wissens kein deutsches Ruby on Rails Buch. Bücher sind allgemein ein gutes Beispiel. Die meisten deutschen Bücher wurden aus dem Englisch übersetzt und Monate nach dem Original veröffentlicht. Und die meisten Bücher werden nie übersetzt. Lerne also, Englisch zu lesen.

Falls du bei der Entwicklung einer Software oder Technologie mitmachen möchtest, wirst du wahrscheinlich eine Mailingliste oder Newsgroup abonnieren. Auch diese sind meistens in Englisch. Und wo es auch eine Deutsche Liste gibt, ist die Englische Liste meistens besser. Also solltest du auch lernen, Englisch zu schreiben.

Und schliesslich musst du wahrscheinlich auch ab und zu per Telefon mit Ausländern kommunizieren oder möchtest an einer Konferenz teilnehmen. Die Caron Workshops sind zum Beispiel aus der Schweiz gut zu erreichen. Lerne also auch Englisch zu sprechen und verstehen.

Wie kannst du konkret anfangen, Englisch zu lernen? Die meisten Schweizer in meinem Alter haben bereits an der Schule Englisch gelernt. Die Grundlagen sind also vorhanden. Um die Lesekenntnisse zu verbessern, fange einfach an zu lesen. Schnapp dir am besten ein Buch, welches du bereits auf Deutsch gelesen hast. Ich habe aus genau dem Grund vor einigen Jahren John Grishams Bücher zu lesen begonnen. Auch kannst du beginnen, verschiedene Englische Weblogs oder Mailinglisten zu lesen. Und um das Verständnis zu verbessern, abonnierst du am besten Englische Podcasts.

Career advice 1 - Learn English

Posted by Patrice Neff Mon, 20 Mar 2006

(Dieser Artikel steht auch auf Deutsch zur Verfügung).

As I wrote a bit more than a week ago, I am giving out a few tips how you can improve your chances in the tech job market. This is mostly targeted to people who are currently in their apprenticeship or maybe at university. I'm far too young an inexperience to know a lot about such things. But I have a few ideas and those I'll voice. Also I have dealt quite a bit with interns and know which ones I would employe and which ones I wouldn't.

So my first tip: Learn English.

A lot of technical documentation is only available in English, especially for new technologies. Books are a case in point. Just look at the books available from O'Reilly in English and in German. Most German ones come out in English first and are only translated to Germany months later - if at all. So, learn to read English.

If you want to participate on some software or technology, you will probably subscribe to a mailing list or newsgroup. Again, most of those are in English and where German and English are available, the English list is usually of better quality. So, also learn to write English.

And last but not least, you may have to communicate to people over the phone or may want to participate at a conference. For example the Caron Workshops are easily accessible from Switzerland. So, learn to understand and speak English.

But how do you start improving your English? Most Swiss my age already studied English at school. So the basic knowledge is in place. To improve reading, just start to read English. Pick up some book that you already have read in German. I started to read John Grisham's books a few years ago for exactly that reason. You may also want to follow some English weblogs or mailing lists. To improve your understanding, you may subscribe to some English podcasts.

Tech job market in Switzerland

Posted by Patrice Neff Thu, 09 Mar 2006

It appears that the Swiss job market in the tech sector is not as bad as I thought for some time. If you are a well-qualified individual you should have no problem finding a job - at least in the Web sector.

Why do I say this? Well, recently Bitflux had a job opening (now filled), local.ch has also been looking, as is now search.ch. namics has a few job openings as I'm sure have other agencies.

All of them have one thing in common which was not always true for our sector: they look for highly skilled workers (though namics also has internships in Baar/Zug and in St. Gallen). A few years ago, companies in our sector were adding people to their workforce like wild and thus had to sacrifice on quality. Now it's the opposite.

I for one believe that is a very welcome change and so do many of my friends. But I also know a few people who profited from the "more liberal" practices during the dot-com boom.

Anyway, I'll add a few articles in the following weeks on how to improve your chances for getting an employment in this area. It won't be rocket science but I hope I have a few tips to share. Those articles will be available in English and in German.

And I suggest you tag job openings on your weblogs with the "jobs" tag. That will allow job seekers to watch the tag (or subscribe to it).


Update 1: Forgot, that KAYWA also is looking for talent.
Update 2: And Google also is looking. (Via relab.ch).

Google switches from Intel to AMD

Posted by Patrice Neff Thu, 02 Mar 2006

Heise reports in it's article Google wechselt von Intel zu AMD, that now purchases it's processors from instead of .

Great stuff.

Inside Pixar

Posted by Patrice Neff Thu, 02 Mar 2006

There is a write-up on Ain't It Cool News about a visit at . Obviously they have a lot of creative talent and it's interesting how they give them the freedom. For example the designers all design their office themselves.

Also interesting the center atrium:

The mailboxes, the employee café, and the common room where all the games are all open into that atrium, and people lingered, talking, exchanging ideas and discussing the various projects they’re working on. It seemed like a fertile, creative environment, and I felt like Charlie Bucket holding a golden ticket as I examined the larger-than-life INCREDIBLES statues in the center of the atrium and the concept paintings hung on the walls.

But just go and read the article.

Schweizer Werbung aus dem Ausland

Posted by Patrice Neff Tue, 06 Dec 2005

Das Schweizer Fernsehen ist mit einem neuen Auftritt online und auch die Gestaltung am TV wurde geändert. Heute lese ich jetzt, dass einige der neu eingeführten Töne bereits wieder geändert werden müssen. Grund: sie ähneln dem Swisscom-Jingle.

Aufgeregt hat mich dabei folgendes:

Die so genannten Werbetrenner werden eingesetzt, um den Übergang von Programm zu Werbung optisch und akustisch anzuzeigen. Kreiert wurden sie laut Durrer von einer Werbeagentur in London, welche das Swisscom-Signet nicht gekannt habe. Die betroffenen Werbetrenner würden in den kommenden Tagen geändert.

Erstens bin ich ja der Meinung, dass Werbung für Schweizer Publikum von einer Schweizer Augentur entworfen werden sollte. Beziehungsweise wenigstens von Menschen mit lokalen Kentnissen. Deshalb ist für mich der Entscheid für eine ausländische Agentur schon mal falsch (wobei ich aber natürlich von dem Geschäft so gut wie nichts verstehe).

Und zweitens werden meine Gebührengelder an eine ausländische Organisation abgedrückt. Na hört mal her, wieso geht das Geld nicht an eine Schweizer Firma? Weiss jemand, ob es wenigstens eine faire Ausschreibung gab?

"Don't be Evil" explained

Posted by Patrice Neff Tue, 06 Dec 2005

Google's motto is Don't Be Evil. Now it's CEO Eric Schmidt explained this under a different light then I used to look at it:

How has "Don't be evil" helped Google? When I showed up, I said, “You’ve got to be kidding.” Then one day, very early on, I was in a meeting where an engineer said, “That would be evil.” It was as if he’d said there was a murderer in the room. The whole conversation stopped, but then people challenged his assumptions. This had to do with how we would link our advertising system into search. We ultimately decided not to do what was proposed, because it was evil. That kind of story is repeated every hour now with thousands of people. Think of “Don’t be evil” as an organizing principle about values. You and I may disagree on the definition of what is evil, but at least it gives us a way to have a very healthy debate.

But as you’ve grown, outsiders apply their own view of what is evil and use it to point out your company’s flaws. There’s nothing wrong with that. We believe in that sort of criticism. But the way “Don’t be evil” works is no different from pulling the rip cord on the Japanese assembly line. Any person on the assembly line can pull the rip cord to stop the line. Think of it as employee empowerment.

I particularily liked the comparison with Toyota: “Don’t be evil” works is no different from pulling the rip cord on the Japanese assembly line. So under that aspect I believe that many companies, especially the ones who are developing a product, would profit from such a mantra or cord if you like that metapher better.

(Link to interview found via SearchEngineWatch)