Monday, December 27, 2010

I have a confession to make...

I am not a coder!


Ah, that feels better, like a weight has been lifted from my chest.

Now, let me explain what I mean. I can code, I understand different design patterns, I can break a problem down into tiny little pieces, I can work out the sticking points. It just doesn't rock my world. I'd prefer to spend an hour reading about a new system, a new type of database, Apple's latest shiny new gadget.

At heart I guess I would prefer to spend my time fiddling with a large system and getting it running than staring at strings of characters and sword fighting while I wait for it to compile. Alright, maybe I wouldn't mind the odd sword fight in the office.


This is all well and good of course, I've got a new job that should help me do what I like, but in the past it has caused me a few problems. Firstly there was the boss that told me that I had to do programming for a while because every Systems guy worth his salt has done some programming. This led to a particularly painful part of my working life, where I slowly lost motivation as I repeatedly flung myself at the near vertical learning curve and slid back down to the bottom. Secondly there was the company I worked for that repeatedly told itself that it wanted quality software but didn't practice what they preached, it took a year of badgering from me to introduce code reviews. This was a problem because even though coding wasn't my Raison d'ĂȘtre I cared about whether the product I was working on was good and I know enough about coding to recognise bad code and coding practices when I see them.

Begrudgingly, I probably have to admit that my boss was right, I did need to spend a year or two trying to be a coder to come to the conclusion that I am, in fact, not. This lesson was important because I didn't really know what I was, and I was probably telling myself that I was a coder. There are several reasons for this I guess, I like creating things, doing something constructive and I once had the misguided impression that if you weren't crunching out lines of code then you weren't creating things, you where just assembling parts that someone else had built, not adding something new to the world. Now of course I realise that it is probably harder to be a full systems guy than a run of the mill coder. You need to understand a whole lot and see things that others probably wouldn't be able to see.

I guess the round about point that I am getting to is that, despite what you see around, there is plenty of space in IT for people who aren't coders at heart. Sure, I'm not going to Zuckerberg together a billion dollar website from my dorm room in the wee hours of the morning but equally no site like Facebook works without a whole lot os Systems guys in there doing the hard yards to keep the thing going.

And there concludes this holiday ramble.

Friday, December 17, 2010

So you have developers working for you

They aren't like other people. Their best work may occur at midnight. They, usually, don't need to front up to a customer.

Don't put them on a clock. Don't have a go at them for being 10 minutes late. They may have just done their most constructive piece of work lying in bed between pushes of the snooze button. Developers (and other technical workers) are problem/task focussed so if they are late does it matter if they are completing their work?

Also, because they are problem and task focussed they don't switch off when they leave the office. They just don't think that way. The problem will be ticking away in the back of their mind even if they are doing something completely unrelated. It is not like doing manual labour or customer service, the work continues in the background. They can't 'turn it off'. Watching the clock is important for customer service, or a factory worker if the worker isn't there then the customer can't buy stuff and the widget can't get widgetted. But it's not so important for a developer.

I'm not saying don't make sure they are doing their work, just track it in a different way, use the problems solved, not the hours in front of a screen. Trust is important to developers even if they don't realise it. The subconscious can damage the productivity of someone like a developer a lot more than realised. They may take twice as long to do something and then do it in a less efficient and effective way, they'll get distracted from the task at hand more easily, they'll be thinking How about a cuppa? instead of how do I make this function more efficient/maintainable/reusable. They probably won't even realise this is what's happening but it'll happen none the less.

Also, if you make them think about time they'll also leave on time. I know what you're thinking. What's wrong with that? Well, because they are task and problem focussed when they are happy at work they'll often stay until the problem is solved. They won't be looking at the clock. They'll happily start a new problem with half an hour left in the day and spend an hour on it. On the other hand, one that is annoyed about being clock watched will procrastinate for half an hour, check their email or whatever.

Alright, so if you can't watch the clock on developers what should you be doing? How can you track their progress? How can you know if they are working hard enough?

Well this is where you might have to do a little bit more work as a manager or boss of a software company. It requires that you monitor their work, not just their hours. It also requires you to trust the team and the manager of the team. It's the managers job to track the tasks and make sure they get completed. It also requires constant frank feedback. It takes more than a semi-annual performance appraisal to get the most of a developer. Their minds need to be nurtured with feedback and training, they thirst for knowledge. If they think that you have their best interests at heart I guarantee that you'll get back more than you put in. I suggest you check out Atlassian's efforts in trying to get the most of of their employees which I talked about in an earlier post.

How to Apply for Jobs

In the last 18 months I've gone through the process of applying for (and eventually getting) two separate jobs. I've also seen a few friends apply for jobs, some successful some not successful, and I'd like to think that I've built a little bit of an idea of how to get jobs.

Lets just say at the outset that the best time to be looking for a job is when you're already employed (or if there is no time pressure). Obviously, not everyone is in that situation, if you're in that situation my advice may not work the best, however I think a lot of it still applies.

If I have to be honest, 18 months ago was basically the first time that I've had to go through the formal application process for a job. Prior to that I had applied for and gotten a few part time jobs while at uni and the like but the process was simpler, and the outcome not as important. I basically flowed into my first full time job on the basis of part time work that I did while I was at uni.

Figure out what jobs to apply for.
One thing that I learnt from the job that I am currently in and the one that I will be moving to in the future is, as lame as this sounds, come up with a good career plan. You don't have to go crazy but you do need to sit down and think about what you like to do, what excites you at work and what brings you to tears. If you're a recent graduate you probably don't really know what excites you at work, if this is the case then I'd suggest finding somewhere that is flexible, that allows you to move between projects regularly, I was lucky enough to land a position like that 5 years ago and I am thankful for it. I think that I may have figured out what makes me want to go to work everyday and my new job will deliver that .... hopefully. 

Anyway, the idea is to write down things that excite you. For me this was a job that had both a technical and a personal aspect to it, one that continually changed so that I was always learning and challenged and one with good scope for career progression. For you it'll probably be different, but I'd suggest that if you're young then you really do need to think about a role that has good progression paths. This is one of the key reasons I am leaving my current role, no hope of progressing unless I knock someone off.

Once you've got the ideas sorted and think you know what you want to do talk to someone about it. Find a mentor, someone willing to give you a couple of hours of time to chat to. I was fortunate to have several good contacts, a couple of my former bosses through in their 2 cents and I had a friend refer me to someone quite high up in my field that was willing to chat. It doesn't take heaps of time. A couple of chats to talk through what your thought processes where and to suggest other areas you may not have thought about, like similar roles in other industries.

Now you should have a good understanding of what type of roles you want to apply for and which companies and industries you want to work in.

Fix up Resume and get a decent draft cover letter together.
Ok, this is obvious, but I will say it anyway. Get your resume in order and up to date. There's plenty of information around on how to put together a good resume, so go off and read that. I will add that you should target it towards your chosen job and field. Also obvious I would say. But you'd be surprised how many people don't do this.

Cover letters, you should have a good cover letter aimed at your ideal role. But you won't use this, or rather you won't use this exact cover letter, every cover letter should be specifically targeted for every job application that you complete. More on this later.

Setup JobMail / Job Alerts
Set up job alerts/subscribe to job notifications, there are more places to do this than you think. Firstly use seek.com.au and mycareer.com.au, but also sign up on some of the bigger recruiters like hays.com.au. Then move onto LinkedIn, join groups in your area of interest as well as general job groups like Aussie IT Jobs. Obviously readers outside Australia will need to find other sites like monster.com.

Finally if there are big companies in your field then find their careers site and find there jobs alerts, for me Microsoft and Telstra had good job sites, but also check out consulting firms in your field like IBM. While you're on the sites have a look around as they usually have criteria listed and things that you should consider if you want to work there. Some of them also have the ability to submit a resume and "they'll review it" when they are looking at placing future people, however I never got a response back from doing these.

Hassle your mates
Use your networks, everyone of them that you can think of, chat to people in your footy club, email your old boss that you haven't spoken to for a year, chase up old colleagues. You never know if one of them knows a good role going if you don't ask them for it. Recently for me this didn't secure me the job, but after I applied for one they called someone I used to work with, that I'd already talked to so they where more prepared to talk about me and my suitability.

Which jobs to apply for
While setting up the job alerts you undoubtedly found some jobs that think you want to apply for. I found that reading the ads a couple of times was important, with a gap in between, to make sure that you've read it properly and like what the role has to offer. If you don't know the company then go off and read a bit about them, check if their size is right for you (large companies probably offer more career progression as an example), check to see if you can find good/bad news about them in the media, check where their offices are, how you could get to work everyday.

Also, aim up or at the very least sideways. What I mean is, don't apply for jobs that you think are 'below you', if you do get the job you'll probably want to leave shortly after and resent working there. I say aim high, apply for jobs above your qualifications. I say this for two reasons, a) you might just get that role, it'll be a stretch but worth the hard work b) they may have other roles that are more suited that you missed or weren't advertised. 

Use recruiters to your advantage
Another thing to consider here is your 'recruiter spread', basically you want your details in the hands of as many recruiters as possible. You want to do this for a couple of reasons, the first is obvious getting your name out there in front of recruiters means that there is more chance they'll think of you when a new role lands on their desks. I got quite a few call backs from recruiters with different roles to the one(s) that I had applied for.

The second reason for this is not so obvious, getting advice out of the recruiter. If you do get a call back from a recruiter (or an email) talk to them about what they liked in your application and cover letter, talk to them about the roles you want and your experience. This conversation will work both ways, the recruiter wants the information to better find a role for you and you want to pick the recruiters brains about anything that could help your future applications.

How to actually apply
Ok, by this stage you should be getting your job alerts every morning or so. First thing every day is to sit and read through the jobs that have been sent your way. Do it instead of reading the paper or what ever you normally do in the morning. If you see one that you like apply for it then.

Now, to actually apply, tailor the cover letter exactly to the job requirements, pitch yourself for that exact role, figure out who to address the email to and personalise it. Make sure the date and all contact details are correct. Once you have done it a few times you should be able to fire off a good application in ten minutes or so. Use your draft cover letter from earlier as a starting point and go from there. Before you submit the role on Seek/My Career check if the company has a direct application form on their website, I got better responses going direct.

Apply for the jobs you like as soon as you can conceivably do it. Don't fart about, just get the application in! Unless it is a government role, they are probably trying to fill it as soon as possible so you want to get your application in as soon as possible.

Now what?
Alright, so you've done everything, applied for heaps of jobs and haven't got the response that you hoped for. Don't get discouraged, realistically you're looking at several months to find and interview for the perfect role. I found that job applications direct to companies (as opposed to via recruiters) tended to get more responses. It seems that recruiters only respond if they love you.

If you're not getting responses it is time to reassess. Are you applying for the correct jobs? Is your cover letter a good enough pitch? Is your resume a finally honed job acquiring machine?

Finally, make sure any correspondence is professional, no spelling mistakes, good grammar and punctuation, polite and courteous and so on. Oh and don't use slang!

Got an Interview?
Go and read Here Is The Main Reason Why You Suck At Interviews on Skorks and any other sites you can find that have stuff about interviews preparation is key here.

Remember that the interview (and the rest of the application process) is bidirectional. You're determining if the role and company are right for you as much as they are figuring out if you're right for them. If you get a second or third interview or even an offer it doesn't mean that you have to accept it. Evaluate the company and the role the whole time to determine your fit within it.

I'm sure there is more that I could say but I'll just leave you with this. Have fun and.....

Good Luck!

Thursday, December 9, 2010

RPKI fix for BGP Coming

I am glad there has been a bit of follow up to the incident that I discussed a while ago in China stole my packets, you can read more about it in this article. But basically the big problem with BGP is that its based on trust and one person can potentially poison the routing tables of all the high level routers, if this occurs then it's hard to revoke the table update and correct any issues quickly.

A potential solution, the Resource Public Key Infrastructure standard, is currently under review at the IETF.
"The intent of the overall work, which involves the RPKI as the underlying security platform and secure BGP as a way of introducing signed credentials into the routing system, is to make lies in the routing system automatically detectable and, therefore, automatically removable," Geoff Huston, chief scientist at the Asia Pacific Network Information Centre (APNIC) says. "It will eliminate a large class of problems…Such a system would directly address the [China Telecom] incident."
This will apparently go a long way to solving some of the issues but not all of them. There is more info on the specifics of RPKI in the original article. But the sooner we fix the BGP issues the sooner we'll have a more secure internet.

Wednesday, December 8, 2010

Death By Peanuts

This is a tragedy for sure, but does it reflect a lack of training for the child about his allergy? I mean pretty much everyone knows that Satay has peanuts in it. Even if the average Joe doesn't know a parent of a child with a severe peanut allergy should have researched it and educated the kid. So when I see this article, Ration packs saved $40,000, inquest told and others that discuss the events and the inquest into the tragic death I can't help but think that the kid should have known better.

Now, I am not laying the blame squarely at the parents feet, the school and the teachers are partially responsible as is it would seem the Army (Where the ration packs clearly marked as containing Peanuts?), however despite the best intentions of schools and teachers that strive their hardest to do what it right for the pupils at their schools at some point the child should have thought, you know what this looks like Satay sauce and that has peanuts in it and I am allergic to peanuts.

Why didn't this occur? Honestly I don't know but surely a proper education of the child would have helped in this situation, by 13 they should be old enough to understand the consequences and smart enough to check their food.

Want to remote log out in Skype? Change your password

What a crock! I mean seriously how could you not have a feature like this implemented better?

 Here is the official word on how you remote log out another Skype client you left logged in.
Change your password to make remote Skype clients sign out
Go to File | Change Password
Follow the instructions to change your password.
Now sign out using File | Sign Out
Wait a minute or so
Then sign in again using your new password.
After a short period of time any remote Skype clients that were logged into your Skype username should stop working. They will require the new password in order to log in again.
Doesn't this strike you as kind crap? I mean have a look at Gmail's implementation, simple and effective. I think its an awesome feature that you can log in on multiple computers but also when you implement that feature you have to implement remote log out. The two really go hand in hand if you want a complete solution. It's like implementing login and not logout.

Skype should really get this sorted out in the future, particularly if they are interested in gaining corporate level clients. Just my two cents.

Tuesday, December 7, 2010

Open letter: To Julia Gillard, re Julian Assange

Whatever you think of Wikileaks and their political efforts or Julian and his alleged crimes I think that you'll agree with this letter Open letter: To Julia Gillard, re Julian Assange - Unleashed (Australian Broadcasting Corporation)

The Memristor Mind

I'm a sucker for the Memristor for some reason, I guess it goes back to my roots as an Electrical Engineer and Theoretical Chemist. It has such potential for a new breed of electrical circuitry from new higher density memory to previously impossible computing systems. This brings me to the article behind today's post A Mind Made from Memristors from IEEE Spectrum.

This is awesome news, awesome because even if this latest effort, to mimic the human mind, is a complete failure it speaks to the exciting new possibilities that this breakthrough in fundamental circuit elements exposes. Furthermore this research can lead to newer better architectures for computing and while people often doubt that the power of computing needs to grow at the speed that it does no one can deny the impact (both good and bad) that such massive computing power has allowed to happen.

If you can spare ten minutes or so I highly suggest reading the article A Mind Made from Memristors, it is a solid read but very interesting and goes into some great detail about the difficulties faced in mimicking the mind in hardware and software, particularly interesting is the insight that in the mind, software, hardware and memories effectively coexist, which means the processing doesn't require transferring data around and the software is constantly morphing.

Problems with QE2: The US can't even print money properly.

This gave a me a chuckle this morning, Government can’t print money properly.

What a totally balls up!

Its lucky that QE2 doesn't actually require physically printing money merely the Fed writing itself an IOU but really this doesn't bode well if you ask me.

Friday, December 3, 2010

The Name is Net, StuxNet

This is the 007 of the Malware world.

I read today (in a surprisingly good piece of jornalism for FoxNews) that researches have become more and more intrigued with Stuxnet, Mystery Surrounds Cyber Missile That Crippled Iran's Nuclear Weapons Ambitions. I have briefly discussed Stuxnet in the past and as researchers discover more intriguing things about it I find it more and more interesting.

The most interesting part to me is how it was designed to stay hidden and jump the 'air gap' into the network of computers that control the reactors. None of the computers or devices within the plant have any internet connectivity, for obvious reasons, so Stuxnet was designed to infect plant workers private computers, get onto their USB drives and then onto the plants network.

The second most interesting part is that it was designed to do just enough damage, in an undetectable way, to take parts of the nuclear production line offline in such a way that it seemed like a normal maintenance or other problem.

Finally the specificity of the attack is quite amazing, it was designed to affect frequency converters on Uranium enrichment centrifuges operating in certain plants, made by certain manufacturers with particular control systems. In other words it was targeted directly at Iran's two nuclear plants.

Little doubt remains in my mind that it was constructed by a government agency or group of governments working in collaboration. In the end we'll probably never know who actually created it, but the power of this kind of attack has now been demonstrated and to be quite honest, its disturbingly powerful.

The article is definitely worth the read and goes into a lot more depth on the virus and how it operated.

Thursday, December 2, 2010

Problems Running IIS 7 in Classic Mode

Recently at work we ran into an issue where sites stopped working properly in Classic Mode in IIS7. All sorts of script mapping errors were occurring and the pages where loading incorrectly. When the sites where running in Integrated Mode everything was fine. However, switching the sites over to Integrated mode was not an option  as some of our sites need to be run in Classic Mode to support older methods of gathering statistics from IIS.

Eventually I figured out that the problem occurred because we had added new handlers in the Web.Config, from the outset it appeared that this was a configuration problem. So after a bit of fruitless Googling (I think my Google Fu is weakening of late) I started poking around in the IIS settings and Web.config. That is when I noticed that a few of the handlers had precondition="integratedMode" blindly removing this precondition didn't do the trick. Nor did a few other tweaks that I tried.

Eventually it came to me and I must admit that it took me a little while before I realised that the solution was actually kind of obvious, use the IIS6 Web.Config instead of the IIS7 one. While this may seem counter intuitive it makes sense when you realise that Classic mode was designed to emulate the operation of IIS6 so that sites and server configurations would not need to be changed immediately.

So there you have it, if you must run in Classic Mode on IIS 7 you may just need to use an old school Web.config to go with the old school classic running mode.

Wednesday, December 1, 2010

What? The Labor party appears to be promoting the Nuclear Debate!

Huzzah!

In the last couple of days I've seen various articles like this one about Labor planning to put the nuclear debate on the agenda. About friggin' time!

I mean seriously no political party has actually had a proper look at nuclear power, the Green's will probably never realise that it is probably the best answer to reducing the carbon cost of base load power and the other parties have been scared to raise the issue for fear of the political backlash from the uninformed masses.

The biggest problem is that people aren't even willing to discuss it. It's the hottest political potato around, whenever it is mentioned the issue gets tossed to the side. The recent moves by Senator Bishop and others to defy the 'official ban' on nuclear power within the Labor party and to raise awareness should be applauded.

Personally I am convinced that Nuclear Power is the best solution for Australia's base load power needs now and moving into the future. We have a significant portion of the worlds Uranium resources, the technological ability to build a plant and excellent places to store the minimal waste that is generated by nuclear power.

What we need from this debate is to realise that:

  1. There are methods of nuclear power generation that don't lead to proliferation of nuclear weapons
  2. There are methods of nuclear power generation that generate minimal nuclear waste
  3. There is more radioactive material generated from the burning of coal than the equivalent waste for generating the same amount of power from nuclear energy.
  4. Nuclear's weakness, that is the storage and disposal of waste, is its strength, the only output from a nuclear reactor is heat and a small amount of radioactive material, Coal spews forth large amounts of carbon dioxide, soot, etc that can not be efficiently captured and stored.
I believe that eventually Australia will have nuclear power stations but it may take many years and lots of ill conceived wind farms before we get there. To encourage the debate and hopefully educate some people to the benefits and not just the downsides of nuclear power is a great step in the right direction. Now if only we could dial back the political point scoring from baseless scaremongering we may be on the right track.

After I wrote this post the 7PM Project posted a story discussing the issue, looks like they are planning to talk about it tonight.

Oh and in answer to their question.
Would you like a power station in the neighbourhood?
I would be fine with living near a Nuclear power plant, however as I chose to live in the inner city I doubt that its going to happen.