--- !omap
- name: Arthur Gunn

- vitae_config: !omap
    - email: arthur@gunn.co.nz
    - crypted_password: d7f42977c55e23fc92e4190c6adc07862a572879
    - password_salt: 8f7a8cf04f4e
    - ga_tracking_id: UA-34519630-1

- contact: !omap
    - nickname: Arthur
    - e-mail: mailto:arthur@gunn.co.nz
    - homepage: http://arthurgunn.com
    - github: https://github.com/gunn
    - stackoverflow: <a href="http://stackoverflow.com/users/544556/gunn">user 544556</a>

- In Short:
    "I'm a full-stack developer. I <em>know many languages</em> but am <em>concentrating on ruby and node</em> and the ecosystem of technologies around them for the backend, <em>with react.js, d3.js and other javascript</em> libraries for the frontend.
        <br>
        <br>
    I've discovered that it pays to do things right. In the software world, this means fixing problems where I find them and making pull-requests. Doing this with languages, I've <em>contributed to ruby and macruby</em>. With ruby, I've <em>contributed to <a href='https://rubygems.org/gems/cells/'>cells</a>, rails_admin, rspec and thor</em>. With javascript projects, I've <em>contributed to <a href='https://reactjs.org/'>react.js</a>, <a href='https://emberjs.com/'>ember.js</a></em>, and many more. For a more complete idea of my open source work, please see my github account.
        <br>
        <br>
    I like making graphical UIs that are intuitive and instantly responsive - as exemplified by my EverDB and AstroTour projects below. I'm now using react.js for organising large web projects with javascript (or typescript), and react-native to get them running on phones. I'm constantly experimenting with new libraries to keep on top of the game."

- Roles: !omap
    - node_type: project_list
    - Mewzet:
        start: 2008-08-01
        end: 2011-02-01
        description: "A system for teaching and grading music theory online with hundreds of interactive lessons. A ruby-on-rails app with adobe flex for the dynamic front-end."
        role: <em>Designer and programmer.</em>
    - MixMatters:
        start: 2011-02-01
        end: 2013-10-01
        description: "A music website for insiders. Has 10s of GB of content uploaded and organised through <a href='https://github.com/sferik/rails_admin/'>rails_admin</a>, a gem I've contributed lots to. Custom pages editable with <a href='http://jejacks0n.github.com/mercury/'>Mercury</a>. Served with nginx, postgres and couchbase. Testing done with rspec and capybara."
        role: Programmer and sys-admin
    - WolandBros:
        url: http://wolandbros.com
        start: 2014-01-01
        description: "A business advisory and development agency for ambitious enterprises. Combining the best cutting edge front-end tools with solid back-end technologies to help our clients impress their audiences."
        role: Lead Developer

- Projects: !omap
    - intro:
         Online demonstrations of my work.
    - "Opolox Live":
        url: http://arthurgunn.com/dashboard.html
        description: An interactive dashboard that visualizes the economic state of the target country. 7 years of monthly data can be switched through by scrolling over the bar-chart on the left. Written to be very performant, using typescript with react and D3.
    - TweetGlobe:
        url: https://tweet-globe.herokuapp.com/
        description: A 3D globe shows a fraction of the tweets made around the world pop up on its surface live as they are posted. A node server streams tweets from twitter, filters them for location data and sends them to the client over a websocket connection. Animation combines canvas and svg with D3.
    - Vitae:
        url: http://rubygems.org/gems/vitae
        description: A structured CV publishing system, specifically the one used to generate and possibly serve this CV. Content is defined entirely in YAML. The generator and server are packaged in the one rubygem. Testing done with minitest.
    - EverDB:
        url: https://everdb.net
        description: A system with web and mobile apps for adminning data. Technical users can create custom interfaces for types of data for regular users. Made with node, react, and react-native. It uses websockets to keep data-synchronised between devices down to the keypress.

- Expertise:
    react.js: prefer strong
    Javascript: strong
    Typescript: prefer strong
    angular.js:
    ember.js: strong
    ES6: prefer strong
    Ruby: prefer strong
    Rails: prefer strong
    Flex:
    react-native: prefer stong
    ActionScript: strong
    Javascript:
    ember.js: prefer strong
    node.js: prefer
    d3.js: prefer strong
    electron:
    Coffeescript:
    SASS/SCSS: prefer
    HTML5: strong
    expo.io: prefer strong
    postgreSQL: prefer
    ubuntu:
    passenger: prefer
    nginx: prefer
    heroku:
    webpack: prefer strong
