Norman J. Santos
Senior Web Application Developer
Contact Information
506 N. Mangum St. #301Durham, NC 27701
Phone: (775) 285-6676
santnorm@gmail.com
www.elnormo.net
Technical Skills Summary
- PHP 4 & 5
- CakePHP
- Git
- Lithium
- PHP
- PHP 5.3 OO
- Object Oriented Javascript
- AJAX
- Adobe Air
- FreeBSD
- Linux (Red Hat, Ubuntu, CentOS)
- HTML5/XHTML/HTML
- CSS
- MySQL
- SQL Server
- SQLite
- MongoDB
- Subversion
- Shell
- Scripting
- Apache
- IIS
- VIM
- Photoshop
- Illustrator
- Eclipse
- Vyatta Routers
- VoIP
- DNS
- jQuery
- Prototype.js
- Node.js
- Smarty
- Arduino
- Cross Browser Development
- Front-end Development
- Zend Framework
- Scrum
Objective
To become a contributing member of an excellent team of programmers and developers that build wonderfully useful Web Applications.
Education
Westwood College, Denver, CO
Bachelors of Science Degree in Computer Network ManagementOct. 2004
Experience
Dunnwell LLC - Durham, NC Sept. 2010 – Current
- Working with Zend and Doctrine 2.0.
- Aglie, Pair Programming with 2 week sprints.
- Participated in Design Discussions, Grooming sessions, Daily Standup's and Bi-Weekly Sprint Review.
- Created MVC based application using MySQL, jQuery, jsonp, and AJAX.
- Wrote Unit tests as needed to provide the proper code coverage with PHPUnit.
- Used node.js, vows, zombie.js to replace hand executed in browser QA and functional tests.
- Connected layouts and HTML provided by design teams into functional and usable pages.
American Journal Experts - Durham, NC Jun. 2010 – Sept. 2010
- Lead developer for a startup investment project.
- Took rough requirements and refined them into actionable tasks.
- Implemented tasks according to an ambitious time line.
- Wrote a database session handler for Lithium PHP from scratch.
- Implemented an extendable administration area for the site.
- Created a reusable and flexible Users, Groups and Permissions module.
- Added logging module allow the application to log errors and generated SQL queries to different locations.
- Identified and resolved a handful of errors in Lithium PHP - made fixes available to the project so they could be merged into the upstream code base.
- Created a reusable authentication and authorization system for Lithium PHP.
- Used PHP 5.3 static classes to implement models to interact with the underlying database and data model.
- Wrote a filter for auto creation of GUID columns, created and modified data time columns.
- Designed and implemented a dynamic interface for CV management around the MVC paradigm using jQuery and custom plugins.
- Used Git to push merges to the development repository for deployment on the beta site.
- Integrated Zend Framework modules into Lithium PHP for object reuse
American Journal Experts - Durham, NC Oct. 2009 – Jun. 2010
- Designed and built a centralized messaging class to replace an aging user messaging system that was no longer flexible enough to handle new user, group and geographical constraints.
- Created and modified shell scripts to migrate the existing code base from RCS to SVN to GIT.
- Worked with management create specifications of needed changes and features for the site.
- Wrote complex SQL queries and joins for daily, monthly and yearly reports.
- Made changes as needed to the MySQL database server that contained around 200 tables.
- Used Zend Framework to create an extendable email class for use throughout the site.
- Packaged database schema changes into GIT version control system.
- Wrote jQuery plugins that dealt with autoloading default data on page load and added class selectors for AJAX URL loading through an iframe to preserve form POST ability and default error handling.
- Removed prototype.js code and wrote replacement functionality using jQuery.
- Wrote migration scripts for schema changes from development to production.
- Replaced legacy code with PHP5 classes improving maintainability and code reuse.
- Worked with business unit managers to create specifications for development tasks.
- Participated in Scrum meetings and code reviews.
- Used pivotaltracker.com for user stories, burndown charts and development tracking.
- Utilized jQuery UI for rich interface development to lower the page reload count and create a better end user experience.
- Cross browser testing of the site using OSX, Linux and Windows on Chrome, Firefox, Safari and IE.
- Modified cron scripts for emailing, updating and indexing user data.
- Designed in Adobe Illustrator, sliced into HTML/CSS layouts and rebuilt the customer login portal to add additional functionality.
Exyst Inc. - Carson City, NV Dec. 2008 – Dec. 2009
- Responsible for my teams billable hours and overall effectiveness.
- Met with clients to develop specifications.
- Scheduled and assigned tasks to team members along with being responsible for the final QA before releasing changes to the client.
- Did whatever it took to make sure a project was successful and the client was happy.
- Provided direction to the team on technical implementation of various solutions.
- Programmed core classes for reuse in the application development process.
- Created proposals and managed incoming sales leads.
- Designed and built an extremely flexible CMS based on CakePHP - hoping to open source this CMS in the next revision.
- Created a reusable authentication, authorization and permissions system for CakePHP.
- Directed the migration of 2 production web servers to new hardware. This included scheduling migration windows with clients, taking sites offline, migrating files, backup and restore of databases and troubleshooting installation issues.
- Created a RESTful API that utilized JSON for data transport and structure to connect a client server application.
Exyst Inc. - Carson City, NV Nov. 2007 – Dec. 2008
- Reverse engineered a 25 year old binary data format and wrote the import tool in PHP.
- Conceived, designed and built an Adobe Air client server application that provided extremely fast full text search through 1000's of records along with offline mode for search without an Internet connection. (~12,000 lines of code)
- Modified and extended existing open source packages to fit clients needs. ( Joomla, Xcart, CMS Made Simple, Expression Engine)
- Provisioned sites on our LAMP stack for developers.
- Documented changes made to core packages.
- Troubleshot hard to find web application issues and provided final resolution.
- Wrote migration and data normalization scripts to transfer legacy MySQL data into new databases.
- Installed and maintained the network and VoIP phone equipment for the main and branch office.
- Met with clients face to face to gather requirements and answer questions about the development process.
- Worked both as part of a team and individually throughout the whole web development process.
- Successfully launched multiple sites within predefined launch windows.
- Sliced Adobe Photoshop and Adobe Illustrator design comps into valid HTML/CSS layouts.
- Carefully made changes to live sites and web applications at the clients request.
- Managed Linux production and development web servers, troubleshot and resolved issues with Suexec, MySQL and PHP.
- Bare metal install of the in house Asterisk PBX, Vyatta Routers and Linux File server.
- Wrote AJAX additions for client projects as needed.
- Used Apache ANT to create custom deployment script to automate repetitive tasks.
New City Media - Blacksburg, VA Apr. 2006 – Mar. 2007
- Developed dynamic web sites using: PHP, SQL Server, MySQL, Javascript, AJAX.
- Learned and implemented various Javascript/AJAX frameworks according to given specifications.
- Provided input during the planning phase of projects.
- Wrote a core extend-able class for use in Flash Remoting (AMFPHP) to a Wise XML RPC server.
- Installed, configured and moved existing code into a Subversion repository which provided multiple access methods.
- Trained colleagues on the proper use of Subversion and patterns for efficient long term use.
- Integrated Subversion Repository with FogBugz for bug tracking and change management.
- Facilitated upgrade to new database servers and migration of data to a fault tolerant mirrored array.
- Planned, purchased and installed existing servers in a new rack with cable management; included renum- bering the company network and downtime planning to minimize impact on customers.
- Made changes to IIS, DNS and provisioned new sites for customers.
- Worked on a team as a programmer for the following sites: chathamhall.org, chapin.edu and progprint.com.
- Used CakePHP as a test bed for rapid prototyping of web applications in the planning phase.
- Maintained a cross platform network (FreeBSD, OSX, Windows) supporting 18 users.
UDI'S Foods - Denver, CO Apr. 2004 – Mar. 2006
- Developed a dynamic order tracking system according to the customer's specifications, which saved the customer between 2 and 3 hours daily of data entry. The system interfaces with QuickBooks and Label Matrix for complete workflow integration.
- Developed system using open source software resulting in no software licensing fees.
- Hand coded PHP on a Unix server running Apache and a MySQL backend for the majority of the project.
- Wrote Custom Perl scripts for data mining and recursive directory searching.
- Integrated AJAX to help with server load on large pages along with greater user interaction.
- Used Dreamweaver for layout and mockups of overall designs.
- Used the Pear API to include external functionality above what the host language provided.
- Wrote scripts to localize data and input data in to the database using SQL queries.
- Primary DBA for development, optimizations and support of the application.
Catholic Health Initiatives - Englewood, CO Dec. 2003 – Oct. 2004
- Provided point of contact for any data related issues or questions relating to or discovering an outage.
- Troubleshot and escalated Windows, network, printing, and telecom issues through the proper escalation queue for 26 separate hospitals while remaining HIPPA compliant.
- Supported numerous billing and inventory programs housed in an on-site data center.
- Envisioned and created a dynamic web application for tracking on-call analysts and their associated contact information. This application ran on an Apache PHP enabled web server utilizing MySQL as a back end.
- Used Citrix Meta frame Ver 4.0.3 to access and troubleshoot remote servers.
- Troubleshot Intel hardware to find and replace faulty components.
- Used SQL to data mine on a Microsoft SQL server for the creation of custom reports.
- Assisted in maintaining a 150-user Microsoft network serving numerous telecommuters. Network resources consisted of centralized administration of AD, Exchange, DNS, DHCP, IP Printing, Remote Access and VPN.
- Troubleshot and resolved user issues in a presentation environment with emphasis on time and daily backups of mission critical servers using Veritas Backup.
- Facilitated in the completion of a Windows NT 4.0 to Windows 2000 Server migration.
Hobbies and Interests
Built a Digital Fish Bowl out of an old iMac. Created a 350 pixel web connected LED Wall - wall.elnormo.net. Wrote a FTP client in Flash (Action Script) for large file transfers. Training for and running Triathlons. Sysadmin for two FreeBSD servers for personal web development and learning. Enjoy tinkering with home automation. Created an AJAX game called Clicky - www.serverelement.us/clicky. Prototyped a realtime stream application for the Arduino using Node.js and MongoDB.