Tuesday, March 8, 2011

Webkitten Hunting Tips

"So, do you know any available WebKit engineers?"
I've been hearing this phrase over and over ever since I put the word "WebKit" in my LinkedIn profile.
Since I'm tired of answering that question over and over again, and since I'm starting to feel sympathy towards the recruiters in their difficult rare-species scavenger hunt for webkittens, I thought I'd answer three times.

Short answer: no.
Slightly less short answer: All the "WebKit engineers" I know are connected to me on LinkedIn already, and you've already contacted them or are planning to.
Long answer: This is the wrong question. Continue if you want to know why.

Instead of searching for "WebKit engineers", that as you may have found out are few and far between, look for good C++ engineers. If you want to be more specific, find C++ engineers that worked on frameworks/reusable libraries or on cross platform code in general, since the kind of sensitivities you develop when developing reusable library code would be valuable in WebKit.
Another option for being specific, is to find engineers that work on open source projects. Their experience with working with the community and having their code constantly re-evaluated by others would be of help. If you want to be even more specific, you can combine the two (hire people with experience in open-source frameworks/libraries). For example, people who worked on Qt would feel pretty comfortable in the Webkit codebase.

I started working on WebKit around December 2009, became a committer about 4 months later, and feeling pretty comfortable around it by now. Back then I wasn't a "Webkit engineer", but I've become one because I was given the chance. Why not give this chance to others, if they're good at similar technologies or disciplines?

Q: This is all good, but what we're looking for are WebKit engineers. Do you know any?
A: No.

Happy hunting
No'am

Thursday, February 24, 2011

Antitecture

I'm experimenting with a new way of looking at software.
It's the wrong way of looking at software, but I'm experimenting with it anyway.
I call this antitecture - short for anti-architecture.
It's an ideology that claims that architecture is evil and is 100% a bad thing. I hope to make this into a cult and make followers pay me millions of dollars. but I digress.

The idea behind it is that architecture is about scale. In non-software architecture, you design a house on paper and then the house almost literally scales to its actual form. Fixing issues in a small scale later prevents having to solve those issues on a larger scale.
But a lot of what we do today in mobile user-experience doesn't need to scale. It's a bit of content and data that we need to present to the user in a nice way. Not difficult in itself, but gets difficult when we try to apply architecture and concepts to it.

So, if I write a music library that's divided into folders, I do just that - have a data structure of music divided into folders - no "metadata", no "tagging", no concepts. If later I'd need something more sophisticated, I'll do it later.

The bogus theory behind this ideology is that end users have simple needs, and thus the software that serves them should be simple. Our problems as developers begin when we try to apply concepts and architectures that we learned when we were in the "scalability" cult, which is maintained by the illuminati that controls the computer-science universities and the government, to a software discipline that doesn't require scalability, like some user-interface solutions for example.

Of course, some software does need to scale and that's where architecture is a good thing - but I was trying to make a point so don't confuse me with my fallacies.

Seriously though, I think my favorite way of looking at this is: architecture should be a function of scalability. The less your solution needs to be scalable, the less architecture it requires.

No'am