9 posts tagged “job”
Now, show us your dream job.
- work with the latest ideas and tools?
- choose the computer platform they prefer to use?
- blog about what they do daily (encourage, in fact)?
- use what they learn in projects and write books, probably co-author with Martin Fowler (another encourage activity)?
- diversify, learn new skills (technical or otherwise), and change role within the organization?
- hold the management accountable to what they preach, and have open discussions?
It's been a week and a half since I've joined a ThoughtWorks project in London. It's been such a refreshing change. The whole team lives and breathes Agile. The code base is not the cleanest I've worked on but actually easier to work with because the team made sensible compromises and did not being stubborn about ideas or patterns. (Actually we still have some way to go on the Mingle front, but that's another story.) We are doing TDD, continuous integration, pair programming with regular rotation, 9-5:30 hours, everyone are treated as equal, basically the whole nine yards! I can foresee the next three months will just disappear quickly. You know what they say, time flies by when you are having fun...
As for London itself, I was pleasantly surprised by all the good/new stuff they have. But at the same time, the Tube still pisses me off, with the never ending tunnels and the asinine system of having to swipe your ticket/card on exit. At least the travel cost is paid for by my company!
I'm going up to Shropshire this weekend to visit my parents. Instead of taking a 2+ hours train ride, I'll be driving a rental car up. I know, it's not environmentally friendly but consider the total amount of driving I haven't done in the last 7 years, I think I can take this carbon emission hit.
I've been pretty quiet on the blogging front for the last few weeks. Partly it is because of the iPhone craze, having friends over for dinner, but in the last three weeks it is because I have been job hunting.
I started the job hunting process more out of curiosity to see what is out there on the job market. Before I even got used to the idea of looking for a new job, the opportunity to work for ThoughtWorks, one of the most innovative software company in the U.S., came out of nowhere. Tentatively I applied and was pleasantly surprised as I went through each round of interviews and tests. It all cumulated to a face-to-face interview couple of Saturday ago at their NY office. For over eight hours, I was put through the paces; logic tests, personality tests, interviews, group interaction tests, just like the scenes in The Right Stuff. I didn't think I did particularly well but apparently enough for ThoughtWorks to offer me a job!
My new job as an application developer will involve a lot of traveling and away from home. To give an idea how much traveling I will be doing, on August 20th I will be flying to ThoughtWorks Chicago office for orientation and then two days later fly to their ThoughtWorks University in Bangalore, India for two weeks training before coming back to the U.S. to start on a new project somewhere in the East Coast.
All these traveling means time away from home and Eiron. Also I will no longer able to play in the tennis league comes fall. I am not sure how much tennis I'll be able to play during the weekend when I am home either but I sure will try.
The flip side of course is the chance to work with the ThoughtWorks team. With Martin Fowler (wiki) as their Chief Scientist, they are leading the charge in changing how software is developed. The opportunity to challenge myself everyday so I will be a better developer easily balance out the sacrifice I'll have to make. I expect it will be an intense experience which would be a complete opposite of what I've been doing for the last 9 months.
More importantly, when we are ready to move we will be able to do so via transferring my job to either Chicago or San Francisco, which would be so much easier than moving without a job or interviewing cross-country.
Keeping a straight face for the last couple of days was pretty tough. Knowing that I'll be leaving in two weeks time made it difficult to react enthusiastically about future plans for the project or team. Surprisingly, my boss took it really well when I handed in my notice this morning, which is a relief. Now I just need to move my ass on getting vaccinated and apply for visa.
Wow, double wow! Scott Hanselman is moving to Microsoft! I worked with him very briefly when I was at Corillian and his deep knowledge of the .Net world inspired me to better myself. His fresh perspective on development process make me think about what kind of programmer I wanted to be. He probably won't remember me but thanks Scott!
And it is a sign because hopefully I'll have something to announce myself early next week.
One of the responsibility of being a manager is that I have to do job interviews. Our team is on the constant look out for new developers to join our team, partly due to pressure from upper management to staff up for some mythical project that may or may not materialise in the immediate future, but really we want to increase the team's overall skill level by hiring better developers, replacing the lesser skilled ones.
Unfortunately finding good developers is not as easy as one may think despite the large number of available candidates out there. Competent programmers are plenty but good, if not great, developers who are not only good at programming but also able to see the big picture, able to visualise the problem domain space and devise solution that not only solve the problem but also fit with the design, seem very rare indeed.
Most of what we've encountered thus far are mostly the competent type with only a very selected few exceptional developers (we hired them as fast as we could, of course). We organise our interview very much with that in mind. Unlike some of the interviews I had taken myself before, we don't ask the candidate technical/code-related questions. We generally take it for granted that if the candidate has been working in the industry for over 5 years, s/he knows how to code. Rather, we ask the candidates about their views on programming paradigm debates; OO vs. procedural, static typed language vs. dynamically typed language, and business logic in code vs. database, etc.
For example, one of the question that we always ask the candidates is what books have they read that change how they feel about programming or how they see the discipline. The question looks innocent enough and generally we ask the candidates about three quarter way into the interview so most of them don't pay much attention. 8 times out of 10, they would answer with the usual collection of 'how-to' book titles: "Programming with C#", "ASP.NET programming", etc. A few, in fact, did not read any software-related books at all. I don't know about the other manager but if I get that kind of answers, that candidate has just lost the job. Reading 'how-to' books, in my opinion, does not improve ones skill as a developers. Sure the book teaches how to solve problems with a specific language using specific tools, but skills like that can always be learnt in a few weeks if required. Rather, we are looking for candidates that want to elevate themselves from being just a programmer to a more rounded developer. The kind of books that we hope the candidates have read are high level books such as Code Complete, Refactoring to Patterns, etc.
Unfortunately, almost none of the candidates we interviewed read this type of books. This left me and the other manager very puzzled because surely there are outstanding developers out there, looking for jobs. Are they so contented with their current job that most of them are not on the job market? Perhaps because if I were the company who has one of them in my team, I'll do a lot to keep him around.
Or are most programmers out there satisfy with their skills set and are not looking to become a better developers? Is this why most software development projects fail? Do all these big corporations out there realise that they are not getting what they are paying for? Is this why we, the software developers, are still not considered a profession like lawyers or doctors despite the complex skills that we need to develop highly intricate software system?
As with every payday Friday, I woke up two days ago and went to check on my bank account on the net. Sure enough my paycheck had been deposited but when I double checked with Quicken, I noticed there was more than a few hundreds dollars extra this time. I thought the stupid HR has screwed up and somehow forgot to take out some deductibles; perhaps my 401k, or my health plan. But I didn't pay much attention (punt not intented) to it as I would find out when they handed out the payslip in the afternoon.
I didn't get the chance to find out though. Mid-morning, my immediate boss took me to the meeting room (the very same office that the director of development vacate not so long ago, we turned it into our meeting room) and informed me that I had been promoted to senior manager and along with that, a pay rise which, of course, explains the extra money in the paycheck!
So I guess I'll have to actually put more effort into my work, administrative-wise, since they are paying extra for it! :-D
Before the head of development leaves my company and moves to Wisconsin with his wife to 'make baby' (their words, not mine). The senior manager would take over his role and share some of the responsibility with me, as I am currently the manager of software development. What would this mean, I don't know. One thing for sure is that without the head of development's shielding us from all the inter-office politics, I will be dealing with the senior management and the crap that comes with it more often than I want to. But no matter, his decision of leaving for the mid-west has already been the trigger of our own plan to move to another city. Now it's just a matter of when and where.
What are 5 things you'd like to accomplish in the next 5 years?
Mmm... I don't normally like to list goals simply because if, for whatever reasons through no fault of my own, I don't achieve them I feel I've failed. But there are always some nebulous goals that I want to achieve in the future and so here they are (in no particular order):
- Move west to another city (eiron and I are thinking Chicago at the moment)
- Buy my first property (most likely because of #1)
- Change job to work on more exciting software, perhaps back to my 'root', i.e. real-time, safety critical software.
- Do more photography and may be go on a photography vacation/tour.
- Go to more Formula 1 Grand Prix races. Canada next year will be a good start.