package Oliver::Charles;
use Moose;
use Acme::URL;
use DateTime;

=head1 NAME

Oliver::Charles - everything about Oliver Charles, but with antlers

=head1 DESCRIPTION

Hello! I'm Oliver, a Perl programmer from the UK. This is my little
homepage - you're probably more interested in the links out of here
though (those have a green background).

I'm currently working for MusicBrainz, as you can see below - and I do
(or at least try to!) a lot of open source Perl work where I can. I'm
also a musician - please check out my music on SoundCloud and let me
know what you think :)

Have a nice day!

=cut

has 'cv' => (
    is => 'ro',
    default => http://ocharles.org.uk/documents/cv.pdf
);

has 'contact_details' => (
    is => 'ro',
    default => sub { {
        email => 'oliver@ocharles.org.uk',
        irc   => 'acid2',
    }
);

has 'public_key' => (
    is => 'ro',
    default => http://ocharles.org.uk/documents/ocharles.pub
);

has 'work_experience' => (
    is => 'ro',
    default => sub { [
        Placement->new(
            name  => 'MetaBrainz Foundation',
            from  => DateTime->new(year => 2008),
            until => DateTime->now,
            description =>
                'The MetaBrainz Foundation is a non-profit organisation that runs the '   .
                'MusicBrainz project - one of the most comprehensive online music '       .
                'meta-information databases. I was the first hired consultant for the '   .
                'MetaBrainz foundation and focused on overhauling the old code base in '  .
                'order to move to a much anticipated new database design. I helped move ' .
                'a legacy code base to use cutting edge Perl technology such as '         .
                'Catalyst, Moose and Template Toolkit, and also managed the transition '  .
                'of the database between 2 drastically different schemas. ',
            notes => [
                'Completed 2 Google Summer of Code projects a student (2008, 2009).',
                'Mentored a student for Google Summer of Code during the summer of 2010',
            ]
        )
    ] }
);

has 'pro_skillz' => (
    is => 'ro',
    default => sub { [
        [ 'Proficent in' => [qw( Perl HTML/CSS/JavaScript SQL )] ],
        [ 'Working knowledge of' => [qw( Python Ruby Java Lisp C/C++ more )] ]
    ] }
);

has 'a_social_life' => (
    is => 'ro',
    default => sub { [
        Hobby->new(
            name  => 'Music',
            extra => http://soundcloud.com/cycles,
            description =>
                'I play guitar and keyboard and enjoy writing my own '            .
                'electronic music. I am also a practised turntablist and DJ and ' .
                'enjoy playing at various club nights.'
        )
    ] }
);

has 'twitter_feed' => (
    is => 'ro',
    default => http://twitter.com/acid2
);

has 'cpan_modules' => (
    is => 'ro',
    default => http://search.cpan.org/~cycles
);

has 'blog' => (
    is => 'ro',
    default => http://acidcycles.wordpress.com
);

__PACKAGE__->meta->make_mutable; # WARNING Always changing :)
1;