Tuesday 15 May 2012

Facebook.... Part 4..... The final part?

I think I've been avoiding the last part of my story.... it's all been really positive so far but the evening of the technical test came and I had a phone call from a software engineer in California.  The strong american accent booming over the phone and I felt like I was talking to a movie star.

He asked a few standard questions, like "why facebook?"  I, of course, had thought through this question, after all if I'm going through the process to work for them, then there has to be a good reason.  Well it's facebook for a start, it's changed the way we communicate with each other, it's become the centre of many social groups.  Not only that, I create software and then I don't often hear what the users themselves think or see how they use it.  Now with facebook, it would be something I actually use myself and see instant feedback from friends.  Something you see the benefit of straight away.

I heard myself saying this, and I could hear a wobble in my voice that I have never ever heard before.  The nervousness had caught me.  I tried to steady my voice, but then I just sounded arrogant, instead of my normal telephone interview voice, which I think comes across bubbly and confident.  I started to concentrate on trying to keep my voice even and then started to hear myself waffle.

I have never known nerves like it.  I'd built myself up to these nerves, it was something I desperately wanted and the sheer pressure was now playing on me.  I'd put myself under this pressure no-one else.

So we brought up a web page for us both to share and he put to me an algorithmic puzzle for me to solve.  The problem was clear enough and while I tried to buy some time thinking about my problem, I started by outlining some unit tests I would normally start with.  I was stopped in my tracks by the interviewer, as he said "I get what you're trying to do there, just move onto the algorithm".  I'm a test driven developer, I can't quite remember how to write code form scratch... I write it from a test!  Anyway I tried to move onto the algorithm, and started by putting in some boiler plate stuff.  Yes you've guessed it the interviewer stopped me in my tracks and asked me to carry on with the algorithm.

OK, so write the code.... write the code..... oh no my brain had stopped working and all that was going through my mind were tumble weeds.  Then "Think-Think-Think-Think" were the only words scattered through my mind, and my brain suddenly became incapable of thinking about this problem.  My cheeks flushed with embarrassment.  This is what I'm good at, I'm good at these kinds of algorithms.  My cheeks flushed more.  I'd just lost it.

The interviewer was kind enough to offer that I spend the next hour finishing off the algorithm and then email it, so he could include it in his feedback.  He then said I could ask him anything I liked about working at facebook and his experiences.  I asked some random questions, thanked him for his time and hung up.

My cheeks were still red with blushing.  I made a cup of coffee, calmed my nerves and finished the algorithm in 10 minutes.  I sent this on and didn't really await an answer.  I knew I hadn't got any further in the process.  (An hour later I could still feel the heat form my blushing cheeks!)

A week or so had passed, and I thought it would be worth getting some feedback in case there was anything I could learn about how to improve my interview performance for future reference.  So I emailed the recruiter, who phoned me back a few days later.  It was no surprise when the words she spoke was "we won't be taking it further at this stage."  She told me the algorithm was correct, but I just hadn't done it in the time.  However.....

She told me that they thought I was right for the culture and clearly smart, so they'd like to come back to me in 6 months time, to give me time to prepare and practise.  So there we have it, it was a no for now... but not forever.  So now I have a good few months to prepare and practise.

Keep your eyes peeled for part 5 in a few months........................................ xx

Thursday 10 May 2012

Facebook Part 3 - The Technical Test..... (Prep)

Back by popular demand, I am carrying on my exciting tale of trying out for a job at facebook!

Now how do I say this modestly?  Oh there is no way!  I think I impressed the recruiter, and she started to tell me about the next stage, which would be a technical test over skype with one of the Software Engineers in California.  She suggested as I wasn't used to their style of technical tests that I prepared and practise, she told me that the interview would involve me doing an algorithm.  Ohhhh a proper test, the kind of thing I do every day - writing code!  How exciting!  She told me another HR type person would be in touch with the details.

So that very evening I started googling and I found an interesting book about cracking the Silicon Valley interview.  This is where it all went wrong for me... the book scared me!  Oh did this book scare me!!  It started off by saying that it takes a year to prepare for a Silicon Valley interview.  A YEAR?  I had 2 weeks, at best!  OK, so time to knuckle down and read this book.  As I started to read about linked lists, binary trees and the like, it all started to come back to me from uni, but I was getting through the book slowly as these things were quite rusty in my brain.  I didn't get round to practising many of the exercises and I kept going off on tangents when I came across something that interested me and spent time researching it on line.

A week has passed and I still didn't have a date for the technical test and I eased off the studying for fear of wasting my time.  I gave a gentle nudge to the recruiter, who asked me to contact her again if in a couple of days I hadn't heard anything.  Those couple of days passed and I sent her an email to tell her that I still hadn't heard anything and was starting to think that they'd changed their mind and didn't want to take the process any further.  However that evening I received my date for the technical test.  Just 3 days away.

By this point, I was extremely nervous, felt vastly unprepared - by a total of 50 weeks worth of under prepared-ness.  I'd got myself tremendously excited, this was an opportunity to be taken seriously.  It had gone from a good experience that would also look fabulous on my CV and would open further doors for me in the future, to this company is amazing and I'd like to work for them for the rest of my life.  It wasn't just the free canteen for breakfast, lunch and dinner or the fact that you can drop off your laundry in the morning and have it delivered to your desk.  But the whole ethos of the place.

I was reading about them moving into Sun's old offices (which on another level is kind of sad, as it really brought home to me that Sun are no more and not coming back - RIP Sun!  We all now hate Oracle for what they did to you!)   Anyway when facebook moved into the offices they knocked down all the walls, removed all the offices and had a nice open plan space, to innovate and communicate.  They pulled down one wall to reveal the pipes behind it, to remind everyone that their work is never done and there is always room for improvement.  Everything they seem to do, is to enthuse and try and bring a natural creativity to the organisation.  Black boards coat the corridors with every employee given a box of chalk.

Maybe not everyone's cup of tea, but it seems the right colour and temperature for me to want to take a sip and see if it tastes as good as it looks.

I had hoped to get to the technical interview in this blog.... seems I'll have to leave that for part 4!!

Wednesday 2 May 2012

Facebook (Part 2)

I had arranged for one lunch time for the facebook recruiter to phone.  I headed out to my car and sat waiting for the call.  I waited..... I waited..... I waited..... I sent an email from my phone asking if he had my mobile number (which I knew he did!) and went to get myself a sandwich.  My phone did not ring that day.

I came home and looked at linked in and checked out the recruiters page.  Interestingly it stated that he worked at facebook from September 2011 - March 2012, not to present.  Had I been head-hunted by someone that no longer worked for the company?  Was that the dream over before I even had chance to mess up my own interview?  A little disappointing!

I emailed my friend at facebook to find out what had happened, and he in his professional way being true to facebook, yet giving me the details I needed, he told me it was an internal matter and someone else would contact me.  Sure enough, another facebook recruiter contacted me via email and I arranged another phone call during my lunch hour.

I nervously waited for the phone call and I almost jumped out of my seat when the phone did actually ring!  The recruiter I spoke to apologised for the mix up, and she put me at ease right away as she was the kind of person you find in my group of friends.  We spoke in detail about every job that I've ever had.  Now if you've seen my CV you know that isn't a quick task.  I'm quite amazed these days about how positive I am about every simple one of my previous employers where I would pull out what I gained from the job and what I enjoyed.  Maybe I am just grateful for the vast experience I've had, and without everyone one of those jobs I wouldn't be in the position I am now (there I go again on the positivity malarkey!)

She asked me where I saw myself working at facebook.  A difficult question to answer, and I waffled something about team work.  She then went on to describe a job that couldn't have matched me better.  A role where they needed someone who could see the whole process from end to end, as while they need people to specialise in one area they also need people who are able to see the whole picture.  Someone who could pick up a new technology quickly and constantly moving from different areas, improving quality of code, and from the sounds of it sometimes just refactoring so it was readable clean code.  (I'm jumping up and down at this point with a hand raised saying "Me, me, look at me here, this is me").

For this jack-of-all-trades-master-of-none-geek-girl over here it sounded wonderful!  Forever wondering if I was hindering my career by never specialising in one area, and always jumping around from technology to technology, from language to language, here was not only the proof that it hadn't hindered but here was a job tailor made for me.

She then started to tell me about the rest of the process would go..... and of course I'm going to leave that for part 3......


Wednesday 25 April 2012

Asked To Work For Facebook? (Part One)

No blog for a while, I'm getting lax.  Maybe because I just don't know how to tell my exciting story!!

I finally decided to join the world of linked in, which in itself isn't anything exciting.  However a few days later I received an email entitled "Work For Facebook", and the email talked about wanting to discussion an opportunity they have with me to work at facebook in the USA.  The obvious thoughts then flashed through my mind... "wow facebook!", "have I just been head hunted by facebook?", "but it's America", "Oh it could be a scam." and "Oh I'd better check this out as it's probably a scam of some kind."

So first things first, I checked out the guy on Linked in, OK so far so good it said he works for facebook as a recruiter.  Next step message (on facebook of course), contact an ex-work colleague who now works for them.  Turns out it had been him that had recommended me!  Bless!  That in itself is such a good compliment - this guy has the brain the size of a planet, and not a small planet at that, and he recommended me... me(!)... to work for one of the biggest organisations in the world.

OK, so now I know it's for real, we have another bridge to cross it's the other side of the world.  Would I really pick up my life and move to somewhere new?  Would I really do something that would mean experiencing something new and exciting, something that is also easily reversible if I didn't like it (after a good try of course!)

So the excitement and day dreaming began.

I replied to the facebook recruiter to tell him I was interested and left my mobile number with him.    He asked for my cv, which I promptly sent..... after having to update it as I'm quite happy where I currently am and would only move for something amazing..... like facebook!

Next stage, arranged a telephone interview with the recruiter.  Now here's where it gets a bit strange. .....


To be continued...........................................................

Wednesday 22 February 2012

Girly and Geeky and Proud!

After trying to think up new ideas for an android app, the thought of "learning to program for girly girls" crossed my mind.  Of course that then begs the question of whether there is a market out there.  How many girly geeks are out there.  I'm sure I'm not unique. Sadly I'm in a minority and found half started blogs and pages, where clearly their audience wasn't very big so they lost interest.  How very tragic is that!

One thing is sure and what was clear from every one I came across was that they had a reoccurring theme: they are a girly geek and proud!  I know in my late teens and early twenties I tried to hide my girliness, as I thought that was right.  I would always try and show all the kinds of things I like that aren't girly, such as football and computer games.  Let's face it though these days most girly girls, whether geeky or not, like football.  So there is nothing new there.

So what changed?  Why did I stop trying to hide the girliness within?  Yes I still like football, computer games, poker, etc.  I guess it's with age, you just decide to be yourself.  Although to be fair I have found out that I hid my girliness badly.... and was fooling no one.

Has this ever caused me any problems in my career?  No.  Have I ever been perceived that I can't do my job?  Perhaps sometimes when flustering and not using technical terms, or waffling.  Or indeed during the lazy days when I used to flutter my eye lashes and get someone to do my work for me.  I don't advise you do that by the way (and I haven't for many years!).... work gets very boring when you're not doing your job and after all I enjoy coding, so why get someone else to do something that I actually do enjoy!!

So now I'm confident in what I know to be right, and confident to say when I just don't know the answer, or sometimes add the phrase "I'm guessing", I think intelligent people respect me.  I say intelligent people, as they quickly see through the bubbliness, and the perfect nails, and see that I too know what I'm on about. 

I'm going to have to add, that sometimes it's how you deal with people, and that goes for whether you are male or female.  Us programmers have egos.  In this industry you have to know how to talk to people, how to suggest things, how to fight for what you think is the right way to do something and sometimes I get it wrong.  Sometimes "Miss Bossy-Boots" comes out, and then it might as well be game over, as no-one likes her when she shows her face.

I've tried different approaches at every company I've worked at, and while the stern no nonsense side of me gets the job done and gains respect from the managers, it becomes a lonely and unrewarding place to be.  It's only recently that I've learnt that bubbly friendly, working hard girl still gets the recognition, and not only that, it makes for a much more enjoyable day at the office!

It is interesting that during my early days as a programmer, I look back and don't think that I worked to the best of my ability.  However interesting enough I've been chatting to work colleagues from that time and they remember a different picture to me.  They remember me as being good at my job, or bringing something new to the team.  Someone recently even told me I was a breath of fresh air.  

I can only conclude, that I'm girlie, geeky and proud, and how nice it is that I'm not alone in feeling like that! xx




Wednesday 8 February 2012

Agile?


This is my third attempt at writing about agile and why I like it!  I find myself going on while explaining, and not in the best way.... so I've decided to start this blog with a link to someone who can explain it all far better than I can.  Who better than Uncle Bob to tell us about it....


Be Inspired by Robert C Martin

When I first watched that video, it almost sounded space aged, now it's the world I live in.


I work in a 2 week iteration - I have a clear picture of what is expected of me, I know what my colleagues are doing.  I get quick feedback if what I'm doing is what the customer really wants.

I do TDD - my code is derived from my test, I don't write code without having a failing test.  I have confidence in anything I change.

I pair program - I keep focused by discussing and communicating what I'm doing and why I'm doing it, while I'm driving, I ask and learn from my colleague while they are driving, whilst I add any suggestions.

I keep my code clean - I try to write my code so the next person to read it can understand it quickly and easily.  We read code 10 times more often than we write it.

I refactor - with the confidence of tests I feel I can improve the code without damaging it, sometimes only in a very very minor way.  Leaving it in a better state than when I found it.  The boy scout rule - leave the camp site cleaner than when I found it.

I'm improving - working in short iterations I can quickly learn from any mistakes and improve.

In summary, I'm becoming proud of my profession and any work I produce.  It's a very rewarding feeling, and I don't want to work any other way.... well not until they have found a better way... and isn't that the agile way anyway?  Keep improving and finding better ways that work for you, for your team and inevitably for the project.








Saturday 4 February 2012

Off Topic... Tattoos (& XML)

For the geeks out there you will instantly see why this bit of XML doesn't parse: XML Wrist Tattoo Straight after posting a mocking comment with the picture on my facebook page, I then quickly realised that maybe he wasn't trying to be "correct" maybe it was what the meaning of <love> </hate> actually meant to the owner.  Were they saying "don't let the love end, and stop hating before it's begun."  Anyway what does it matter, it probably means something to the person who was prepared to have the commitment of them inked upon their skin.

It only comes down to first impressions, and my first one was unfortunately a bad one.

Whilst watching a show with Davina McCall and Fearne Cotton, I was admiring their wrist tattoos.  I've always said I wouldn't get one; they are just the trend at the moment and will show your age in years to come just as tribal bands do now.  Many people are getting them just because celebs have them, but it got me to thinking about them none the less.  Don't they quickly give a glimpse of who you are, and they are sociably acceptable due to the popularity, (unlike for example a face tattoo) and a nice chunky bracelet or watch can quickly cover them up.

I've also said I would never have a tattoo that is visible while at work, just because of the preconceptions that people have of tattoos.  That said I'm never shy to tell people I have 3 on my back or show them to people who are interested, so what difference does it make?

Anyway perhaps something to think about after my next tattoo.  I have my next hidden tattoo planned, and I'm so lucky to be on the waiting list of one of the countries most talented artist who can pick and choose the work she does.... and I can't wait to show it off to who ever I choose!

Tuesday 31 January 2012

How about a Raspberry Pi in Pink?

I recently tweeted @Raspberry_Pi: "do you think r-pi will encourage more women into programming? we need more women programmers- they are threatening to clone me!" With the kind response of  "We really hope so. Needs playground/kitchen table level changes, though; we're open to ideas on how to help."  (Are they referring to more women programmers or they clearly don't know me, if they are hoping I'll be cloned!! ha ha!)

Now surely a female in the software engineering world would have an idea on how to help.  You'd think, wouldn't you?  But the best idea I can come up with is a limited edition Pink Pi.  A bit stereotyped isn't it?  Or is it?  As there is no real reason for me to be in such a small minority, can it only come to culture, as I've mentioned previously there is a higher number of female programmers in other countries.  If it's a cultural thing then how can you say "hey girls/ladies/dudettes/chappess, it's OK for you to like computers and 'have a go', after all most men just make it up as they go along anyway!!"  What better way then to use colour, after all since being a baby we have been conditioned into thinking that pink is for girls.

I'd like a pink r-pi!!  It would be so cool!  I'm also wondering if with the "buy one - give one" scheme, if I can purposely say that mine goes to a female, perhaps even with the offer of me being their mentor if they'd like.

And of course I can always get my act together and start writing some open source for the pi....

With so much web traffic passing by here, maybe you have an idea?  If you do please comment!

xx


Monday 30 January 2012

Slice Of Raspberry Pi?

I am massively excited about the recent excitement of the Raspberry Pi!

Wow!  Kids of today will be able to get their hands on this little gadget, they'll be able to learn and play, and perhaps hopefully learn how to program the little things.  Why is this so exciting to me?  Well let me tell you my tale.....

Where did it all begin for me in this world of programming?  In a land, far far away on a Radio Shack  TRS-80   16k extended memory.  I was in primary school, and I loved playing Frogger, Cuthbert in the Jungle, phantom slayer and similar.  Oh the memories!

For those too young to remember, this was one of the early home computers, and games were loaded via a tape player connected to the computer and by typing the command "cloadm".  It normally took 5-20 minutes to load into memory.  Only one game could be loaded at one time and when you switched it off it cleared the memory, so if you had a high score on a game you tried to keep the computer on for a long as you could, without your mum noticing!!  It also meant if you typed the wrong thing and it all went funny you could just switch it off and on again and all was previously forgotten and back to a clean slate.

"So what! Kids today have computers to play games!" You say?  The difference was with a computer back then it only started up with a command line, nothing to click, no options to anything and you had to know what to type for it to do anything.  It would start with only knowing the command to load a game.  Then it moved on to typing "cls 2", oh the sheer excitement of seeing the colour of the screen change colour.  For me I wanted to know more, I was just old enough to read and it came with these huge books that taught you about the computer and what you could type into it.  I would follow the little tutorials and get all excited that I'd made the computer do something that I'd asked.

These books taught me how to program.  Did I mention I was in primary school?  See it really isn't difficult to get the hang of the basics.  So much so that years later, when I came to learn algebra at school, it was really simple for me, after all I'd already learnt the likes of:

10 print 'Hello, what's your name?'
20 input a$
30 print 'Hello ' + a$
40 print 'How old are you?'
50 input b
55 c = b + 10
60 print 'In 10 years time you will be ' + c + ' years old'

I also learnt how to refactor at this age, from this :

10 cls 0
20 cls 1
30 cls 2
40 cls 3
50 cls 4
60 cls 5
70 cls 6
80 cls 7
90 cls 8
100 goto 10

turned into

10 for a = 0 to 8
20 cls a
30 next a
40 goto 10


And now look at me I've made a career out of things I learnt when I was 9!!  As have so many other programmers.  It has always seemed that everyone in this industry is my age, as if it were our generation that was captivated by being able to tell a computer what to do.  And here I raise a glass to the Raspberry Pi and hope it inspires and grasps the imagination of everyone everywhere!!

I can't wait for my little slice of Raspberry Pi.... and what it potentially holds for the future of software development.... xx




Saturday 28 January 2012

Lack of female programmers...

I am a self confessed girlie geek. I might well get excited about the new version of android or getting a job where I can use a new trendy language commercially, but I still love spending time at the beauticians.  And today I am wondering the trivial question of what colour to have my nails painted this time. In fact yesterday in work I looked at my nails and almost (I say almost) asked that very question of my work colleagues. Then quickly thought twice about it, as the boys I work with would not understand. And yet again I let out a sigh about the lack of female programmers.

In my 15 year career, I have worked with very very few female programmers, and I'm still confused to why that is. Also,in my experience those ladies were doing their job, but I never felt they had a true passion for the works of programming as I do.

Ok, first question I hear you ask is why do we need more female programmers? Putting aside the simple fact that I'd like that 2 minute conversation every now and then about shoes and nails in work, there are many other reasons why we need more of a feminine touch in the software world.  I'll tell you something too, everyone agrees with me, and all the men in the industry want more women in their working environment.

It baffles me, and I probably have to hasten to add it's the lack of female programmers in the UK, as I hear there are a bigger percentage of women working in the sector in India.  It can only come down to a cultural thing.  When I was in primary school, my dad bought me a computer; a TRS-80 16k, none the less!  And father Christmas would always accidentally leave me a "boys toy".  I loved my hot wheels and scaletrix.... and I think that's part of the reason I have never felt like I can't do anything just because I'm a girl.  A side note is needed here:  I loved my Barbie dolls more than any other toy, I was never a tom boy!

Maybe that has nothing to do with it, and maybe I shouldn't even worry about the percentages, it's never caused me problems in my career.  After all I've always got along with men better than women.  Even most of my female friends say they get along with men better.  I don't know what that means!!

Coincidently, while at the car show room and talking to the female car sales rep, she told me she prefers working with men, as it's less bitchy.  I wonder what it would be like working with less men and more women.  One thing is for sure, someone shouldn't feel like they can't do something just because of their gender.

Anyway.... I decided to get my nails painted red today! xx

Friday 27 January 2012

Why Write A Blog?

There are many reasons to write a blog.  One of which is to get attention!  Another is share ideas..... and of course another is to get your voice heard.  And I'd like to add another to that list, I'd like to improve my English skills.

These days we have little reason to write "essays", in fact with facebook and twitter we are so used to just writing our thoughts and feelings in a simple sentence to be heard, but seldom do we write paragraphs and pages of our thoughts, expressions, and perhaps sometimes just our own pure waffle.  

Hand written letters are virtually unheard of now a days, yet when I was a student my main point of contact with the outside world (outside the student union that is!) was to hand write letters to my friends and get all excited when I would receive 7 letters in one day.  These days I barely email my friends, either I text them, comment on their status or of course see them!  I may be a geek but I get out and about too!

So, by now you may well be asking, why start now?  Why is keeping up your English skills so important in the world of micro blogging?  Especially to a Software Engineer.  Why would a Software Engineer want to improve their language skills?  Do I just work in the world of logic, maths, variables named 'a' and a bunch of computer statements, and such things that don't make much sense to those who don't understand 'code'?  Simply put no.

I work in the world of creating, using artist flare, almost poetic like writings, in order to not only tell the computer what I'd like it to do, but also the next person who comes to look at my code.  I feel it is of equal importance that the next reader of my work can understand exactly what it is I'm trying to achieve in my writings to the computer.

That's an important statement, as so many people fall short of remembering that we work as a team.  In a land of thousands and thousands of lines of programming code, why do we add more complexity than necessary?  Why do we feel the need to "encode" what we are trying to do? and why do we almost force someone else to figure out what we were thinking.  Why don't we just tell them?  

Are some of you out there currently thinking that I'm talking about comments?  Comments?  Comments should be banned!!  Comments are evil!  They are noise, sometimes inaccurate, sometimes confusing and sometimes just damn wrong!!  Sometimes left over from old code, that has since been deleted and left the code base.  They are rarely compiled and tested to ensure their accuracy.  And hey code isn't a foreign language, we shouldn't need to put in a little translation, we should make our code English and easily understood.  

As Software Engineers we should put in the effort to make sure our code can be easily read.  After all we read code 10 times more often than we write it.

So here we are...... the very reason I am starting to write my blog.  To be able to practise my communication skills, where I don't need to worry about a misplaced ; or a missing end } - which to be fair with such advanced IDEs these days who needs to concern themselves with such trivialities?

First practise over..... xxx