Geek

Portfolio: Geek

Experience

Programming Programming

Apison CommunicationsApison Communications is a full-service design and development firm, located in beautiful Pictou County, New Glasgow, Nova Scotia. Apison offers web-based content management solutions for business professionals, and the real estate industry. I was hired by Apison the spring of 2006 as Programming Manager, and am responsible for heading programming initiatives as well as filling the role of system administrator.

IgnitionWebHigh-Touch Communications is a leading North American branding + web firm, offering its pièce de résistance web platform called IgnitionWeb. I was hired by HTC the summer of 2005 as Senior Programmer, where I was responsible for heading programming and the programming team. Some of my work highlights at HTC include:

  • Overseeing the development and deployment of IgnitionWeb 3.4 – a major milestone release including WYSIWYG content editing, as well as major code and SQL performance optimisations;
  • Auditing Unisource.ca, a multi-million dollar B2B web site, for performance bottlenecks and implementing sweeping code and database performance optimisations;
  • Integration of IgnitionWeb for several clients including Dynaflair Corporation, Trueline Valve Corporation, JC-TL, JC Fábrica de Válvulas;
  • Migration of CVS + Bugzilla source control management system to Subversion + Trac;
  • IgnitionWeb 3.x and 4.x development roadmap;
  • Development of Quality Assurance program
  • Payment gateway integration for Hourglass time tracking and project management software suite.

HTC was a great place to work at with their dynamic team and exciting projects. Because of family commitments, I left HTC to move to Nova Scotia

Le ChateauIn my current employment role I am lead PHP programmer, developing a large scale corporate Intranet which integrates legacy systems and new web application solutions for over 300 users and 150 stores across Canada and the USA. My work on the Le Chateau Intranet began with a complete code audit and eventual redesign of the application architecture. In addition:

  • I implemented globalisation features to the company Intranet allowing applications to work in multiple languages;
  • trained developers in the application architecture;
  • introduced a source control management system;
  • and implemented a coding standard to enhance our team based development environment.

Lastly, I play the role of the resident researcher in Free and Open Source Software for the web environment, making recommendations on viable solutions to the various problems we need to solve.

Project MoleProject Mole is both an on and off-line project that attempts to tap into an elite group of scenesters by having them do market research for corporations around the globe. In return Moles are given access to exclusive products and events. My role on this project was the development of a flexible survey system that would allow both administrators to design custom survey and Moles to upload there research findings. My work was originally based upon the open source PHPSurveyor, although the end application resulted in a substantial rewrite.

FrameworkWhenever sitting down to a decent sized PHP based project, I would first pull out my ever growing set of building blocks and polish them into a meaningful form for solving the particular problem at hand. These building blocks eventually found themselves configured around a particular architecture that I refer to as Framework.

Framework itself is a lightweight PHP web application development framework for creating large-scale PHP application. Its goal is to abstract common web-application needs away from application development, while also providing a well structured 3-tiered modular environment for developing new applications. Using a front-end loader design pattern, Framework attempts to unifies central web application problems under a one solution roof.

At its core, Framework is architecture's glue applied to a range of personally coded and third party libraries. The issues that I am working on addressing with Framework include: database abstraction; presentation abstraction; application configuration; user authentication; user permissions; user preferences; session handling; localisation and internationalisation; error handling; application debugging; application installation; web services; and more.

Framework provides a module architecture which allows for compliant web applications to be plugged into Framework. I have found that by developing web applications as Framework modules, applications development time tend to be reduced as core web application concerns are handled by the framework itself. Framework's module architecture provides the resources to build n-tiered applications that enforces the independence of data, logic, and presentation layers.

IMSFor close to a year (2004) I acted as a primary developer of Internet Merchandising Systems' line of e-commerce products targeted at hotel, tour, rental, and retail sectors. I worked on their core application called IMScart, a PHP & MySQL powered web application, which includes several plugable modules for providing an array of possible product configurations. Mostly my work focused on developing a new business to business product called Hermes. Hermes is an XML-RPC driven merchandising gateway connecting reseller storefronts with product suppliers. I developed the XML-RPC driven server from scratch with PHP and MySQL, but handed the project over to new hands when I jumped ship to work for Le Chateau.

1-800-HomeopathyI took on developing this homoeopathic e-commerce web-site back in the winter of 2003 for Profilium, a Montreal based company specialising in developing technology for the mobile market. The initial project focused on the development of a sophisticated discount manager for their pre-existing application. Following this, I began reworking the application's architecture and began implementing a user system for maintaining order history and providing a "e;My 1-800"e; section for saving favourite products. The application is developed on the LOAP platform.

War and PeaceThe War & Peace Foundation, originally founded in 1982 as an anti-nuclear organisation, is committed to the promotion of world peace through the development of a well-informed public. Starting with a simple re-design of a previous web-site, I implemented a customised "Geeklog" content management system for the organisation. Geeklog is a PHP/MySQL driven open source CMS. This installation included the development of a news syndication module, as well as hacking the main code to get it to bend in ways it didn't.

Institute for Anarchist StudiesThe IAS is a foundation that offers grants to writers promoting critical scholarship on social domination and the reconstructive vision of a free society. The web site target audience includes prospective applicants, grant recipients, supporters, and the Board of Directors. It is entirely built with PHP & MySQL, based on a heavily modified version of the eZPublish 2.x CMS, and a home rolled email newsletter application & grant application manager. It includes groupware tools such as a calendaring system, discussion forums, articling system, a file manager, and newsletter builder. Back end administration handles user accounts, module configuration, and content management. I am responsible for the development and maintenance of the entire project—from the server (Red Hat Enterprise) to front end design.

ISE DatabaseOne of my last tasks with the ISE was to consolidate and normalise several disparate databases of alumni, staff, faculty, supporters, donors, and media. These lists, of course, overlapped in content and were maintained by many different people on and off site. Data integrity was certainly a problem. In order to solve the issues at hand, I designed a database that ran on a central MySQL server which could then be accessed by different clients. The server was accessible by staff on site (and optionally off site) from any PC running MS Access. I chose to use Access to build a frontend interface mostly because the ease and speed to build a coherent system using its native support for forms, reports and queries. The data itself was accessed over ODBC.

Purchasing Management Association of CanadaOntario Institute PMAC— Ottawa District is a national association of supply management professionals. The mission of the Ottawa District is to provide a forum for educational and professional development. This project included a complete reconceptualisation of the architecture and redesign of the District's original web site. Part of the project also included the development of a newsletter web application that facilitates the construction and distribution of rich text email newsletters. I built the newsletter application in PHP, running MySQL on the backend.

Institute for Social EcologyThe ISE provides college level courses in the field of Social Ecology. This web-site target audience included present and prospective students, alumni, and researchers. The web-site was composed of both dynamic and static content. Dynamic components include a calendar, discussion forums, and a monthly newsletter—that I edit—which where all built by myself in PHP with MySQL. Other dynamic components include an email list to html archive gateway built using MHonArc and Mailman, and a search engine using mnoGoSearch. Email services where also provided (Postfix). I was responsible for the conceptualization, development and maintenance of the entire project—from the server (freeBSD) to front end design (2001–2003).

internal.social-ecology.orginternal.social-ecology.org was a Extranet for faculty and staff of the ISE. It was entirely built on a BAMP platform, primarily based on a hack of eZPublish CMS. It included groupware tools such as email list archives (Postfix, Mailman & MHonArc), a calendaring system, discussion forums, articling system, and a file manager. Back end administration handled user accounts, module configuration, and content management. I was responsible for the development and maintenance of the entire project—from the server to front end design (2001–2003).

Carrier PigeonCarrier Pigeon is an email newsletter solution which intergrates with a web-site. This application provides tools necessary to run an email newsletter. It supports HTML and plain text emails, generating plain text from the HTML version on demand. In addition, it offers subscription management, an interface for building newsletters, archive of past issues, and much more. Built in PHP 4 and running MySQL for storing data, this was my first serious program written. It is currently in use by several of my freelance clients.

PHPWeblogNow very much a dead project, PHPWeblog is a PHP 4/MySQL based news portal that grew to be pretty popular back in 2000. I deployed a version of PHPWeblog back then for a high traffic site called InfoShop. I then worked on thoroughly customising it and speeding up the code. This included re-designing the database and implementing a file based cache of generated content.

Server Side Server Side

Apison CommunicationsApison Communications is a full-service design and development firm, located in beautiful Pictou County, New Glasgow, Nova Scotia. Apison offers web-based content management solutions for business professionals, and the real estate industry. I was hired by Apison the spring of 2006 as Programming Manager, and am responsible for heading programming initiatives as well as filling the role of system administrator.

Polar Plastique LTDPolar Plastique is a disposable plastic market leader servicing the Canadian foodservice industry for over three decades. I was hired mid 2003 to migrate an email and web server from a liquidated American division to an independent data centre. I then took on the task of administrating this server—running Cpanel on Red Hat Linux—as well as maintaining their web-site.

Mom and PopWorking under the name Mom & Pop Media, I started my freelance web and print design consultancy upon return from my stay in South Africa in 2000. Through Mom & Pop I offer a range of services including:

  • Web and email hosting services;
  • Web design;
  • Web-site maintenance;
  • Web application installation;
  • Email campaigning;
  • Custom web application development;
  • Print design (newsletters, pamphlets, posters);
  • Server administration and maintenance;
  • On call technical support.

In fact, many of the projects listed throughout this portfolio are Mom & Pop projects.

Besides taking care of service delivery, and the mundane tasks of accounting and sales, I also maintain a dedicated Red Hat Enterprise Linux server, running CPanel.

In late 2004, I stepped back from the company substantially and took on a partner who now is the business lead.

Institute for Social EcologyThe ISE provides college level courses in the field of Social Ecology. This web-site target audience included present and prospective students, alumni, and researchers. The web-site was composed of both dynamic and static content. Dynamic components include a calendar, discussion forums, and a monthly newsletter—that I edit—which where all built by myself in PHP with MySQL. Other dynamic components include an email list to html archive gateway built using MHonArc and Mailman, and a search engine using mnoGoSearch. Email services where also provided (Postfix). I was responsible for the conceptualization, development and maintenance of the entire project—from the server (freeBSD) to front end design (2001–2003).

internal.social-ecology.orginternal.social-ecology.org was a Extranet for faculty and staff of the ISE. It was entirely built on a BAMP platform, primarily based on a hack of eZPublish CMS. It included groupware tools such as email list archives (Postfix, Mailman & MHonArc), a calendaring system, discussion forums, articling system, and a file manager. Back end administration handled user accounts, module configuration, and content management. I was responsible for the development and maintenance of the entire project—from the server to front end design (2001–2003).

flag.blackened.netflag.blackened.net is an all volunteer run Internet server which provides free services for libertarian-socialist organizations from around the world. Spanning over a few years (2000 to 2002), my contribution to this project included a complete redesign of the front page, along with implementation and support of various other Internet technologies (mailing lists, content management systems, etc.) that met the needs of flag users. My responsibilities included monitoring systems status (flag runs on freeBSD), maintaining systems (Apache, MySQL, and Mailman primarily), and supporting users.

TAOI have been fiddling with *NIX based operating systems for work and play since 1997. My introduction to my first Linux shell was through a free account with TAO Communications where I eventually gained enough experience to earn root and minor system administration responsibilities.

Web Design Web Design

Le ChateauLes Habitations Communautaires NDG (HCNDG) and Les Habitations Sherbrooke Forest (HSF) are two affiliated non- profit community-housing organisations who have played an important role in providing affordable housing to the Notre-Dame-de-GrĂ¢ce neighbourhood in the west end of Montreal. HCNDG and HSF recently won a development competition to purchase 3 properties on the Benny Farm site in the Notre-Dame-de-Grace section of Montreal. I designed their website that was a crucial tool in their bid to create affordable homes at Benny Farm.

Le ChateauIn my current employment role I am lead PHP programmer, developing a large scale corporate Intranet which integrates legacy systems and new web application solutions for over 300 users and 150 stores across Canada and the USA. My work on the Le Chateau Intranet began with a complete code audit and eventual redesign of the application architecture. In addition:

  • I implemented globalisation features to the company Intranet allowing applications to work in multiple languages;
  • trained developers in the application architecture;
  • introduced a source control management system;
  • and implemented a coding standard to enhance our team based development environment.

Lastly, I play the role of the resident researcher in Free and Open Source Software for the web environment, making recommendations on viable solutions to the various problems we need to solve.

Azur DevelopmentAzur Development is a Congolease run development organisation committed to address issues of gender equality, ecology, HIV/AIDS, and information technologies. In conjunction with Block, Street & Building, I redesigned their website to better reflect the work they do.

War and PeaceThe War & Peace Foundation, originally founded in 1982 as an anti-nuclear organisation, is committed to the promotion of world peace through the development of a well-informed public. Starting with a simple re-design of a previous web-site, I implemented a customised "Geeklog" content management system for the organisation. Geeklog is a PHP/MySQL driven open source CMS. This installation included the development of a news syndication module, as well as hacking the main code to get it to bend in ways it didn't.

Institute for Anarchist StudiesThe IAS is a foundation that offers grants to writers promoting critical scholarship on social domination and the reconstructive vision of a free society. The web site target audience includes prospective applicants, grant recipients, supporters, and the Board of Directors. It is entirely built with PHP & MySQL, based on a heavily modified version of the eZPublish 2.x CMS, and a home rolled email newsletter application & grant application manager. It includes groupware tools such as a calendaring system, discussion forums, articling system, a file manager, and newsletter builder. Back end administration handles user accounts, module configuration, and content management. I am responsible for the development and maintenance of the entire project—from the server (Red Hat Enterprise) to front end design.

Purchasing Management Association of CanadaOntario Institute PMAC— Ottawa District is a national association of supply management professionals. The mission of the Ottawa District is to provide a forum for educational and professional development. This project included a complete reconceptualisation of the architecture and redesign of the District's original web site. Part of the project also included the development of a newsletter web application that facilitates the construction and distribution of rich text email newsletters. I built the newsletter application in PHP, running MySQL on the backend.

Alliance for Freedom and Direct DemocracyAFADD is a now defunct confederation of anti-authoritarians working toward the realisation of a free society. AFADD believed that there can be no justice without freedom, and no freedom without the power to participate directly and democratically in the decisions that affect our lives. I constructed a rudimentary web-site for the organisation, as well as ran several mailing lists (2003).

Institute for Social EcologyThe ISE provides college level courses in the field of Social Ecology. This web-site target audience included present and prospective students, alumni, and researchers. The web-site was composed of both dynamic and static content. Dynamic components include a calendar, discussion forums, and a monthly newsletter—that I edit—which where all built by myself in PHP with MySQL. Other dynamic components include an email list to html archive gateway built using MHonArc and Mailman, and a search engine using mnoGoSearch. Email services where also provided (Postfix). I was responsible for the conceptualization, development and maintenance of the entire project—from the server (freeBSD) to front end design (2001–2003).

internal.social-ecology.orginternal.social-ecology.org was a Extranet for faculty and staff of the ISE. It was entirely built on a BAMP platform, primarily based on a hack of eZPublish CMS. It included groupware tools such as email list archives (Postfix, Mailman & MHonArc), a calendaring system, discussion forums, articling system, and a file manager. Back end administration handled user accounts, module configuration, and content management. I was responsible for the development and maintenance of the entire project—from the server to front end design (2001–2003).

Social Ecology Speakers BureauThe SESB organizes lecture tours for faculty of the ISE. The web-site's target audience includes university administration, professors, students, and community groups. The web-site is composed of dynamic and static content. Dynamic components include a newsletter system and calendar which are PHP/MySQL driven. This web site also integrates with the ISE search engine that I built. I was responsible for the conceptualization, development, and maintenance of the entire project—server to front end design (2000–2003).

Harbinger, a Journal of Social EcologyHarbinger, a Journal of Social Ecology, is an in house publication of the ISE. The website target audience includes university professors, community groups, faculty, alumni, and the ISE student body. The web site is composed of dynamic and static content. Dynamic components include a guest book which is PHP/MySQL driven. Along with filling the position of Managing Editor (2000—2003), I was responsible for the conceptualisation, development, and maintenance of the entire project—server to front end design.

Community Arts ProjectThe Community Arts Project is a South African organisation dedicated to providing people-centred education and training in the visual and performing arts. CAP works with youth and unemployed adults and is committed to promoting the arts for community development. Part of a 5 month long work placement with CAP had me developing their web site. The project included collaboratively developing the web site's objectives with the organisation and implementing a design solution. Unfortunately, this web project remains unfinished, as the organisation has gone under some dramatic changes. A draft of the project is still available online.

Adult Learning South AfricaAdult Learning South Africa is an on-line resource for adult educators and learners in South Africa. The project is a collaborative effort between several South African organisations and government, but primarily steered by IIZ/DVV. I served as the Information Architect in the early phase of project development while I lived in South Africa. For many months following this, I offered technical support during the design phase.

flag.blackened.netflag.blackened.net is an all volunteer run Internet server which provides free services for libertarian-socialist organizations from around the world. Spanning over a few years (2000 to 2002), my contribution to this project included a complete redesign of the front page, along with implementation and support of various other Internet technologies (mailing lists, content management systems, etc.) that met the needs of flag users. My responsibilities included monitoring systems status (flag runs on freeBSD), maintaining systems (Apache, MySQL, and Mailman primarily), and supporting users.

TrainingTraining people how to use computers and particular applications has been ongoing work that I have been involved with. I get a great amount of personal satisfaction training people in web and desktop publishing as I put a great amount of value in helping individuals express themselves through such mediums. In addition, as a web application developer it is important that my final deliverable includes training on the given solutions I produced for them. Some recent highlights of my computer training work include:

  • As coordinator of QPIRG at Concordia University, I provided ad hoc technical support for people involved in creating web-site and print media related to public interest campaigns we were involved with. I also ran numerous workshops on everything from HTML & web publishing, desktop publishing, and graphic manipulation.
  • A major component of my work with CAP in South Africa was focused on computer literacy training. I conducted basic one-on-one computer training with staff—many of whom never had access to computers previously. I also ran a small introductory course on web publishing for a staff member and Intern in tandem with the development of the CAP web-site.
  • I ran a weekend workshop for a Johnson State College faculty member as well as members from the Vermont community media organisation. The workshop provided an introduction to web publishing, as well as email security.

lgpLeft Green Perspectives was an sporadic publication of the Social Ecology Project spearheaded by American intellectuals Murray Bookchin and Janet Biehl. LGP focused on the development of a new Communalist perspective.

The goal of this project was to provide an on-line archive of past issues. This web site was one of my first, and has not been updated for just under a decade.

Skills / Tools

PHP

I have been programming web and console applications (the latter more recently) in PHP since 4.0.2 (Sept., 2000). As a full-time web based developer, PHP is my passion. I have developed in PHP 4 & 5 everything from small scale dynamic sites, medium sized e-commerce and portal sites, to large scale corporate Intranets. I've even developed a Windows© Service which acted as a bridge between a company's Intranet and several hundred Point of Sales clients. Recently I achieved Zend Certified PHP Engineer status.

Tools of choice:

  • Umbrello for UML class diagrams or DIA bundled with UML2PHP5;
  • Zend Studio for coding & debugging;
  • PHPDoc for inline documentation;
  • PEAR Coding Standards / PHP Security Consortium Security Guide;
  • SimpleTest for Unit Testing;
  • PEAR to avoid reinventing the wheel;
  • Xdebug & KCachegrind for execution profiling;
  • Apache Benchmark or Microsoft WAST for stress testing;
  • eAccelerator for Opcode caching.
RDBMS

My experience with relational databases dates back to my non-profit management days where I was responsible for crafting and maintaining member and volunteered databases primarily in MS Access, but also in FileMaker Pro. As I started getting interested in developing dynamic websites, MySQL became the RDBMS of choice. I still use MySQL very regularly, but I also have worked extensively with Oracle 8i and 9i, and have done some stuff with SQLite and PostgreSQL.

For the vast majority of the project I have worked on, I played the role of database designer as well. I am also pretty decent at crafting complex SQL.

Tools of choice:

  • For ER Diagrams I use DBDesigner for MySQL or DeZign for Databases for other RDBMS vendors;
  • PEAR::MDB2_Schema for RDBMS independent schema files;
  • DBVisualizer, PHPMyAdmin, MySQL Query Browser, and sometimes even the vendor's command line client for SQL.
Software Project Management

I have played a leading role (or in many cases the lead role) in many web development projects. My involvement in software management consists both of managing project deadlines and budgets, and also managing project code.

Managing project code, both within a team or independently, I use the Open Source industry standard CVS to track changes, easily deploy / upgrade software installations, as well as handle multiple development branches. More recently, I have been dabbling with Subversion in combination with Edgewall Software's Trac.

Tools of choice:

  • Cervisia is an excellent CVS client GUI, but TortoiseCVS when on Windows;
  • Chora or CVSTrac for repository browsing;
  • Netoffice for project task, time-line, and client management;
  • Wiki for project documentation.
Apache

I have been building, deploying, tweaking, maintaining the Apache 1.* web server for close to 8 years, primarily on *NIX like servers. As a PHP developer, I haven't found a compelling reason to migrate to Apache 2 just yet.

Tools of choice:

  • mod_php, mod_php5. Fiddled with mod_perl, and of course have done some mod_cgi as well;
  • mod_rewrite for URL rewriting;
  • mod_status for live status reports;
  • mod_log_config, mod_log_forensic, & AWStats;
  • mod_ssl / OpenSSL;
  • mod_dosevasive for DoS blacklisting;
  • Apache Benchmark or Microsoft WAST for stress testing.
Client Side

I launch my first web site back in 1996 for a Concordia University association. I am continually upgrading my skills for this medium. More recently, I have been working with Web 2.0 technologies.

Tools of choice:

  • XHTML 1;
  • CSS 1 / 2;
  • W3 Validator / Tidy;
  • Javascript 1.5;
  • JPSpan for Rich Applications using AJAX;
  • Web Services with XML-RPC
  • RSS syndication;
  • Dreamweaver MX 2004, Quanta, or any text editor for coding.
Server Side

I have been fiddling with *NIX based Internet servers for work and play since 1997. My command line crash course was on a Debian Linux box, followed by freeBSD. More recently, I maintain two WHM / Cpanel machines running Red Hat Enterprise 3 and Red Hat 9 Linux.

Tools of choice:

  • Linux, including Madriva & Red Hat, freeBSD;
  • CPanel / WHM for commercial hosting
  • BASH, but more PHP these days for command line scripting;
  • Apache;
  • MySQL;
  • Exim, MailScanner / ClamAV, & Mailman.
XML

I have been using XML for the delivery of web services & data storage.

Tools of choice:

  • XML-RPC / PEAR::XML_RPC;
  • DOM including PHP and Javascript interfaces;
  • PHP 5's SimpleXML & PEAR::XML_Serializer;
  • PHP XPath implementation as part of the DOM extention;
  • RSS;
  • PHP Tidy for converting HTML into validly formed XHTML.
Other Languages
  • PERL: I have had some exposure to PERL installing third party web applications. I can read the stuff, and right some too.
  • Java: I took an intro class on Java where I learned some of the language basics, including building GUIs with Swing.
  • ActionScript: Mostly ActionScript 2. I took a class on Actionscript development, and have done a little Flash design too...