Mgr. Martin Vicen

An accomplished front-end web developer specializing in innovative cross-browser user interfaces with emphasis on client-side logic.

Martin Vicen

Summary

I have eight years of continually-growing experience in creating web applications in the scale of thousands of lines of JavaScript using popular libraries such as Dōjō Toolkit as well as server-side frameworks such as Zend Framework and Slim.

I can offer strong understanding of core web languages, together with a proficiency in creating and consuming web services, and server-side technologies.

I produce self-documenting, loosely coupled, modular, object-oriented code employing separation of concerns and other design patterns. I strongly believe in unit testing, refactoring, dependency systems and "compiled" JavaScript.

Though not a designer by trade, I care deeply for usability and tend to test UIs on random non-techy folks around. My experience ranges from one man show analysing client's needs, converting them into mock-ups and graphical design, ending with the implementation; towards being a team member solely responsible for front-end.

I enjoy balancing on the bleeding edge, constantly seeking means to improve maintainability, performance and robustness. Being a keen early adopter makes me possess a firm knowledge of legacy browsers' quirks.

I have a passion for emerging technologies, figuring out the design principles and patterns under the hood, often reading through source code and experimenting with various libraries and open source projects that gives me a certain degree of insight into the majority of (r)evolutions around the web.

I'm giving back to the open source community by sharing my JavaScript expertise answering questions at StackOverflow.

Technical Skills

Languages

JavaScript

  • Dojo Toolkit
  • jQuery
  • require.js
  • Knockout.js
  • Backbone.js
  • node.js

HTML5 & CSS3

  • Semantic markup
  • Responsive design
  • Web Workers
  • AppCache

PHP & MySQL

  • Zend Framework
  • Slim Micro Framework
  • SQL

Java

  • Swing
  • Servlets
  • JSP
  • NetBeans Rich-Client Platform

Concepts

Optimization

development code ≠ production code
  • AMD dependency system for JavaScript
  • Google Closure Compiler
  • LESS CSS

Architecture

decoupling for large-scale JavaScript
  • MVC
  • MVVM
  • REST
  • JSON-RPC
  • Data-binding
  • Aspect-Oriented Programming

Patterns

  • Promises
  • Observer
  • Dependency Injection
  • Composite
  • Command
  • Factory

Testing

test-driven development
  • Jasmine
  • Dojo Objective Harness
  • jsTestDriver
  • sinon.js

Tooling

  • Chrome Developer Tools
  • Firebug
  • JSHint
  • CSS Lint
  • Source Maps

Versioning

  • Git
  • git-flow
  • Subversion

Noticeable Projects

czatca.cz

Content Management System • 2011

GitHub

A CMS created solely myself for Czech Air Traffic Controllers Association to publish articles, and share documents and events' calendar among members.

The application consists of three parts:

Web Site
Implemented as Zend Framework module following the MVC paradigm generating semantic markup including microformats. Other noticeable features include (implemented mostly via plugin architecture):
  • Internationalization: multiple language versions of the user interface and content
  • SEF URLs: czatca.cz/events/history or czatca.cz/docs/folder-name
  • Widgets: gracefully degrading helpers with fancy transition animations representing files and events
Administration Console
A single page JavaScript application written in Dōjō and dgrid serving as a user interface to manipulate model data via RESTful API:
  • Object-oriented JavaScript managed with Asynchronous Module Definition API.
  • Layout, user interface and forms written in Dijit taking full advantage of inheritance for data-binding, serialization and form validation.
  • Dojo Boilerplate based - production code is optimized through Dojo Build System and Google Closure Compiler.
RESTful API
The Zend Framework module with plugins and model base classes that I wrote to transparetly handle JSON (de)serialization and to convert REST API calls to CRUD operations through Access Control List supporting data sorting; e.g.: GET http://czatca.cz/rest/user/?sort=+role lists all users sorted ascending by their role.

Support Center

Help Desk Software • 2006

A single-page application created in a feature-driven fashion: in a pair, I was writting JavaScript, HTML and CSS while my counterpart was preparing web service in PHP for the same feature.

My accomplishments:
  • client and server implementation of JSON-RPC thus transparently invoking methods on PHP classes in JavaScript including access control for three levels of users (user, agent, admin).
  • JavaScript templating system with a support for i18n.
  • Grid widget displaying data obtained from a web service incl. pagination, selection, sorting and custom column, row or cell formatting.
  • Rich-text editor and multiple UI widgets.
  • Apache Ant build script that wraps HTML templates into JavaScript objects, generates proxy classes for JSON-RPC and concatenates all JavaScript files through ShrinkSafe into a single file, gzips it and bumps version, so the web server knows when to send 304 Not Modified.

Shoe Selector

Running Shoe Finder • 2008

Answer-these-questions-and-we'll-find-some-shoes-that-are-right-for-you application for the most popular running web site and print magazine in the Czech and Slovak Republic.

  • front-end anatomically similar to Support Center
  • back-end integrated into existing CMS
  • includes an administration application for managing the shoe database
  • Flickr API for photographs of shoes

PurCV

Curriculum Vitae Editor • 2010

Guided by the set of PSDs I developed most of the JavaScript-heavy PurCV while mentoring and coaching junior web developer.

Professional Experience

2007 - 2012

Freelance Web Developer

Freelancer developing web applications for various clients.

Responsibilities ranged from requirement analysis and consultancy; through software and user interface design; implementation and deployment; to training and maintenance. My role varied from a one-man show to a cooperation with multiple developers and designers.

2005 - 2007

Senior Web Developer

Quality Unit

Full-stack Web Developer, primarily responsible for the front-end development.

Responsibilities also included evaluation of JavaScript libraries to start up the Web 2.0 revolution within the company; i.e. paradigm shift towards the client-server model where a browser-based client communicates with a web service through an API. I implemented the aforementioned ideas in JavaScript and PHP/MySQL developing a couple of large-scale rich internet applications. I also worked on smaller, mostly Java Enterprise Edition, projects for clients.

2003 - 2005

Project Manager

Adecco

Managing the project of hiring 200+ technical specialists for the Hewlett-Packard European IT Operation Center in Bratislava.

Responsibilities: recruitment planning; performing technical interviews; preparing technical skills tests; communication with the client and negotiation with suppliers.

Education

2002

Gained Mgr. Degree in Modern Philology (M.A. Equivalent)

1997 - 2002

University of Ss. Cyril and Methodius, Faculty of Arts, Trnava, Slovakia

Volunteering

Knowledge Sharing

I'm proud to share my JavaScript, Dojo and dgrid expertise at StackOverflow. Here are some of my finest bits:

Open Source

Feel free to visit my GitHub Profile.

Additional Information

Languages

  • Slovak (native)
  • English (fluent)
  • Danish (lower-intermediate; module 4 of 5)

Profiles