Tuesday, 21 September 2010

Covering Letter sent to Autonomy

I sent off my first covering letter just now (with my CV) with the subject heading 'Software Developer Internship/Graduate opportunities at Autonomy' as follows...
Dear Sir/Madam,

I am writing to enquire about any Software Developer internship or graduate career opportunities available at Autonomy. I am a final year PhD student at Imperial College London awaiting my viva which is due to take place in early November. My area of study is Computing and, more specifically, the focus of my dissertation has been information exchange in societies of autonomous agents for resource allocation problems.

I hope to utilise both the practical and analytical skills acquired during my undergraduate and doctorate degrees, as well as previous employment, to work for a company at the forefront of technology. The area of intelligent information is of particular interest to me and I would be most appreciative of an opportunity to work with the great minds at Autonomy, to learn more about the solutions employed and to contribute to the development of the company. In addition to my core experience of working with a range of software and programming languages, I believe I have the qualities of self-motivation, problem solving, communication and teamwork required for a career at Autonomy, as demonstrated and developed over the course of my academic, career and voluntary pursuits.

I would be available to begin at the earliest opportunity and am pleased to provide further information about myself in person at any time. I have attached my CV, thank you for your time and look forward to hearing from you.

Yours faithfully,
Adil Hussain (07954 402 672)

Exciting times! :)>

CV and Covering Letter - feedback from Careers Adviser

I sent my CV and covering letter to the Imperial College Careers Advisory Service and got some (good!) feedback as follows...
Your CV
This looks really nice - it's well structured, well presented, looks good, easy to read and communicates all the relevant information. Well done. I'd only have some very minor suggestions that might enhance this.

1) You've put a line across the page each time before your heading, and you could consider using this line underneath your heading - the overall effect would be the same and it would still divide up your information into easily recognisable sections.

2) I'd also suggest losing the very heavy lines at the top and bottom. A very effective way for setting out your information could be to use your name (as you have) in the centre, but also centre all the other information, with your address in one/two line(s) followed by the other information. Sub-headings like 'email' or 'address' are not needed - this is self-explanatory.

3) for your Education section, consider losing the gaps after A-levels and GCSEs. Creating a different 'block' is making the eyeline jump across when reading.

4) Career History: this could be divided up into two sections: 'Technology Employment' and 'Other Employment' and then you could structure the work experience within these sections. Also, you need to add a job title for each of these entries and the place, e.g. city (or country). Consider moving some of this info to page 2, as you've got it all squashed up on page one leaving a big gap at the bottom of page 2. Aim for two well- balanced pages.

5) I would also suggest providing more information for your work experience. You've got one bullet point for Tessela - consider using another with a bit more info about what was involved in building this system - did you work on your own or in a team? Did you communicate with anyone - had meetings, liased etc. also, did you have a deadline to work to? Consider giving some insight into the transferrable skills you've used. Same with Argugrid. How did you participate- what did you do?

6) Teacher Training Agency - this is also a bit vague - what were your tasks? You were in charge of a team, but what did your team do? If you were in charge of teaching - did you teach yourself? Consider including planning lessons, developing excellent communication skills and interpersonal skills (?) - if appropriate.

7) Overall, aim for around 3 bullet points of info about your work - the reader needs to understand what you did, what was involved/e.g. how you did it and what you learned from that, e.g. skills developed. You've got plenty of space left at the bottom, so that's fine.

8) the last two sections could usefully be changed. Normally, it's SKILLS & TRAINING after your work experience. This is about hard skills, e.g. your IT skills and languages, also the first aid course, but could include driving licence or any other courses you've attended. For languages, give some indication about how well you speak/write Urdu, Punjabi and Arabic.

9) your last section could be Interests and Achievements. Consider using sub-heading to organise this information. You could use the information from your current skills/interests section and copy over the sports. Travel could be useful, but then state where you've travelled to, how long - mention development of language skills, adaptability and insight into other cultures, if you've travelled extensively. Make it useful for the employer.

Overall, this is a great CV - well done!

Your covering letter

This is a great start, but could be expanded. Ideally you would also need to include some information about what you have to offer the company. You've talked about your degree, but you need to include information about your work experience, team working and communication skills - ideally making reference to the skills required for the role you're applying for and giving evidence - where have you used those skills already? The application is about what you have to offer them, so this is important. Your penultimate paragraph needs to give information about what you want to work for that company.

... Made changes accordingly. Didn't make all the changes. Might need to return to this later if job applications are not going well. Let's see.

Monday, 20 September 2010

C(++) and Pointers

Been playing with C and C++ variable declarations and pointers (using Microsoft Visual Studio 2010) last few mornings. This code should serve as good reference in future:
#include <iostream>

using namespace std;

int intFunc(int x, int *p, int **pp) {
return x;

int *pointerFunc(int x, int *p, int **pp) {
return p;

int **pointerPointerFunc(int x, int *p, int **pp) {
return pp;

int main()
int x, *p, **pp;
int resultx, *resultp, **resultpp;

p = &x;
pp = &p;

cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
printf( "x = %d\n", x );
printf( "&x = %d\n", &x );
printf( "p = %d\n", p );
printf( "*p = %d\n", *p );
printf( "&p = %d\n", &p );
printf( "pp = %d\n", pp );
printf( "*pp = %d\n", *pp );
printf( "**pp = %d\n", **pp );
printf( "&pp = %d\n", &pp );

resultx = intFunc(x,p,&p);
printf( "resultx (intFunc) = %d\n", resultx );

resultp = pointerFunc(x,p,&p);
printf( "resultp (pointerFunc) = %d\n", resultp );

resultx = *pointerFunc(x,p,&p);
printf( "resultx (*pointerFunc) = %d\n", resultx );

resultpp = pointerPointerFunc(x,p,&p);
printf( "resultr (pointerPointerFunc) = %d\n", resultpp );

resultp = *pointerPointerFunc(x,p,&p);
printf( "resultp (*pointerPointerFunc) = %d\n", resultp );

resultx = **pointerPointerFunc(x,p,&p);
printf( "resultx (**pointerPointerFunc) = %d\n", resultx );


Friday, 17 September 2010

Processes and Threads

A 'process' is an 'instance' of a 'computer program' that is being 'executed'. It contains the 'program code' and its 'current activity' (state?).

A 'thread of execution' is the smallest unit of 'processing' that can be scheduled by an operating system. It generally results from a 'fork' of a computer program into two or more concurrently executing 'tasks'. Typically, a thread or multiple threads are contained inside a process and share resources such as state and memory.

An advantage/use of multi-threading: the ability for an application to remain responsive to input, e.g. in a single threaded program, if the main execution thread blocks on a long running task, the entire application can appear to freeze. By moving such long running tasks to a worker thread that runs concurrently with the main execution thread, it is possible for the application to remain responsive to user input while executing tasks in the background.

Thursday, 16 September 2010

Insight Onsite application

Posting here my response to the question "How do you believe that participation in the Insight Onsite project will further your career planning?" which I forgot to Blog when I sent it off last February prior to my internship at Tessella:
I intend to pursue a career in industry following my PhD which is due to be completed mid-2010. My area of interest is information technology and software development in particular, and I would hope to find myself in a company where I can utilise both the practical and analytical skills acquired during my undergraduate and doctorate degrees. The Insight Onsite placement would be an ideal way to find out more about my options whilst awaiting my final examination.

The placement at Tessella specifically offers exposure to a wide range of projects and careers in my area of interest. It would be extremely useful to get a taster for some of the different software engineering and consultancy services Tessella provides, as well as the knowledge and skills I would need and develop working for such a company. In addition, I look forward to meeting and speaking with employees in different positions and roles, and thereby gaining an invaluable insight into work life and the work environment.

I would appreciate immensely this opportunity to experience first hand the range of careers I could expect to opt for when applying for a job.
Writing (starting) my first covering letter today!