Kevin's Home Page

Welcome to my
quaint "e-porch" on
the great, big internet!

(Nice to meet ya! -->)

Kevin's Home Page: Experience

Overview  •   Experience  •   Teaching  •   Consulting  •   Presentations  •   Certifications
Academics  •   Portfolio  •   Open Source  •   Contact Me


    I intend for this to be a more broad overview of my full-time work experience. Please refer to my resume for more in-depth information.

  • Rowan University, Glassboro, NJ
    Adjunct Professor of Computer Science
    I teach all levels of programming classes, generally to 20+ students using Java and C++. I generally focus on classes related to data structures.

  • Gloucester County College, Sewell, NJ
    Adjunct Professor of Computer Science
    I teach all levels of programming classes, generally to 20+ students using Visual Basic.Net, PHP/MySQL, C++ or C as the platform. Classes include introductory programming, web/database integration, object oriented programming and C. See my teaching section for more information.

  • Independent Web Developer/Webmaster
    I've worn a number of hats as a webmaster including a backend developer, systems administrator, database analyst and user interface designer. I administer my own dedicated server (with the Linux shell -- not a control panel) that sits in Atlanta, GA running Apache, mod_perl, MySQL and systems security monitoring. I've also developed under that environment and managed to tune Perl code down from 400ms (per call) CGI apps to a sub 18ms mod_perl speed demon through profiling the code and restructuring the database.

  • University of Pennsylvania, Philadelphia, PA
    Senior Systems Integrator, Penn Medicine Academic Computing (PMACS)
    I am part of the Windows system administration team tasked with supporting Windows users, computers, groups, applications and servers for the School of Medicine. Included in these duties is administering AD, the KACE helpdesk appliance and the CrashPlan service. My primary goal is to automate as much of the work as possible and, to that end, have created the PMACS Operations Portal (POP) for automated processing of requests. More information on POP can be found elsewhere on the site.

    Biomedical Informatics Facility, School of Medicine
    Senior Programmer/Analyst, Biomedical Informatics Facility, School of Medicine
    Generally speaking, I am responsible for all data integration activities between the group I'm in and all the groups we support. This entails running a SeeBeyond/e*Gate Windows-based server to receive realtime data (IDX, Cerner Millenium and EPIC) from the hospital. The data for which we have customer needs is captured into a local database I setup (MySQL) and then periodically sent to their databases (Oracle and MySQL) using scripts I wrote in Perl. The data is also available via web services I programmed in Perl, which use strong authentication and encryption (RSA public key and AES private key). System monitoring scripts watch the server and can take basic remedial action. I built several C# (.Net based) applications for smaller tasks in need of automation including interfacing to a barcode printer and a desktop app to suggest annotations for lab tests based on past results. I was the sole programmer on two web-based clinical data applications (Java/Oracle based) that are expected to result in published papers. I wrote several reports about how various technologies could improve or affect our current software development processes. I have also been acting a project manager / point of contact for customer applications -- sitting down with them to learn about their projects, setting expectations on the process and then delivering the solution on time.

    Programmer/Analyst, Biomedical Informatics Facility, School of Medicine
    I built several HIPAA compliant, web-based clincal data collection and processing applications using Java under a Tomcat/Struts environment. I then lead a project that involved taking lab data out of a proprietary database format, importing it into Oracle and building an interface so users could manipulate the data on the web. I coordinated the installation of a real-time HL7 fomatted datafeed from the hospital and the subsequent processing of the data. This involved the use of the SeeBeyond/e*Gate suite of applications and Perl. I also became involved in specifying hardware for a variety of projects including a large Linux file server, barcode printers/readers for an inventory sytem and a small network of machines for security research. I was promoted to the title of Senior Programmer/Analyst in August '06.

    Research Programmer, Department of Computer and Information Science, School of Engineering and Applied Sciences
    My tenure originally started as an undergraduate internship where I was hired to refactor a PKI (public key infrastructure) Web Application (in Perl) to include access to a data warehouse (Oracle). It also included testing the effectiveness of biometric devices. I was an important factor in obtaining a large research grant from Microsoft (for WSEmail). At the onset of the project, I had no experience in Microsoft .Net or with Web Services. I read Microsoft's literature and prototyped for 2 weeks and was then able to give a presentation to Microsoft Research about how I envisioned our solution (securing the funding). Later I was given the title of lead programmer and architect of the system. I stayed on part time until graduating from Drexel University, when I was offered a full-time position. Full time work also shifted me into a lab management role where I had significant input into purchasing decisions for infrastructure and platforms. I also provided research-oriented support for a large group of PhD students on diverse hardware/software. With the departure of my supervisor, I was again offered a job to follow him to his new University, which I declined due to relocation concerns.

    Papers from the WSEmail Project:

  • Franklin Institute Science Museum, Philadelphia, PA
    Computer Support Intern
    I was responsible for resolving technical problems for users of Macs, PCs and related hardware from all over the museum. Additionally, I took the initiative to create a hardware/software inventory application in Access to keep track of our assets and licenses. I also doubled as a systems administrator responsible for Linux servers doing everything from filesharing, firewalling and providing data feeds to the exhibits. One of my supervisors asked me to come join his team after he changed employers because we had worked so well together.