/**
 * Curriculum Vitae
 *
 * A document for the procurement of work
 * 
 * @author  David King
 * @dob     14th May, 1984
 * @email   david@oodavid.com
 * @tel     +44(0)7939273963
 * @home    West Jesmond, Newcastle
 * @url     oodavid.com
 *
 * @todo    Knockup a markup parser for this document (done)
 */

/**
 * Career Overview
 *
 * Give a quick rundown of my history leaving the reader suitably prepared to 
 * understand my more recent achievements and technical experience.
 */

    I have been writing code since the tender age of 13. My first "app" was a
    Visual Basic form that took two number inputs and spat out a long division
    diagram. I'm not sure I can even do long division any more. After that I
    worked my way through 3D Studio Max, Director, Flash (3+). I found the webby
    ensemble of LAMP and JaCH shortly after and never really looked back.

    Being a whippersnapper I wrote a few clones of the games I loved (Micro-
    Machines, Worms, Lunar Lander, Tetris etc) but eventually found work with my
    father's company drafting illustrations for an american "print and play"
    game. I continued to work closely with my father for many years, he still
    calls on me for his more challenging jobs.

    After a few years of online and offline games I started working for
    more serious clients and decided to try and break the startup scene (thrice)
    with an e-commerce company, a time-tracking SaaS and a social media outfit,
    each with varying degrees of success. I've continued to work as a freelancer
    throughout these endevours.

    Most recently my freelance work has seen me design, implement and deploy an
    end-to-end solution for an Asbestos surveying and management company; it
    deals with account management, scheduling, mobile site-work, lab analysis,
    report generation, invoicing, timesheets and inter-company communication.
    All to fit strict UKAS standards.

/**
 * Technical abilities
 *
 * Show my knowledge in a snappy manner, don't bore the potential employer,
 * they're intelligent and will ask for more details if they need to.
 */

    I have a lot of experience in planning projects from concept to execution
    and am comfortable tackling complex ideas and whittling them down to
    manageable, simple solutions. (I have a 10 foot digital whiteboard in my
    lounge for such activities.)

    To date I have only worked on small programming teams, but should be
    comfortable integrating with larger groups.

    // Backend Development

        # Linux
            All your standard server admin tasks: installation of software via
            YUM / APT; managing services; user administration; working over
            SSH / Telnet; SSL setup etc. Linux is my OS of choice but will be
            able to pick up the same skills in a Windows or Mac environment.
            I have deployed scalable apps on AWS and App-Engine.
        # Apache
            The basics: installation; .htaccess wizardry; Server-Side-Includes;
            aliases; fundamental security etc.
        # PHP
            My goto backend language, I've used many frameworks (CodeIgniter,
            Cake, Kohana, Rat) however I tend to custom-build my own
            environments using 3rd party libraries etc as a foundation.
        # MySQL
            Certainly my favourite database. Setup and admin, complex queries
            (I really like a good SQL statement), indexing, spatial indexing,
            query optimisation, storage engine nuances, Entity-Relationship
            design, CLI or GUI are both OK by me.
        # MongoDB
            Used this primarily for its speed, geospatial functionality and
            mapreduce features, however with its (possibly unfair) reputation
            for being volatile I'm happiest using this in parallel to MySQL.
        # JSP, ASP, Node.js, Python, Ruby, RoR, .NET
            Only in my spare time! I've not had the opportunity to use these in
            a commercial setting, but given the right opportunity I'd be super
            happy to learn their nuances and port over my skillset!

    // Frontend Development

        # Javascript
            JS is probably my strongest language, I've written all sorts:
            WYSIWYG Editors; jQuery Plugins; UI Engines; Templating Engines;
            Syntax Highlighters; Code Editors; Tutorialss; Media Players... I
            could go on. A good UI can make or break online software!
            Suffice to say I've had decent exposure to various popular libraries
            with
        # HTML(5)
            I've always considered well written HTML to be akin to good manners;
            once you've got the jist of it you're set for life: Semantics;
            Naming Conventions; SEO and Templating are all standard building
            blocks for me.
        # CSS(3)
            With the sizzle engine and zen coding techniques, it's difficult to
            get by without knowing your CSS3! Grid systems, cross-browser
            testing and fixes and optimisation are a given.
        # Flash
            I haven't used this for a few years, but in a previous life I have:
            written 2D games; vector transformations; worked with streaming
            media; etc. With Actionscript being an ECMA-based language akin to
            Javascript I'd be very confident to pick it up again should the
            needs arise.

/**
 * Working knowledge
 *
 * Highlight my useful non-language-specific skills to round off the list of
 * lists and then we should be ready to wind up.
 */

    // Due Diligence

        # Git
            Day-to-day useage: push; pull; branching; merging; tagging; site
            deployment via git hooks etc. (I've used SVN too, but I'd happily
            not go back down that road)
        # Documentor extraordinairre
            Whether through JavaDoc type tools or by writing something bespoke I
            document my code with the tenacity of someone with terrible memory.
            What was I saying again? Oh yes, I also enjoy writing a good manual
            or guide for the user-facing part of the systems I work on.

    // Business knowledge

        # Agile
            I'm familiar with various aspects of SCRUM / DSDM / XP such as:
            Roles, User-Stories; JEDUF; Timeboxes; Iteration, Sprints, Decision
            Models, Standups etc.; with every team handpicking the "best" bits
            there's always more to learn.
        # Finances, Cashflow and Law
            I know my share of financial and legal matters through hands-on
            problem solving as with Lucion. Having written systems to handle
            contracts, quotes, invoicing, credit-notes and salary calculations.
        # Of and through my clients
            Although I am focussed on solving problems in the web-world I pride
            myself on being able to "walk around in my clients shoes" and have
            learned a great deal about the businesses that I serve, from marine
            construction (corrodere.com) to asbestos management (lucion.co.uk)
            and rather a lot in-between.

    // Of note

        # Open source evangelist / contributor.
        # I love a good regular expression.

/**
 * Career history
 *
 * List the larger jobs that I have worked on during my career
 *
 * Since these are complex platforms that I have had a substantial (if not total)
 * involvement with, I'm happy to let the reader peruse and make their own
 * judgement-call as to the skills required to build them.
 */
    
    # Corrodere
        corrodere.com
    # Lucion
        web.lucion.co.uk

/**
 * My Personality
 *
 * Write about my life outside the office. Briefly.
 */

    I try to keep my days well planned and jam-packed, away from the binary
    bongo I'll be getting messy in the kitchen, cycling, reading, swimming,
    doing DIY, sketching, writing or generally pootling about. I don't watch TV.
    My knowledge of pop culture is abysmal, you don't want me on your pub-quiz
    team.

    I am diligently working my way through my bucket list.

    Fragments of my personality can be found on my blog.