Shawn Poulson's Resume / CV

Also available in PDF format.
Contact page

My developer blog at explodingcoder.com

Objective
To use my technical skills and software development experience to benefit a team of IT professionals.

Keywords

Software Development talent:
  • Windows platform: .NET, C/C++/C#, Windows forms, STL, DLL, MFC, COM, Win32, VBScript, WMI, Java 2, SQL Server 2008/2005
  • Web platform: HTML/CSS, Javascript, jQuery, ASP.NET/ASP, PHP, CakePHP, Drupal, Perl/CGI, mod_perl, Cross browser support
  • Mobile platform: Legacy Palm handheld apps
  • Concepts: XML/XSLT, Systems integration, Code design patterns, Scrum development methodology, SubVersion source control, Software quality testing, Unit testing, User interface design/ergonomics
System Administration experience: Windows 2008/2003/2000/NT/7/XP, MOM 2005, SAP R/3, PeopleSoft, IIS, Apache, Linux, SQL Server, Oracle, MySQL.

Requirements
Desire to work in Delaware or vicinity.
Travel: 25% or less.
Salary: Market value.

Relevant Projects
Jan 09 - Jun 09, Build survey taking website runpolls.com

  • Designed as a direct competitor to surveymonkey.com and polldaddy.com.
  • Highly dynamic client-side content using jQuery and javascript featuring drag/drop poll designer UI.
  • Integration with PayPal Express Checkout.
  • Application written in PHP using CakePHP web framework.
  • Provides an HTML snippet to plug the polling engine into any third party web site.
  • Internationalization support in application with explicit localization in
    Unicode and support for left-to-right/right-to-left text direction.

Apr 08 - present, Web site design and deployment for The Estates at Dove Run HOA

  • Designed to meet requirements of a public facing site that allows interaction between the HOA and its home owners.
  • Developed using Drupal as a content management system (CMS).
  • Designed custom theme using CSS and Photoshop.
  • Regularly maintained for security updates and additional functionality.

Jan 08 - Feb 08, Web-based automated items for sale project

  • Design and develop a web-based application that will be used to list items for sale on iOffer.com.
  • Item listings for sale can be submitted manually or at scheduled intervals.
  • Code design pattern conducive to implementing other buy/sell web site services.
  • Utilizes web-based crawling techniques to simulate a user logging into the iOffer.com web site and submits a listing in an automated fashion.
  • Code written in Perl/CGI with MySQL database.

Aug 04, MMCd Tools

  • Author of open source project http://mmcdtools.sf.net.
  • Windows application that binds with Palm HotSync to convert MMCd datalogs into human readable Excel sheets. Automatically converts datalogs on the Palm to XLS on the PC upon pressing the HotSync button.
  • Assists in analyzing datalogs created with MMCd.
  • Code written in C++, Win32, COM.

Mar 03, MMCd data logger customizations

  • Contributed to an existing open source project http://mmcdlogger.sf.net.
  • MMCd is used to view and log realtime readings from vehicle sensors for
    diagnostics and visually monitoring performance.
  • Added new GUI functionality to Palm handheld application used to datalog automotive diagnostic sensors.
  • Code written in C, compiled with GCC cross compiler.

Job Experience
Apr 2011 - Present, Entech Consulting
Berwyn, PA
Sr. Software Engineer

  • Project-based consulting for modern web, windows, back end, and database technologies.
  • Specialize in .NET and LAMP application stacks.

Nov 2004 - Apr 2011, ING Direct
Wilmington, DE
Software Developer IV (as of Jan 10)

  • .NET 2.0 development of new and remedial functionality for a customized loan origination system.
  • Provide recommendations for code quality and testing.
  • Work with line of business to build requirements and research solutions.
  • Windows forms client/server design.
  • Database schema design / T-SQL.
  • Workflow design using Empower framework.
  • Troubleshoot problems that cannot be resolved through tier 1 or 2 support.
  • Team-based agile sprint methodology.
  • Support legacy applications as needed. Most are C#/ASP.NET based
    webapps.

System Administrator III (as of May 07)

  • Administrator of over 500 Windows 2000/2003 servers, Microsoft Operations Manager 2005 (MOM), and Active Directory.
  • Participate in weekly change management process.
  • Follow strong adherence to ING Direct's SDLC policy, which mandates testing of all system or code changes in the QA environment.
  • Maintain Active Directory environments for production, QA, and development networks.
  • Custom scripting using VBScript and WMI to deploy specialized MOM monitoring rules and automated alert responses.
  • Develop, rollout and maintain a new login script scheme to automate role-based mapping of network drives and deployment of customization of specialized applications using Active Directory group membership and business rules written entirely in VBScript.
  • Secondary support of VMWare infrastructure, SMS 2003, Exchange 2003, and Dell server hardware.

Application Support Analyst III

  • System administrator of various internal banking applications. Develop and
    maintain support procedures for each application supported.
  • Project management / change management of supported applications and
    platforms.
  • Work with development team to design and rollout new third party or
    homegrown applications.
  • Technical writing of all support documentation, disaster recovery plans, and
    first level support procedures for datacenter and IT help desk teams.
  • Administrator of Peoplesoft 8.8, modules: HR, Financials.
  • Administrator of Microsoft Sharepoint 2003 document management
    system.
  • Maintain proactive monitoring processes, disaster recovery and business
    continuity systems.

Jun 1999 - Nov 2004, SAP America
Newtown Square, PA
Basis Support / Tools Developer / System Administrator

  • Trained in use and implementation of SAP R/3 version 4.0B to current on Windows NT/2000 and Linux with SQL Server, Oracle, and SAPDB.
  • Manage a large scale of over 2000 high end R/3 servers for Training/Demo/Consulting resources used globally.
  • Perform weekly distribution (`refresh') of very large database image to a large number of servers.
  • Specialized in custom application development and scripting/automation using languages and technologies such as: NT/Unix shell scripting, Perl, Visual Basic, Visual C/C++, COM.
  • Specialized in custom web site development using: HTML, Javascript, CGI, ASP, Perl, Visual Basic/COM, SAP Web Application Server, XML/XSLT. Tools written to automate many types of processes.
  • Database development experience on SQL Server, MySQL and other leading edge technologies.
  • Expert in developing automated solutions, such as: Database 'refresh' copy, FTP copy with email confirmation, Information and collaboration over web.
  • Work with a team of IT colleagues in Germany and Singapore for global 7x24 system support and task sharing. This involves regular global meetings in US or Germany.

Nov 1997 - Jun 1999, Avetel Professional Services
King of Prussia, PA
Senior Field Engineer

  • Specialist in networking, Unix, Windows, desktop and laptop PC hardware.
  • Lead developer in design and implementation of Avetel's web page and corporate graphics.
  • Roll out 200+ Windows NT, Outlook, and Siebel software to all field sales laptops at GE Capital TIP, San Francisco and Chicago offices. Roll out 300+ Windows NT and Outlook to all laptops and desktops.
  • Roll out mailserver running SCO Unixware for Lehigh Carbon Community College. Configured Sendmail settings. Used Perl scripting to automate creation of global address book settings and importing of existing mailboxes.
  • Installed QIP 3.1 IP Management software on Solaris 2.51 at Hershey Foods, Mack Trucks, and Independence Blue Cross.
  • Write technical documentation for all projects.
  • Trained on wide range of networking and communications hardware and technologies by 3Com, Cisco, and Bay Networks.

Nov 1996 - Nov 1997, Interstat, Inc.
Mt. Laurel, NJ
Technical Support for Internet Provider

  • Performed all levels of technical support for end-user clients and corporations, such as: ARI Fleet Management, Fox and Lazo Realtors.
  • Installed and supported dialup and browser software for Windows 3.1, Windows 95, and Macintosh platforms.
  • Assisted in web design projects. Built database of cars and images for www.arifleet.net. Built several small web sites.
  • Assisted in Unix administration of BSDI, and SGI IRIX servers. Managed user accounts, debugged mailserver errors, modified configuration of Sendmail, shutdown/startup of web server processes, editing DNS server configuration.
  • Written technical documentation of technical support tasks.

Jan 1996 - Nov 1996, Rutgers University Computer Services
Camden, NJ
Help Desk Support

  • Available at computer lab help desks for questions and assistance.
  • Support dialup software for Windows 3.1 and 95.
  • Support applications on lab PCs and Sun Sparc workstations.
  • Support all network printers for PC and Sun usage.

Education
Microsoft Certifications:
MCTS certified .NET Framework 2.0 Windows Client Development
MCTS certified SQL Server 2005 Administration

Job related training attended:
Project Management College - Project Risk Management
Java 2 Training
MCSE 2000 Training
SAP20/SAP50 - Intro to SAP R/3 4.0B, Intro to R/3 Basis Technology
BC310 - R/3 Basis on NT/Oracle platform
BC505 - Oracle 8 Database Administration within R/3
BC400 - ABAP Workbench
Peoplesoft 471 - Server Administration and Installation

1995-1997 Rutgers University Camden, NJ
Major in Computer Science

Technical Experience

  • Strong in application development, particularly using technologies listed in the keywords section at top.
  • Strong background in TCP/IP networking and architecture.
  • Administrating Microsoft Windows operating systems, Linux, Active Directory.

Community Involvement

Background
My background comes from self-taught hobbyist studies starting as far back as my early teens. I started with Atari Basic on an Atari 130XE, learned 6502 machine language and wrote code in assembler to produce small graphic effect demos in effort to learn more about the platform. I transferred my assembler knowledge to a 486, then learned C and C++. Though, it is not typical to learn assembler before a higher level language, I feel it gave me direct insight as to what the C/C++ compiler does and I can optimize my code accordingly.

I have been a big fan of what is known only as the "demoscene", where talented coders, graphic artists, and music composers work together to create audio/visual demos featuring the latest in coding techniques, graphic talent, and synchronized music. These creations often exceed the capabilities of the current market of video game technology. Often these works are put head to head at competitions held around the world. I've attended one in Montreal, called North American International Democompo in 1996, where I've entered a small piece for a collaborative demo entry. More can be read about the demoscene at pouet.net or at the demoscene FAQ.

I've since expanded my skill set into understanding the Windows API, common windows DLL libraries, COM objects, and networking functionality at the C/C++ level.

I am also very proficient with the Linux platform, including development using C/C++ and Perl. I've used Apache web server to create several web applications in ways a Windows IIS server could not.

At a past employer, SAP America, I've been given the freedom to complete projects however I felt best. I've used this flexibility to learn new technologies. For web projects, I've mastered ASP, CGI, VBScript, Perl, and even touched on mod_perl a bit. For automation, data reporting, and conversion tools, I've mastered using Perl to quickly and easily generate tools to do many tasks most would not imagine Perl would be capable of. Creating web and interactive tools led me to also master SQL Server and MySQL as database backends to create powerful relational data models.
More recently I've studied the .NET framework, including Windows Forms, ASP.NET and ADO.NET. This is clearly superior to ASP and I plan to continue using it for future web work. I am currently MCTS certified in .NET 2.0 Windows client development.

I'm always looking to learn new technologies. If there is an API or framework I don't know, I can come up to speed very quickly.

Past Works
Outlook address book customization tool. ING Direct wanted to be able to provide users with a default setting Outlook to use only the ING Direct employee directory and not its parent ING Group directory containing hundreds of thousands of people. Outlook does not provide a way to do this out of the box, so I developed a custom tool that runs on login that will make this preference change the first time you log in. This eliminates common errors of accidentally sending emails to unexpected recipients because of similar names of people in other ING companies.
I’ve written up details and provided the tool in a blog entry: http://explodingcoder.com/blog/content/programmatically-updating-outlooks-address-book-options-with-a-command-line-tool

Role-based Login Script
As ING Direct grew, its resources were growing towards a role-based permission design. To facilitate this development, a better design was needed for the dozens of one-off login scripts made for various job functions. I developed a VBScript-based login script that inspects Active Directory group membership and applies business rules in the code to determine what network drive mappings or other actions should happen as a result. With this design, all users have the same login script. Upon login, all requirements for job function is determined only by the groups the user is a member of. This project effectively eliminated maintenance of per-user login script settings and introduced flexibility of defining customized solutions based on job function.

http://www.explodingcoder.com
This is my personal web site that I designed to hold content about myself and host some small web-based applications. I used Photoshop and The GIMP to design the graphics. I also use a common CSS stylesheet for the entire site.

MMCd and Tools
As a performance car enthusiast, I've looked into utilizing the computer diagnostics of my car. I've collaborated with a talented coder in Russia, who created a powerful open source datalogging tool written in C, called MMCd, that runs on a Palm handheld and connects to a compatible car's computer diagnostic port. It can monitor and log any of the sensors available.

In addition, I've studied the Palm HotSync Conduit API and Excel COM Automation API to write a tool written in C++, called MMCd Tools. This tool syncs with the Palm, transfers a recorded datalog to the PC and converts to Excel or CSV format for easy viewing on the PC. In conjunction with MMCd, this tool is also released as open source and is available on SourceForge.

Information, screen shots and file download can be found at: http://www.explodingcoder.com/mmcd.html

Web-based scheduling tool "ServOp"
Can run a command on any number of target servers at a scheduled time by creating AT jobs in Windows Task Scheduler. Jobs can be staggered by n minutes and commands can be templated so that variables can be inserted for each target server, creating a useful method of issuing commands like: server reboot, file copies, Windows patching tools, and database refreshes. This was written using Perl/CGI with a SQL Server backend.

Web-based "News tool"
This is a popular tool in SAP for reporting news items in a forum-like interface. Each team in IT gets their news pages, where they can post news bulletins with status levels (red, yellow, green, etc.). The application has controls for per-page user authorizations based on Windows authentication. This was written in ASP with Perlscript and SQL Server backend.

FTP tool
At SAP it was necessary to FTP many very large files from their German servers to our US servers for use during the week's database refreshes. A need arose for an automated method of grabbing these files automatically over the weekend without user intervention. I wrote a tool in Perl to easily specify the ftp site as source and a target directory for the files. It will then get a directory listing and transfer all files like a regular FTP tool. In addition, it used multi-tasking to transfer up to n files at a time, thereby utilizing the multi-channel ATM network between sites. Compared to a standard FTP client script, this tool was able to transfer at least 4 times faster, allowing our team to handle the hundreds of gigabytes needed to transfer every weekend. It was also found that adjusting the TCP window size in Windows to 64k doubled the transfer speed.

PSSDB
This is a team-based effort to create a server and software inventory at SAP to account for both datacenter and internal billing use in the 'PSS' team. Using SQL Server, an elaborate relational data model was created to account for all servers and software installed on each. Each software instance could be billed to a cost center for a certain amount. A VB front-end was created for admin maintenance of data.

Monthly reports were automatically generated with Perl and emailed to costcenter owners and Finance. Costcenter owners could also visit a web front-end that summarized their monthly charges before the month-end bill.

In addition, monitoring capability was added to the database and with Perl-based monitoring tools to check up-status of certain types of installed software.

Administrative web-based reports were also created for monitoring status, incorrectly entered server or software data, or billing data. These reports were created using SQL Server's SQLXML extensions. You create SQL queries that generate XML data which is converted to HTML using a custom XSLT stylesheet.

TaskDB
The PSS team at SAP lacked an easy way to track projects owned by members of the team. After reviewing several other applications, none seemed to meet the needs. I came up with a web front-end to an easy to use task management tool that anyone can create their own tasks and maintain their information. The TaskDB quickly became accepted by the team. Weekly status meetings can simply review the list of open tasks in TaskDB. TaskDB was written in ASP with SQL Server backend.

Cell plan web site
At the time the telecommunications department was issuing hundreds of cell phones to approved employees around the country and each one had its own calling plan with AT&T or Voicestream. Certain people were generating extreme phone bills with legitimate overage minutes and required a higher minute calling plan than most. I designed a web front-end using ASP and SQL Server's SQLXML extensions to create XML/XSLT interfaces to allow managers once a year to review their employee's current cell phone plans and choose a new plan for each if necessary. This required data munging of existing spreadsheets from telecom to be imported to SQL Server. AT&T is able to deliver a recommendation for each calling plan, based on minutes and overage. This was also imported into the database as default calling plans. Once all managers have made their selections, I used Perl to generate a report of all changes and summary of all cell phones and their calling plans. The first year netted a savings of over $64k/year for 600 calling plans.

Remote inventory web site
The asset management team did not have a good third party application for tracking and polling users for equipment ownership. I wrote a web front-end in Perl/CGI with MySQL backend on Linux to guide users through a series of simple screens to gather their pertinent information about the company materials they have in their possession. When the inventory period ends, a report is generated with all inventory and employee ownership and delivered to the asset management team. In addition, this tool used SSL client/server certificates to automatically determine the remote user login when the client runs SAP's own Single Sign-on solution.

About Shawn Poulson / Exploding Coder
Software developer and designer

I'm a software developer in the Philadelphia/Baltimore metro area that loves web technology and creating compelling and useful applications. This blog was created to showcase some of my ideas and share my passion and experiences with others in the same field. Read more...

My portfolio...

Other places you can find me online: