Shawn Poulson
Email: jobs@explodingcoder.com
http://www.explodingcoder.com
Objective
To use my technical skills and software development experience to benefit a team of IT professionals.
Keywords
Requirements
Desire to work in Delaware or vicinity.
Travel: 25% or less.
Salary: Market value.
Relevant Projects
Jan 08, Web-based monitoring application
Apr 08, Web site design and deployment for The Estates at Dove Run HOA
Jan 08, Web-based automated items for sale project
Oct 07, Data access layer software development project
Aug 04, MMCd Tools
Mar 03, MMCd data logger customizations
Experience
Nov 04 - Present, ING Direct
Wilmington, DE
System Administrator III (as of May 07)
Jun 99 - Nov 04, SAP America
Newtown Square, PA
Basis Support / Tools Developer / System Administrator
Nov 97 - Jun 99, Avetel Professional Services
King of Prussia, PA
Senior Field Engineer
Nov 96 - Nov 97, Interstat, Inc.
Mt. Laurel, NJ
Technical Support for Internet Provider
Jan 96 - Nov 96, Rutgers University Computer Services
Camden, NJ
Help Desk Support
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
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
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.
Dr. Library
A custom file copy tool written in C# .NET Windows client to automate the copy of files in a SharePoint 2003 document library to another document library, preserving all file dates and version history. There are no Microsoft tools to do this, so I needed to write my own to complete migrations of documents between SharePoint sites.
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.