March 18th, 2008 — 11:22 am
Steve Yegge wrote a loooong post with tips for finding a job at Google.
He gave all sort of tips, most of them self-explainatory (you should know about Hashtables, Algorithms etc).
But there was one golden advice:
Don’t let the Interview Anti-Loop get you down.
But what is the Interview Anti-Loop?
Every single employee E at any company has at least one “Interview Anti-Loop”: a set of other employees S who would not hire E.
The solution is simple:
“The bottom line is, if you go to an interview at any software company, you should plan for the contingency that you might get genuinely unlucky, and wind up with one or more people from your Interview Anti-Loop on your interview loop. If this happens, you will struggle, then be told that you were not a fit at this time, and then you will feel bad. Just as long as you don’t feel meta-bad, everything is OK. You should feel good that you feel bad after this happens, because hey, it means you’re human.
And then you should wait 6-12 months and re-apply. That’s pretty much the best solution we (or anyone else I know of) could come up with for the false-negative problem. We wipe the slate clean and start over again. There are lots of people here who got in on their second or third attempt, and they’re kicking butt.
You can too.”
4 comments » | Jobs
November 17th, 2007 — 12:03 pm
During the David Platt’s lecture I received a business card from him.
The card’s title is “Rolling Thunder computing” (his company), and his title is: “Supreme and Exalted, Dictator-for-life“
I think that’s the best job title I have ever seen on a business card, and even better - it makes people pause and remember him because it’s unusual.
Do you have special titles on your business cards?
Comment » | Jobs
July 11th, 2007 — 02:01 pm
I previously wrote about career paths for software developers, and most of the career choices require getting away from coding.
It seems people like Rob Walling don’t like the transition:
The end result of promoting your best developers is at best a few unhappy months as they struggle with their unhappiness and desire to return to code. The worst case is they feel unbridled resentment as you watch them rush out the door like there was a 2-for-1 sale at Barnes & Noble.
Rob also opposes the promotion of good developers:
The problem is not that developers are promoted, it’s that the developers who are promoted are the “big producers,” the ones who come through on their projects. These are the same developers who stay late and read software books on the weekend because of their love for programming, which is why they come through on their projects. Promoting someone who loves to write software into a position where they will write little or no software doesn’t make a ton of sense
But who can you promote if not the good workers - the bad ones?
Rob also ignores the age problem in this profession - being a developer at the bottom of the food chain means finding job becomes more & more difficult as you grow older. His solution was freelancing, working as his own boss. That’s fine for some people, but it does carry a financial risk, and not everyone like being a freelance developer.
Comment » | Jobs
July 1st, 2007 — 07:30 am
Suppose you have been a software developer for few years, you know your technology, you are good at what you do - but what’s next?
Looking for answers I found a great post, titled “Why a career in computer programming sucks“.
The author, John Bennett, Jr., lists reasons why it’s a tough profession:
- Temporary nature of knowledge capital - The technology you know now will be worthless in a few years. Mature developers have no significant advantage over younger developers.
- Low prestige - The average person doesn’t really know any famous programmers. You can name BillG, but people know him because he is a billioner. Just try asking someone on the street who Linus Torvald is.
- The foreignization of computer programming - More and more jobs are outsourced to foreign countries and/or cheap workers (even is Israel).
- The working conditions suck - The average employer is contended to dump developers in an open space, and have them fight for decent hardware, although the developer cost much more than any hardware upgrade.
In other words, you got to love this profession to be in it. But love alone won’t protect you against foreign outsourcing or age issues.
So what are your choices?
- Software Architect
- Systems Analyst
- Management (usually starting with a team leader position)
- Project Management (you don’t really manage anyone, it’s more related to a sales position)
- Self employed (Freelance developer, Consultant, Startup founder)
- Specialist / Guru (MVP, consultant, etc)
Comment » | Jobs, Programming
May 30th, 2007 — 01:37 pm
A very long hallway has 1000 doors numbered 1 to 1000; all doors are initially closed. One by one, 1000 people go down the hall: the first person opens each door, the second person closes all doors with even numbers, the third person closes door 3, opens door 6, closes door 9, opens door 12, etc. That is, the n th person changes all doors whose numbers are divisible by n . After all 1000 people have gone down the hall, which doors are open and which are closed?
How many times you had an interview in which you were given questions like this one?
And how many times you have an interview in which you were asked to solve real problems the development in the hiring company had?
Which hiring company would you like better?
Developers are smart people, don’t expect them to take you seriously if you throw logic riddles at them instead of really testing their programming skills.
Let the interviewee solve actual problems - a good developer will enjoy the challenge and will show it.
(The title of the post is based on the hebrew version of the riddle above, in which “people” were replaced by “gnomes” or “dwarves”. I wonder if this tell you something about the Israeli culture)
Comment » | Jobs
May 16th, 2007 — 07:48 am
I was asked this question recently.
I was aware to the fact event differs from a “normal” delegate since it is a multicast delegate.
I may have looked further into it in the past, but when asked I couldn’t recall how those two differ, especially since I always used events, so I assumed event is just a “syntactic sugar” for a multicast delegate.
As it turns out, I was wrong, and events are wrappers around multicast delegates.
Start rant:
I don’t like questions with the structure of “list the differences between X and Y”.
When you ask someone with experience (as oppose to a textbook), you should ask “given scenarios A and B, would you use X or Y, and why?”.
End rant.
Comment » | Jobs, Programming
March 14th, 2007 — 04:01 am
I had a chance to hear that term quite a lot recently, but the meaning is not always the same.
For me, a senior developer is someone who has more responsibility compared to other developers he is working with (usually because he is the type of person who wants more responsibility and has the ability to handle it).
As it turns out, for employers it has a completely different meaning:
- In large organizations (such as banks) there are two types of developers: “regular” developers, allowed only to code, and senior developers, doing also designs. Working on design as a part of the job definition may look trivial to someone who never worked in such a company, but it’s not the case in those organizations.
- Employers looking for someone experienced and wanting to avoid interviewing people with a chance of failing a “FizzBuzz” test. In contrast with my view of the term, the entire development team in such company may be composed of “senior developers”.
If you take the second definition, I think that after you have been a developer for a while (let’s say 5 years), every position you filled and every position you are looking for can be said to be “senior”, depriving the term of all meaning.
What does “Senior Developer” mean to you?
2 comments » | Jobs