Scroll To View More
Michael Gossmann, CSS Developer in London, ON, Canada
Michael Gossmann

CSS Developer in London, ON, Canada

Member since March 12, 2018
Michael is now available for hire
Michael Gossmann, CSS Developer in London, ON, Canada
Michael Gossmann

CSS Developer in London, ON, Canada

Member since March 12, 2018
Mike has been playing with the web platform for over a decade, and has done enough Drupal development to earn a Grand Master Certification. He's made a career of being thrown into projects in chaos, quickly learning the domain, codebase, team, and constraints, and getting things back on track. After six years of learning, doing, and teaching a variety of tasks at agencies, Mike is looking forward to applying that expertise to your business.
Michael is now available for hire

Portfolio

Experience

  • jQuery, 11 years
  • HTML, 11 years
  • JavaScript, 11 years
  • CSS, 11 years
  • Git, 7 years
  • Drupal 7, 5 years
  • Docker, 3 years
  • GitLab CI/CD, 2 years
London, ON, Canada

Availability

Part-time

Preferred Environment

Linux, Vim, Tmux, Git

The most amazing...

...thing I've built is a service that packages Drupal modules from GitLab on the fly, making them available for download by multiple tools.

Employment

  • Web Developer

    2014 - 2018
    Digital Echidna
    • Built full sites using Drupal.
    • Trained and mentored new developers.
    • Created a system to automatically provision and repair developer machines.
    • Instituted CI across the organization.
    • Automated many developer tasks.
    Technologies: Drupal, Docker, Node, Slack
  • Web Developer

    2013 - 2014
    The Marketing Department
    • Updated, maintained, and built eCommerce sites using Drupal.
    • Introduced version control.
    • Built email campaigns.
    • Trained teammates on Git and SMACSS.
    • Automated development environments.
    Technologies: Drupal, Vagrant
  • Web Developer

    2012 - 2013
    Inspiratica
    • Built a custom CRM solution on top of the in-house Zend-based framework.
    • Proposed new functionality for the in-house framework.
    • Trained new hires.
    • Built complicated, multi-step, interactive forms.
    • Maintained WordPress sites.
    Technologies: Zend, JavaScript, WordPress
  • Web developer

    2011 - 2012
    Thread Development
    • Built and themed several Drupal sites.
    • Developed an offline-capable mobile web app for a local event.
    • Fixed several bugs in a popular shipping module for e-commerce Drupal sites.
    • Built a Drupal-based point-of-sale system.
    • Functioned as the company's one-man IT team.
    Technologies: Drupal, CSS, JavaScript
  • Web Developer

    2007 - 2010
    Lake Erie Country Club (Volunteer)
    • Redeveloped a static sit to a more manageable custom CMS.
    • Self-directed introduction to PHP.
    Technologies: PHP, CSS, HTML, jQuery

Experience

  • Near-real-time Alert System (Other amazing things)

    A Drupal-based college website I recently worked on required an alert banner to appear on the website in real-time, based on the college's emergency alert system, even if there was no active alert at the time the tab was opened. The hosting the college was using did not support any real-time events, and was already overtaxed serving the current site.

    As enrollment opened, the site would experience hundreds of simultaneous visitors, many of whom would open several tabs as they browsed the course catalog and make comparisons.

    To allow the website to frequently check for alerts, without crashing the server, I had to work out a system where all the open tabs on a users browser would elect 1 tab to do all the polling, and relay the updated alert message to the others.

    Aside from the frequent AJAX polling, every time a new page was downloaded the system would check if it contained a message. If it was an older message from a cached version of the page, it would be updated to something current. If by chance the message was newer, the other tabs would update. If the site went more than a minute without polling, another tab would take responsibility.

    This all worked reliably in modern browsers, with a graceful fallback.

  • Retirement Community Intranet (Development)

    As the main developer on this project, I was in charge of modifying a standard Drupal 7 installation until it met the needs of the client, and coding the theme for the site. This intranet served to keep track of documentation and training status for dozens of retirement homes and long-term-care centers across Canada.

    The site's front end was built using SCSS and following the SMACCS naming conventions on top of Drupal's theme system. An interesting feature of this site was that each major section had a different highlight color assigned to it. I developed a Sass mix-in that allowed myself and other developers to style everything without having to worry about the color-changing logistics. I've been told by new developers working on the project that they found the theme very easy to jump into.

    The site's back end featured a document management system that pushed Drupal's permissions API to its limits, allowing access based on roughly 7 dimensions, with wildcard support. Admins could grant access to categories like"All public documentation in retirement homes", "All documents in homes a user is a member of", or "Nursing documents in retirement homes in eastern Canada"

  • Jetpack (Other amazing things)

    This is a simple bit of CSS art playing with shadows, shapes, and gradients to simulate different shapes, lighting, and materials.

  • Generic Platformer (Other amazing things)
    http://c572.ca/live/school/platformer/

    This was a little game I built in college as an exercise in object-oriented JavaScript. It's starting to show it's age, but I'm very happy with it, and someday I'd love to expand on the mechanic.

  • Ubiquitously Used Useful Utilities Unveiled (Other amazing things)
    https://vimeo.com/144831200

    That mouthful is the title of an Ignite talk I gave at DrupalCamp 2015.

    The talk focused on commonly used Drupal functions that are extremely useful, but easy to miss. Usually, they add too much noise to beginner tutorials but aren't worth mentioning in more advanced ones. You need to look at existing code and read the documentation to find them.

    I gave this talk during my time at Digital Echidna, and yes, I'm wearing a company-branded jersey. You can always spot the Echidna's at a conference.

Skills

  • Languages

    ECMAScript (ES6), JavaScript, HTML, Markdown, CSS, PHP, Bash, YAML
  • Tools

    GitLab, GitLab CI/CD, Gimp, Blender, FullCalendar, GitHub, Trello, Git, Apache Solr, Photoshop CS6, Vagrant
  • Platforms

    Drupal 7, MacOS, Docker, Linux, Drupal 8
  • Storage

    JSON, MySQL
  • Frameworks

    Express.js, Bootstrap, Twig
  • Libraries/APIs

    Trello API, jQuery, Slack API
  • Other

    Training, Documentation, Hubot
  • Paradigms

    BEM, Agile, SMACSS

Education

  • Ontario college graduate certificate in Interactive Media Specialist
    2011 - 2012
    Fanshawe College - London, Ontario
  • Ontario college diploma in Multimedia Design and Production
    2009 - 2011
    Fanshawe College - London, Ontario
Certifications
  • Drupal 7 Grand Master
    MAY 2015 - PRESENT
    Acquia
I really like this profile
Share it with others