Portfolio

ICI Homes University Computer Help Desk University Timeclock Tech Alerts University Labs

ICI Homes • Site still in beta

ICI Homes' hired me to maintain their current website. After only a month, it became apparent a complete overhaul was required. The site is still in development, but puts heavy emphasis on big, beautiful pictures.

University Computer Help Desk • http://helpdesk.illinoisstate.edu/

The Help Desk site is one of my oldest projects. The entire site, including the custom CMS, was built from the ground up to fit a specific set of requirements. Also included are Illinois State's ULID Account Management tools, where affiliates change their password and update account information.

University Timeclock • http://timeclock.illinoisstate.edu/

Timeclock was one of my more complex projects. It allowed employees to clock in and out of shifts, view their time, view their work schedule, give up scheduled hours and agree to cover other employees' time. Manager tools and reports made managing their employee base easy.

Tech Alerts • http://alerts.illinoisstate.edu/

Closely tied to the Help Desk, Tech Alerts was built to post up-to-date information on technology issues affecting Illinois State. Notifications are posted to the site, sent to subscribers in email and SMS messages, syndicated via RSS, and posted to Twitter and Facebook, all from a single form.

University Labs • Sites is no longer available

A more simplistic site, University Labs was also managed by the Help Desk. The site outlines lab locations, hours and equipment for the public labs on Illinois State's campus. An employees area allowed quick access to tools lab employees used on a daily basis.

These are the highlights of my work in my professional career. For each one of these sites, I controlled the development cycle from conception to launch, including mock-ups, layout, graphical work, coding, maintenance, and administration. I invite you to follow the links to each one and evaluate my work firsthand.

I also invite you to take a deeper look at this very site. Many facets of my talents, including responsive design, print stylesheets, and accessible design, are employed here.

-Michael Irigoyen

Qualifications

Proficient in:

  • PHP
  • HTML (HTML 5, XHTML)
  • CSS 3
  • SCSS, SASS, & Compass
  • JavaScript
  • jQuery & jQuery UI
  • XML & XSL(T)
  • SQL (PostgreSQL, MySQL)
  • Responsive Web Design
  • Accessibility Standards
  • Adobe Photoshop, Illustrator, & InDesign

Experience in:

  • Linux, Apache, MySQL, PHP (LAMP) Stack
  • Sencha Touch Mobile App Framework
  • Google Search Appliance
  • Google Analytics
  • Usability Testing
  • Subversion

Certifications

Zend Certified Engineer, CompTIA A+ and Network+ Certified
  • Zend Certified Engineer
  • CompTIA A+ Certified
  • CompTIA Network+ Certified

Experience

Web Administrator/Developer

ICI HomesDaytona Beach, FLApril 2013 - Present

Responsibilities

  • Administer a LAMP stack enviroment which houses approximately a dozen seperate sites.
  • Develop and maintain back-end, object-oriented code for each site in PHP.
  • Program internal, touch-screen "kiosk" type web sites for sales centers.
  • Manage underlying databases, table structures, and data sources for web applications using MySQL, MSSQL, JSON(P), and XML.
  • Create stunning digital art for many different web templates.
  • Assist in graphic and logo creation for various projects that may tie to the web.
  • Monitor and analyze Google Analytics data for web sites.

Web Application Developer

Illinois State UniversityNormal, ILDecember 2007 - April 2013

Responsibilities

  • Develop and maintain front-end user interfaces and back-end code for a variety of departmental web sites and applications.
  • Manage underlying databases, table structures, and data sources for web applications using PostgreSQL, MySQL, JSON(P), and XML.
  • Work with web services from various systems on campus, including the mainframe, trouble ticketing systems, LDAP, and AD.
  • Administer the campus Google Search Appliance (GSA).
  • Monitor and analyze Google Analytics data for campus web sites.
  • Mentor staff members and students of the Help Desk working on web projects.
  • Design visually stunning layouts for printed mouse pads, magnets, posters, and other printed material using Adobe Photoshop, Illustrator, and InDesign.
  • Wrote documentation on web applications I created.

Student Web Developer

Illinois State UniversityNormal, ILOctober 2005 - December 2007

Responsibilities

  • Develop and maintain front-end user interfaces for a variety of department web sites and applications using PHP, HTML, CSS, and JavaScript.
  • Manage underlying databases, table structures, and data sources for web applications using PostgreSQL and XML.
  • Design visually stunning layouts for printed mouse pads, magnets, posters, and other printed material using Adobe Photoshop, Illustrator, and InDesign.
  • Provided in-person computer support to University affiliates within the Help Desk.

Call Center Analyst

Illinois State UniversityNormal, ILMay 2005 - October 2005

Responsibilities

  • Provided technical support to University affiliates over the phone and in person.
  • Developed customer service skills in a teamed environment.
  • Tested software across multiple operating systems and environments.
  • Updated existing Help Desk website with contextual changes.
  • Provided minor graphical contributions to printed documentation.
  • Wrote technical documentation for use by employees and end-users.

Education

Graduation from Illinois State

Illinois State University

Bachelor of Science (2007)
Major: Technology

Code Sample

Language: PHP

The sample of code provided is one of the many functions I wrote to be used in our process for ULID changes at Illinois State University. Each University member is given a ULID, based upon their legal name, to uniquely identify them in electronic systems, such as email. In the case of a legal name change, we allow an individual to have a new ULID generated based on their new name.

This function handles checking if a newly generated ULID is available for use. During this check, the ULID is verified against the campus LDAP system, as well as the campus SMTP server. It also verifies the newly generated ULID is not identical to their current ULID.

<?php // Validate if a newly generated ULID is available for use. This function // will check LDAP and the mail server to verify this ULID is available // and this ULID does not match a email alias or nickname. // Return: array(error value, message/action) function validate_newulid($newulid, $currentulid, $legalname) { $connect = ldap_connect("url.obscured.edu"); if($connect) { // Log in to LDAP with our admin account $bind = @ldap_bind($connect, "uid=obscured_admin_account", "obscuredpassword"); if($bind) { // Search for the ULID $search = ldap_search($connect, "ou=People", "uid=".$newulid); $results = ldap_get_entries($connect, $search); if($results['count'] == 0) { // The new ULID was not found in LDAP. Open a socket to the // email system to verify the ULID is not already being used // as an email alias or nickname. $fp = fsockopen("url.obscured.edu", 25, $errno, $errstr); if($fp) { // Check connection to the SMTP server $connection = fgets($fp, 512); if(substr($connection, 0, 3) == "220") { // Give the server our HELO command fwrite($fp, "HELO ilstu.edu\r\n"); $helo_return = fgets($fp, 512); if(substr($helo_return, 0, 3) == "250") { // Give the server our MAIL FROM address fwrite($fp, "MAIL FROM:helpdesk_noreply@ilstu.edu\r\n"); $mf_return = fgets($fp, 512); if(substr($mf_return, 0, 3) == "250") { // Test our new ULID's email address to make sure // it comes back as an "unknown or illegal alias" fwrite($fp, "RCPT TO:".$newulid."@ilstu.edu\r\n"); $alias_test = fgets($fp, 512); if(substr($alias_test, 0, 3) == "550") { // No email alias or nicknames exists with this ULID // Return that it is safe to use this new ULID. $valid_request = array(TRUE, "USE"); } elseif(substr($alias_test, 0, 3) == "250") { // An alias or nickname exists, generate new ULID $valid_request = array(TRUE, "REGENERATE"); } else { // Error - Unknown error $valid_request = array(FALSE, "ERROR", "There was an unknown error while processing your request."); } } else { // Error - Denied MAIL FROM $valid_request = array(FALSE, "ERROR", "There was an error validating an alias check."); } } else { // Error - HELO command denied $valid_request = array(FALSE, "ERROR", "There was a problem connecting to SMTP."); } // Close the connection fwrite($fp, "quit\r\n"); fclose($fp); } else { // Error - SMTP server not connected $valid_request = array(FALSE, "ERROR", "There was a problem opening a socket to SMTP."); } } else { // Error - Could not open the socket to the mail server $valid_request = array(FALSE, "ERROR", "There was a problem opening a socket to SMTP."); } } elseif($results['count'] == 1) { // The ULID supplied returned a record in LDAP // Grab the record's legal name from the result array $result_ln = explode(" ", $results[0]['legalname'][0]); // Check the newly generated ULID against the user's // current ULID. If they match, this person is not eligiable // for a ULID change request. if($newulid != $currentulid) { // Check the result's legal name against the legal name // of the person currently logged in. If the names match, // the logged in user's name has not changed and we cannot // process a ULID change request. if(count($result_ln) == count($legalname)) { if(($result_ln[0] == $legalname[0]) && ($result_ln[1] == $legalname[1]) && (count($result_ln) == 3 && ($result_ln[2] == $legalname[2]))) { // Names match, this request is not valid $valid_request = array(FALSE, "INFO", "Your ULID already matches your legal name.<br/>You do not qualify for a ULID change."); } else { // Names are different, request is valid // Regenerate a new new ULID $valid_request = array(TRUE, "REGENERATE"); } } else { // Counts are different, request is valid // Regenerate a new new ULID $valid_request = array(TRUE, "REGENERATE"); } } else { $valid_request = array(FALSE, "INFO", "Your ULID already matches your legal name.<br/>You do not qualify for a ULID change."); } } else { // Error - Problem when searching LDAP $valid_request = array(FALSE, "ERROR", "There was a problem searching LDAP."); } } else { // Error - Can't log in as the LDAP admin $valid_request = array(FALSE, "ERROR", "There was a problem binding to LDAP."); } } else { // Error - Can't connect to LDAP $valid_request = array(FALSE, "ERROR", "There was a problem connecting to LDAP."); } return $valid_request; } ?>

Publications

Active Member of Stack Overflow

http://stackoverflow.com/users/542517/michael-irigoyen
Stack Overflow (www.stackoverflow.com)
Top 10% for PHP, HTML, CSS, JavaScript, and jQuery
Top 20% for MySQL

"10 Ways To Make Your XHTML Site Accessible Using Web Standards"

http://coding.smashingmagazine.com/2009/06/18/10-ways-to-make-your-site-accessible-using-web-standards/
Smashing Magazine (www.smashingmagazine.com)
Published June 18th, 2009

Contact

Phone

(309) 531-6226

References

References available upon request