public class ToMyPotentialNewEmployerOrClient extends Introduction
{
    public void override writeIntro(Document out)
    {
        out.write("Hi, I'm Doug! I have...\n");

        for( int i = 0; i < m_achievements.length; i++ )
            out.write(m_achievements[i] + "\n");
    }

    private String[] m_achievements =
    {
        " - fifteen years of professional software development experience.",
        " - three open source projects with over 300,000 lines of code combined.",
        " - bootstrapped an EdTech startup for 1.5 years.",
        " - worked on all aspects of a successful mobile social MMORPG.",
        " - developed training simulations for almost every 'Department' the U.S. government has.",
        " - written algorithms for rendering symbolicated, 2D-projected, hidden-line-removed schematics from 3D " +
        "     parametric surface geometry in architectural CAD projects.",
        " - never been able to explain to others what the above point means.",
        " - never figured out how to write clean PHP, but am always that guy that is forced to anyway.",
        " - used every language, design pattern, tool, and library that a business guy has ever heard of.",
        " - also used a few that nobody's heard of."
    };
}

public class OpenSource extends SoftwareIHaveWritten
{
    public void override writeProjects()
    {
        writeLink("b33hive",                                      "http://www.b33hive.net");
        writeDetails
        (
            "A massive, shared landscape of user-created, sandboxed HTML5 applications. "  +
            "b33hive exposes an API to userland and allows applications to communicate "   +
            "with each other. The core of this project is swarm, a next of class content " +
            "browser for the web."
        );
  //----------------------------------------------------------------------------------------------------------------\\  

        writeLink("quickphyx",                    "http://dougkoellmer.com/quickphyx/demo");
        writeDetails
        (
            "Originally started as a convenience wrapper around Box2D, this has turned "   +
            "into an advanced physics engine with an event-driven DOM-style API, "         +
            "CSS-like property system, and so many other cool features that you'd get "    +
            "bored with me listing them. Source code is here."
        );
    }
}

public class ForMoney extends SoftwareIHaveWritten
{
    public void override writeProjects()
    {
        writeLink("Book of Heroes",       "https://itunes.apple.com/us/app/book-of-heroes");
        writeDetails
        (
            "Also for Android here. This is about as intense as a mobile MMORPG gets. "    +
            "I was on a three-person team that developed the cross-mobile C++ frontend "   +
            "and cloud-hosted Java backend. The codebase started from nothing, went on "   +
            "to serve millions of monthly active users in under a year, and birthed a "    +
            "generic framework powering other titles as well."
        );
  //----------------------------------------------------------------------------------------------------------------\\
		
        writeLink("HTML5 Science Labs",                    "http://dougkoellmer.com/games");
        writeDetails
        (
            "A series of interactive simulations meant for embedding as widgets in "       +
            "various eLearning and eReading platforms. These are samples of work I did "   +
            "to take static images from existing print textbooks and bring them to life."
        );
  //----------------------------------------------------------------------------------------------------------------\\

        writeLink("Inspect and Protect",                      "http://dougkoellmer.com/cp");
        writeDetails
        (
            "A game-based training module funded by a $1.5 million grant from the "        +
            "Department of Defense to teach metal corrosion prevention strategies on "     +
            "large structures. I was the lead programmer and co-designer, responsible "    +
            "for (a) developing a framework into which non-programmers could plug art, "   +
            "sound, and XML assets dynamically, and (b) digesting dry subject matter and " +
            "turning it into fun interactive lessons. Also required learning the basics "  +
            "of corrosion theory and working with subject matter experts in the field."
        );
  //----------------------------------------------------------------------------------------------------------------\\
		
        writeLink("Touch Tone Hero",           "http://www.gametrailers.com/videos/lpbewe");
        writeDetails
        (
            "A fun twist on popular rhythm games where the player uses a touch-tone "      +
            "keypad with real dial tones to play popular melodies with accuracy-based "    +
            "scoring. I was co-designer and lone programmer. It was available on the App " +
            "Store until we were forced to remove it because all the downloads were "      +
            "crashing iTunes' servers."
        );
    }
}

public class ForKicks extends SoftwareIHaveWritten
{
    public void override writeProjects()
    {
        writeLink("Corrosion Cell",          "http://dougk16.deviantart.com/art/Corrosion");
        writeDetails
        (
            "A stress test environment for the corrosion cell component in 'Inspect and "  +
            "Protect' mentioned above...turned out to be a pretty fun little sandbox."
        );
  //----------------------------------------------------------------------------------------------------------------\\

        writeLink("Whip the Ragdoll",      "http://dougk16.deviantart.com/art/Whip-the...");
        writeDetails
        (
            "A small, sadistic project to help me learn Box2D."
        );
  //----------------------------------------------------------------------------------------------------------------\\
		
        writeLink("Balancer Thing Game!",   "http://dougk16.deviantart.com/art/Physics...");
        writeDetails
        (
            "A prototype for a potential mobile game, where you balance progressively "    +
            "more challenging objects using the accelerometer, and score stunt points "    +
            "for throws and catches."
        );
  //----------------------------------------------------------------------------------------------------------------\\

        writeLink("Miscellaneous",        "http://dougk16.deviantart.com/gallery/10771419");
        writeDetails
        (
            "A few other small experiments can be found here."
        );
    }
}