# Zenobius Jiricek (Zeno)

*Full Stack Web Developer (VueJs, NodeJs, Django, Linux, Docker)*

* [@home](http://zenobi.us/)
* [@github](http://github.com/airtonix/)

## 2. Greetings

It does not surprise me, that even after half my life has elapsed, years of churn in web development still bring to the horizon new tricks to keep me entertained.

I am a restless thinker, I compliment teams lazy enough to investigate automating the mundane, a team that shrinks in horror at the thought of deployment without quality control. A team that seeks modularity of their toolkits. Toolkits shared for the world to use (and freely contribute to).

I'm familiar with most work flows like "get it done", "Wait let's think about it" and my favourite... "No really, let's plan this one properly". But really, I've found that scrum based agile with healthy behaviour driven development captures efficiently and completely all the needs and pitfalls of a team producing for stakeholders.

Over the years I've primarily stuck to using modern open source frameworks, as such you'll find my efficiency is greatest with ES6, Scss, VueJS, Webpack, NodeJS, Python and Django. Although I'm sure I can nail any language, I'd prefer to work on Linux workstations and servers.

I would be delighted to join a team that makes enthusiastic use of Docker and Linux for the purposes of deployment, development and infrastructure automation.

My health is important to me, to which I partake in activities such as powerlifting, rock climbing and cycling.

At the moment I'm in Adelaide, South Australia. However I am looking forward to receiving offers pretty much anywhere in the world.

## 3. Highlights

- 3yrs Digital Agency Experience
- 4yrs experience as a Team Leader
- 15yrs hand coding HTML, CSS & Javascript.
- 8yrs Utilising [Git][tool-git].
- 4yrs experience with [Python][lang-python] and [Django][framework-django].
- 3yrs creating [Drupal][cms-drupal] & [Wordpress][cms-wordpress] websites.
- 4yr utilising [Sass][lang-scss] and [Compass][framework-compass] with [Zurb Foundation][framework-zurb].
- 2yrs experience working with [AngularJs][framework-angular], [GruntJs][framework-grunt], [NodeJs][engine-nodejs], [ExpressJs][framework-express]
- 11yrs using Linux for Server and Desktop environments, ranging from Gaming, Graphic Design and Programming
- 4yrs deploying and provisioning  horizontal scalable web applications on [AWS Ec2][iaas-ec2], [Heroku][paas-heroku], [Openshift][paas-openshift], [Digital Ocean][paas-digitalocean]

### DevOps

- Configure and deploy compute power with infrastructure orchestration frameworks like Ansible, Fabric, Puppet, Chef and Docker.
- Load balancing.
- Development environment provisioning and replication.

### Agile
- Mapping Requirements to Features
- Brainstorming scenarios for Features
- Assisting with scenario steps implementation in Gherkin.
- Reviewing designs, helping designers understand Atomic Design.

### TDD
- Defining unit tests
- Developing mocking factories
- Mock api backend in and out of the browser.

## 4. Experience

### 2016-2017

**Senior Frontend Developer at Fusion**

+ Building tools and processes that reduce "onboarding" new developers to a project.
    * Desired outcomes:
        - backend should be transparent to frontend developers and designers [wip].
        - Continous Integration. [wip]
        - Automated documentation (changelog, jsdoc, etc) [wip]
        - Standardise Restful API design approach (json-schema, jsonapi, api-blueprint) [wip]

+ Increasing quality and lifetime of projects
    * Desired outcomes:
        - Homogneous coding styleguide [wip]
        - Ownership of design pattern life cycle by frontend developers [wip].

+ Championing a diversity in technology skills:
    * Desired outcomes:
        - Learn React. [wip]
        - platform agnostic backend (asp5-vnext, nodejs, etc) [wip]
        - docker deployments (dokku, etc) [wip]

### 2016-2017

**Senior Frontend Developer at Fusion**

+ Building tools and processes that reduce "onboarding" new developers to a project.
    *  outcomes:
        - adoption of PatternLab principles in all projects.

+ Increasing quality and lifetime of projects
    * outcomes:
        - Automated testing frameworks.

+ Championing a diversity in technology skills:
    * Desired outcomes:
        - promote VueJs as the spa framework fusion uses.

### 2015-2016

**Senior Frontend Developer at Fusion**

- Developed new website for Melbourn Credit Union, now known as Bank Australia.
- Developed Several minor websites utilising progressive enchancement with `Vue.js` 
- Introduced and Championed Atomic Design as a company wide workflow
- Developed internal tool based on gulp.js that implemented atomic design and standardised project structures and techniques between developers.
- Pushed for and Introduced User stories in the Define and Develop phases of projects (foundations for transition to Agile Workflow)
- opensourced several minor libraries under the Fusion github profile.

### 2014-2015

**Senior Frontend Developer at Fusion**

- Developed a SinglePageApplication "Search Page" built in backbone.js for Peoples Choice Credit Union. Used server api faking in prototype stages for client demo.
- Introduced and Championed the use of Git Flow, and Pull Requests in Atlassian Stash
- Developed internal angular.js powered tool for capturing User Stories.

### 2013-2014

**Participated in 48hr Startup Weekend**

- Worked with Designer to create prototype application in Django and AngularJs

**Frontend Developer for Muvli**

- Develop frontend design using [AngularJs][framework-angular] and [Ratchet][framework-ratchet]
- Prototype RESTful api using [Apiary][saas-apiary]

### 2012-2013

**CTO & Product Design, Zibmedia**

- Team manager tasked with organising copywriting, quality control, online marketing and design
- Organised [Chef][tool-chef], [Puppet][tool-puppet] and [Ansible][tool-ansible] to automate deployment and configuration of all the workstations
- Pioneered a few opensource django applications used in clients websites and zibmedia owned products
- Contributed to opensource projects: [DjangoCMS][cms-djangocms], [DjangoShop][ecommerce-djangoshop], [DjangoOscar][ecommerce-djangooscar]
- Plan & Develop several new products: Jobsite, Zibcode, Jetts
    + Used [AngularJS][framework-angular] for the entire frontend
    + Django with the RESTful backend ([tastypie][framework-tastypie], guardianpie)

### 2011

**Lead Developer, Urpages.com.au**

- Refactored the code base of the flagship product (urpages.com.au) in order to become deployable by automated tools like Fabric and (indirectly) Jenkins.
- Championed the use of bitbucket issue tickets for our products amongst entire staff seeking to contribute
- Championed Fabric, Virtualenv as primary workflow tools
- Enforced the use of PEP8
- Initiated the hiring of copywriter, marketing and additional programmers
- Utilised Haystack, ElasticSearch for search
- Built custom CRM from scratch using [Django][framework-django] and [Bootstrap][framework-bootstrap]

### 2010


- Network Maintenance & Installations
    + Setup and deploy Ubuntu NetworkBoot Server and Zentyal Gateway
- Website Training Provider
    + Provide basic introduction to website creation to small groups of migrants

### 2007-2009

**Open Source Research And Development**

- Full-time Self Development
    + Explore "best practice" use and maintenance of Linux based operating systems
    + Explored common software roles and their software solutions (Zentyal, Cobbler, Chef, Foreman, Django)
- Community Linux Support
    + ubuntu@irc.freenode.net

### 2004-2007


- Website Design Project Manager
    + Introduced the use of Wordpress, Drupal and Plain PHP
    + Championed the principle of minimal remote ineraction, develop locally, deploy fast.
    + Supervise, provide direction and maintain work­flow of Community Groups Website project.
- Metro Housing
    + Purchase and installation of computer network. Create a database user interface that works with a central server. Contains XML, XSLT, ASP, SQL, Javascript.

## 5. Skillset

### Web Development

- Develop reusable project skeletons
- Create development and deployment workflow tools with Nodejs, Bash, Python
- Create architecture configuration manifests with Ansible and Docker

### Applications

- Sublime Text 3, Git, Zsh/Bash, Ssh, Powershell
- Vagrant, Ansible, PuppetAgent, Fabric, VirtualENV, Pip, NVM/Nodist/Nave
- Firefox/Chrome/Epiphany/Edge/Internet Explorer
- Gimp, Inkscape
- Quassel, Hangouts, Skype
- Fedora, Ubuntu, RancherOS, CoreOS, Windows 10.
- Packer, Vagrant, Chocolatey, BoxStarter.

### Daemons

- Docker, Shipyard, Doku, Vagrant, SystemD, InitD
- Bind9, Nginx, Uwsgi, Postgres, OpenSSHd, MongoDb
- Samba, nfs­kernel­server, Gitolite, Gitlab, Gitliab-CI, ZFS, Upstart
- Sinopia

### Languages

- CSS3/Scss, Javascript (es5, es6), CoffeeScript, JSON, HTML5/Jade/Swig
- Advanced Python 2.6, Advanded NodeJs,
- Moderate Bash,
- Basic MySQL, basic Postgres, basic Lua, basic PHP, basic Powershell

### Frameworks

- AngularJS, VueJs, Marionette, Backbone, Jquery
- Gulp, Webpack, Browserify, SlushJS, YeomanJS
- Django, ExpressJs, SailsJs
- PySide, PyGtk

## 6. Projects

### Websites

 - [Joust](http://app.joust.com.au)
     + Ebay for home loans
 - [Bank Australia](https://bankaust.com.au)
     + Digital branch presence for major bank in Melbourne, Australia
 - [UniSA New Students](http://w3.unisa.edu.au/newstudents)
     + New Season marketing mini site for UniSA
 - [St Johns Volunteer for a Volunteer](https://www.volunteerforavolunteer.com.au/)
     + Fundraising campaign
 - [Peoples Choice Credit Union](https://www.peopleschoicecu.com.au/)
     + Digital branch presence for major credit union in Adelaide, Australia

### Applications

 - [epochdb](http://airtonix.github.io/epochdb)
     + Recipie explorer and calculator for Arma 2 survival simulator.

### Tooling

 - [gastropod](http://github.com/airtonix/gastropod)
     + Patternlab frontend build system. Essentially a static site generator.
     + with [supporting packages](https://github.com/airtonix?page=1&tab=repositories&utf8=%E2%9C%93&q=gastropod):
         * [gastropod-task-webpack](github.com/airtonix/gastropod-task-webpack)
         * [gastropod-task-sass](github.com/airtonix/gastropod-task-sass)
         * [gastropod-task-docs](github.com/airtonix/gastropod-task-docs)

### Linux

- [avahi-aliases](http://github.com/airtonix/avahi-aliases)
    + Create and advertise as many CNAME aliases for your `.local` lan address.

### Django

 - [django-ikari](http://github.com/airtonix/django-ikari)
     + Meaning "anchor", used to anchor subdomains to resources (ie Users).
 - [django-puraibeto](http://github.com/airtonix/django-puraibeto)
     + Private file attachments.
 - [ansible-django](http://github.com/airtonix/ansible-django)
     + Old Ansible deployment playbook.

### AngularJs

 - [angular-named-routes](http://github.com/airtonix/angular-named-routes)
     + give your routes names. let's not repeat ourselves.

### VueJs

 - [Joust](http://app.joust.com.au)
     + Uses Vue 1.x, VoieJs, Vuex and lots of Webpack code splitting.
 - [St Johns, Volunteer for a Volunteer: Donation Form](https://www.volunteerforavolunteer.com.au/volunteer/donate.aspx)
     + Using an old version of Sitecore (therefore webforms), limitation was that available options were rendered by the server. First time doing this approach. Next time I'd embed JSON fragments.
 - [Aurizon: Carbon Safety Calculator](https://web.archive.org/web/20160220130449/https://www.aurizon.com.au/sustainability/environmental-management#carbon-tool)
     + Simple inline component, all the styling done by https://github.com/justrhysism

### NodeJs

 - [wintersmith-mount](http://github.com/airtonix/wintersmith-mounter)
     + Lets you mount arbitrary paths to routes.