R.I.P. Your Resume Site to Awesome

October 18, 2008. Filed under python 56 aym-cms 4

I've been wanting to redo willarson.com for a while now, in no small part because its design was based on my old blog design, which was not universally loved. The site's raison d'etre is to provide a simple casual resume, but it was doing a pretty miserable job of that. Some people may have read it, but people weren't reading it and thinking "Damn, I want to hire him to work on my project." (What, exactly, they were thinking is a mystery we're better off not knowing. I imagine it involved the word "colorblind".)

To scratch that itch I put together the Resume Interactivity Provider, aka RIP.

A picture of a site created with the Resume Interactivity Provider.

On a basic level, RIP uses the same pieces of information as a traditional resume: name, a statement of purpose, contact information, relevant skills and experience. However, RIP uses AYM CMS and jQuery to expose relationships between skills and experiences, and consequently makes both your experiences and skills seem a bit less like completely unsubstantiated crap.

That said, it really only does two interesting things:

  1. Only displays the description of one experience at a time.
  2. Highlight the relevant skills used for the experience that is currently displayed.

You can see it in action at willarson.com, but the coolest thing is how easy it is for you to make one too.

  1. Go grab the source code from its repository on Github. (You can download a zip from there, even if you don't use Git.)

  2. Install a version of Django less than a year old. (A prequisite for AYM CMS.)

  3. In the unzipped/cloned repository, open up the resume.py file.

  4. Fill in some simple customization fields.

    NAME = u"Your name"
    NAME_URL = u"http://example.com/"
    EMAIL = u"your_name@gmail.com"
    PHONE = u"(555) 555-5555"
    TWITTER = u"YourTwitterUsername"
    STREET = u"999 Somewhere Rd."
    CITY = "SomeCity"
    ZIP = "99999"
    STATE = "AA"
    COUNTRY = "BBB"
    STATEMENT = """
    Write your statement of purpose here.
    You may use Markdown syntax. Woohoo.
    """
    SKILLS = (
        'Python',
        'Django',
        'Etc',
        'Etc1',
    )
    
  5. Create your list of experiences.

    EXPERIENCES = (
        {
            "title":"A title",
            "link":"http://link-for-experience.com/",
            "start":"July, 2005",
            "end":"Present",     # optional
            "skills":("Python","Etc",),
            "description":"It was cool. Can include raw html.",
        },
        # add as many more experiences as you want
    )
    

    Note that the skills value for each experience should contain strings found in the SKILLS tuple above. If they don't match, then the cool highlighting trick won't occur.

  6. Build the project.

    python build.py
    
  7. Deploy the project to your server.

    scp -r deploy/* myuser@myserver.com:~/mysite.com/
    

Of course, you could (it's encouraged!) edit static/rip.css to change the colors and such. My self-serving mind wanted to add a backlink to my blog on the bottom, but it looks substantially better without it, so you're off the hook. I'd be curious to know if you do use it though.

Let me know if you have any questions or comments.