I then wrote an e-mail to her and that data-mining team, after reading all public papers, and figuring out where I could try to help. In this case I a) complimented them on their work b) showed I was enthusiastic and c) came with ideas on what I could contribute. So they offered an internship, which I loved. They where cutting edge with large scale data-mining over complicated data using the then just new java 1.5 on varied hardware and infrastructure. i.e. hibernate when it was still cool, K/V stores and lucene together with lots of classical datamining algo's such as C4.5 and SVMs on large clusters. (Sure my final report could have been better)
Came back to finish my Uni, graduated while working for a year on GPU computing (using BrookGPU) to get protein domain detecting working for some comparative potato genomics work. Which I loved as well.
Then I joined a large IT firm as a trainee for 1 month and then 9 months on one of the more interesting government IT projects dealing with tracking health of children. Funnily enough I went to industry to learn how to run a project, and ended up on one which looked like the ObamaCare roll out in the small :( So I quickly started looking around.
My internship group offered me a position but could not get the paperwork done in time for me to be snapped up by their collaborators.
Now I am lead developer for the uniprot.org website and sparql services. Which I love, because I have so much freedom and responsibility and great bosses who are a pleasure to work for and are absolutely dependable, as well as a very diverse team who respects each other talents and quirks.
So to summarise. Luck and networking got me the job, but those where only effective because I had the knowledge and applied it.
So join a professional club (IEEE or Rotary or something) network and learn to find interesting people, because interesting people often have the interesting jobs.