module OCharles.Org.Uk where

type Email = String
type URL = String

import Data.Time (Day, fromGregorian)

{-
Hello! I'm Oliver, a Haskell and Perl programmer from the UK. This is my little
homepage - you're probably more interested in the links out of here though.

I'm currently working for MusicBrainz and Last.fm, as you can see below - and I
do other bits of open source work where I can. I'm also a musician - please
check out my music on SoundCloud and let me know what you think.
-}

--------------------------------------------------------------------------------
cv :: URL
cv = "http://ocharles.org.uk/documents/cv.pdf"

email :: Email
email = "ollie@ocharles.org.uk"

blog :: URL
blog = "http://ocharles.org.uk/blog"

publicKey :: URL
publicKey = "http://ocharles.org.uk/documents/ocharles.pub"

gpgKey :: URL
gpgKey = "http://ocharles.org.uk/documents/gpg.pub"

twitter :: URL
twitter = "http://twitter.com/acid2"

github :: URL
github = "http://github.com/ocharles"

cpan :: URL
cpan = "http://search.cpan.org/~cycles"

--------------------------------------------------------------------------------
data Job = Job { jobName :: String
               , jobStart :: Day
               , jobEnd :: Maybe Day
               , jobSummary :: String
               }

workExperience :: [Job]
workExperience =
    [ Job { jobName = "MetaBrainz Foundation"
          , jobStart = fromGregorian 2008 04 21
          , jobEnd = ongoing
          , jobSummary = unlines [
            "  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."
          , "  My work at MusicBrainz continues, and I have mentored "
          , "during summer of code 3 times, along with helping organize "
          , "various activities outside work directly"
          ] }

    , Job { jobName = "Last.fm"
          , jobStart = fromGregorian 2011 11 01
          , jobEnd = ongoing
          , jobSummary = unlines [
            "  I was contracted by Last.fm at the end of 2011 to help them "
          , "restructure their core database, and alleviate problems with "
          , "similarly named artists. I was part of a small planning team "
          , "to analyze the scope and impact of the project, and am now "
          , "currently helping implement the designed solution."
          , "  I also help the small system administration team with day-to-day "
          , "tasks such as database and server operation."
          ] } ]
  where ongoing = Nothing