Education

Bachelor of Science in Computer Information Systems

Devry University

Pomona, CA

Graduation Date: 06/2006

Cumulative GPA: 3.81


Skills

Platforms:Windows, Linux
Languages:PHP, XML, HTML / XHTML, XSLT, Javascript, CSS, C#, PL/SQL, C++, C, ASP.NET, Visual Basic .NET, T-SQL
Frameworks:jQuery, SimpleSAML
Tools:Subversion (SVN), Git, Microsoft Office, Microsoft Visio, Microsoft Project, QA Wizard 4/ Pro, Firebug, VirtualBox, Bugzilla, VirtualPC, Eclipse, Mantis Bug Tracker
Databases:MySQL, PostgreSQL, Microsoft SQL Server, Oracle 10g, SQLite
Web Technologies:AJAX, SOAP, SAML, Memcached, APC

Experience

Senior Web Developer

iQual Corporation

07/2010 - Present
  • Migrate the company's internal web applications from Cold Fusion to HTML, PHP, MySQL, and the JQuery Javascript framework.
  • Build and maintain a call center application driven by PHP, MySQL, HTML, CSS, and the jQuery Javascript Framework with extensive use of AJAX.
  • Utilize web technologies, such as the SimpleSAML PHP framework and the PHP SOAP service, to interface with outside organizations.
  • Update several legacy PHP scripts to use modern programming methodologies.
  • Create and maintain several data reports distributed to chief company officers and business partners.
  • Contribute fixes, changes, and new functionality to product software repositories via SVN.
  • Collaborate with other employees to design and build the company''s internal web applications.
  • Setup and maintain the company's SVN repositories.

Web Developer

Ibex Data

01/2010 - 08/2010
12/2010 - 05/2011
  • Build, test, deploy, and maintain various software projects for clients utilizing PHP, MySQL, HTML, CSS, AJAX, and the jQuery Javascript framework.
  • Contribute fixes, changes, and new functionality to client software repositories via SVN.
  • Collaborate with other developers, both remote and in-office, to fix bugs, create new functionality, and communicate ideas.
  • Manage work using tickets through Mantis Bug Tracker.

Web Programmer

University of California Riverside Extension

06/2009 - 09/2009
  • Design and develop various in-house applications to streamline processes with the Department of Information Technology utilizing PHP, Oracle 10g, the jQuery Javascript framework, AJAX, CSS, and HTML.
  • Collaborate with users and department supervisors to gather requirements to create new functionality for existing in-house applications.
  • Contribute fixes, changes, and new functionality to the application repository via SVN.

Jr. Programmer

Houghton Mifflin Harcourt

09/2006 - 12/2008
  • Build, test, deploy, and maintain a web-based K-12 student information system utilizing PHP, an in-house framework built on PHP, PostgreSQL, HTML, CSS, AJAX, and the jQuery Javascript framework.
  • Collaborate with programmers, both with in development team and external, to fix bugs, create new functionality, and communicate ideas.
  • Develop data import scripts utilizing PHP to bring data of varying formats into the student information system.
  • Directly import data from a student data warehouse product - developed in-house utilizing PHP, the same in-house framework, and MySQL - into said student information system.
  • Contribute fixes, changes, and new functionality to the software repository via SVN.
  • Test both the student information system and the student data warehouse product utilizing automated scripts in QA Wizard 4 and QA Wizard Pro.
  • Manage bugs via Bugzilla.

Portfolio

Flow Framework

URL: https://github.com/tommy-bolger/Flow

Skills Used: PHP, PostgreSQL, HTML / XHTML, Javascript, CSS, jQuery, Memcached, APC, Firebug, Git, VirtualBox, Linux

Flow is a framework and CMS written in PHP. It is actively developed by myself to further my knowledge of PHP and gives me an outlet for developing ideas. It leverages several of the latest PHP 5 features for fast and efficient operation. This website is running the latest version of Flow.

RoadTripNation.org

Organization: Ibex Data

URL: http://roadtripnation.org/

Skills Used: PHP, MySQL, HTML / XHTML, Javascript, CSS, jQuery, Subversion (SVN), AJAX, Mantis Bug Tracker, Firebug, VirtualBox, Linux

RoadTripNation.org is an e-learning platform targeted at high school students and based on the PBS reality show Road Trip Nation (http://www.pbs.org/wnet/roadtripnation/). This platform contains a curriculum of lessons with assignments that assist students in deciding their college career focus and provides a set of tools for teachers to manage classes and students. As part of the curriculum students are encouraged to form road trip teams and embark on a road trip of their own. Students also document their progress on the site where it is displayed in a format similar to the PBS show road trips on the official site (http://roadtripnation.com/).

As a member of the development team behind the website I was actively involved with the ongoing development and maintenance of the site.

RoadTripNation.com

Organization: Ibex Data

URL: http://roadtripnation.com/

Skills Used: PHP, MySQL, HTML / XHTML, Javascript, CSS, jQuery, Subversion (SVN), AJAX, Mantis Bug Tracker, Firebug, VirtualBox, Linux

The official website of the PBS reality show Road Trip Nation (http://www.pbs.org/wnet/roadtripnation/). This site serves as a hub to learning more about the series, view video excerpts, listen to music, read the official blog, shop at the official store, and become actively involved.

My level of involvement with this website was as a member of the development team behind it with a focus on maintenance.

CollegeED Online

Organization: Ibex Data

URL: http://ce.collegeboard.org/

Skills Used: PHP, MySQL, HTML / XHTML, Javascript, CSS, jQuery, Subversion (SVN), AJAX, Mantis Bug Tracker, Firebug, VirtualBox, Linux

CollegeED Online is an e-learning platform targeted at students grades 7-12. It was created in collaboration with Collegeboard (http://www.collegeboard.com/) and Roadtrip Nation (http://roadtripnation.com/). This platform contains a curriculum of lessons with assignments that assist students in deciding their college career focus and provides a set of tools for teachers to manage classes and students.

My level of involvement was as a member of the web development team that created this website. As such I have worked with all aspects of this website: the design, underlying data layer, the database, and the code for the web pages. My focus on the web development team switched often to what the team needed: a web designer, a web programmer, a database analyst, and quality assurance.

DOA

Organization: University of California Riverside Extension

Skills Used: PHP, Oracle 10g, Javascript, jQuery, AJAX, HTML / XHTML, CSS, Subversion (SVN), Linux

DOA was an intranet site for the Department of Information Systems (DIS) and the Department of Information Technology (DIT) at the University of California Riverside Extension. Its purpose was to allow employees from other departments to submit common and frequent requests to DIT using web forms. This allowed DIT to receive requests in a standard format and helped to streamline operations.

My role for this site was as its sole web programmer and built DOA under guidance of the Director of Information Systems.

Iris Student Information System

Organization: Houghton Mifflin Harcourt

Skills Used: PHP, PostgreSQL, Javascript, jQuery, AJAX, HTML / XHTML, CSS, Subversion (SVN), Linux, QA Wizard 4/ Pro, Bugzilla

Iris SIS (Student Information System) was a product originally developed by a start-up company formerly known as Achieve! Data Solutions. It was a system that provided educators and school administration at the K-12 level the means to manage a student's information and the means to view reports on student data. Iris allowed teachers and administration to enter attendance for a student and manage the following categories of data for a student: demographics, special education, language (for English-language learners), health, grades, and discipline. In addition Iris had a student scheduler that would generate student schedules for a school or district based on various enrollment parameters.

The primary focus of my role on the development team was a database analyst. I wrote reports, manipulated data in the database, and troubleshooted issues with stored procedures. I also wrote new functionality for Iris and helped maintain its codebase. The above screenshot of Iris is of a page I had written.


Code Examples

Get File Dependencies Script

Organization: Ibex Data

Portfolio Project: RoadTripNation.org

Skills Used: PHP

This command-line PHP script scans a file for dependencies against the directory where the dependencies are located. In turn the dependencies for found dependencies are also retrieved and scanned. This continues until all dependencies have been scanned.

In a recent project I was in charge of migrating a legacy application to the new project. One of the requirements of the migration was that all dependencies had to also be migrated over. After manually searching several files for their dependencies it became clear that the process needed to be automated.

MySQLi Database Abstraction Layer

Organization: iQual Corporation

Skills Used: PHP, MySQL

This PHP class contains a set of functions to connect to, retrieve, and manipulate data from a MySQL database.

During development of the company's management system the need arose to migrate database operations away from mysql_* functions and toward prepared statements. To meet the need I adapted the database abstraction layer from my framework, Flow (https://github.com/tommy-bolger/Flow), to utilize MySQLi instead of PDO. The result is the above code sample.

Find Possible Orphaned Files Script

Organization: Ibex Data

Portfolio Project: RoadTripNation.org

Skills Used: PHP

This command-line PHP script scans a directory for files that are not referenced in any of the other files in that directory.

The need for this script arose when I was tasked with finding orphaned or obsolete files that needed to be removed. Since the repository was quite large - containing thousands of files - it was difficult to do so manually. I wrote this script to speed up the process.

Import Object getData Function

Organization: Houghton Mifflin Harcourt

Portfolio Project: Iris Student Information System

Skills Used: PHP, PostgreSQL

This PHP function constructs a select query with a where clause based on the parameters passed to it, caches the query, and then executes it.

This code excerpt was part of an Import object I had written and a part of a larger data import framework that I was developing during my tenure at Houghton Mifflin Harcourt. The data import framework allowed for the conversion of data in varying formats into something usable by Iris without having to write custom code for each set of data.