Justin Walgran
Senior Software Developer | Team Lead | Project Manager
517 Shikelimo Ln
Lewisburg, PA 17837
mobile: 570-768-5717
resume: pdf or doc or txt
Project Portfolio
Summary
I proposed, designed, and managed the development of a commercial platform for integrating document management with ERP and developing document-based workflow.
Untapped Potential
In 2003 CSSI recognized the potential of developing an integration between two of the software products it sells and supports, the Microsoft Dynamics GP ERP package and the EMC ApplicationXtender document management system. Realizing that paper-intensive business processes such as payables invoice processing would benefit greatly if all the paper could be scanned, filed, and linked directly to the ERP system was an "aha" moment. Eliminating the need to mail documents around an organization or dig into filing cabinets would be attractive to nearly all businesses, regardless of size. The project that was launched to develop this integration produced a working product, but it was brittle, tightly coupled to the software it was integrating, and the application was not built to support extensions and customizations. The "virtual filing cabinet" concept, while powerful, only partially addressed the needs of our customer looking to automate cumbersome, manual business processes.
Version 2.0
I recognized that we had the beginnings of a truly powerful application so I wrote a letter to the management of CSSI explaining the shortcomings of the existing product and why we should immediately start developing a new version to replace it. They agreed and I followed up with a functional specification and a development schedule for a new version of CoreIntegrator that included all of the original functionality, eliminated the weaknesses and provided a new workflow platform for future professional services work.

I replaced the tight coupling between Dynamics GP and ApplicationXtender with configurable interfaces allowing any client application to be connected with any document management system. My team and I developed desktop and web applications to act as workflow clients allowing documents to be electronically routed, marked up, approved, and processed. I created a rule-based workflow engine with an expression language and an associated parser to allow customers the freedom to define and adjust their own business rules. I also implemented a dynamic plug-in loading system to allow the CSSI professional services team to create novel data entry and approval interfaces to meet the needs of our customers without requiring modifications to the core application. To round out the suite I developed utilities for importing and exporting document content as well as email notification and user licensing services.

Breakout Success
Since the introduction of CoreIntegrator 2.0, CSSI's historically regional customer base has exploded to include companies from coast-to-coast in the US and Canada. The solution has found a home in a wide range of industries. This sample from the CoreIntegrator customer list emphasizes the broad appeal of the application:
  • Arch Insurance Group (Insurance)
  • Arkansas Boll Weevil Eradication Program (Agriculture)
  • Bonaventure Senior Living (Healthcare)
  • Can Do (Fitness)
  • CCS (Energy)
  • City of Baltimore (Government)
  • EJ Davis (Construction)
  • Frederick News Post (Publishing)
  • Infocomm (Audio/Visual)
  • Kurtz Bros. (Environmental Services)
  • LaBranche (Investments)
  • Lubert Adler (Real Estate)
  • MPL Music Publishing (Entertainment)
  • Missouri State Teachers Association (Education)
  • Mystic Lake Casino (Gaming)
  • North Pacific Management Group (Property Management)
  • Professional Building Systems (Housing)
  • Premier Medical Associates (Healthcare)
  • Placer Title (Property Services)
  • Quincy News (Broadcasting)
  • Speedco (Transportaion)
  • Team Beans (Promotions)
As the product has grown the development team has expanded from just myself as lead developer to include four additional team members working under my direction. Even as the U.S. economy softened CoreIntegrator continued to grow and generate new opportunities for CSSI.
Industry: Software
Technology: .NET Framework 3.5, ASP.NET, C#, VB.NET, NAnt, Subversion, SQL Server, Microsoft Dynamics GP, VBA, EMC ApplicationXtender, ReadSoft Documents for Invoices, Kofax Capture, Crystal Reports
Summary
I designed, developed, and deployed a timekeeping system for 2,000 factory employees integrated with embedded terminal time clocks and an existing payroll management system.
Nothing But Time
Wood Mode, Inc., a major manufacturer of custom kitchen cabinets, was using a slow, error-prone paper timecard system to manage payroll for 2,000 factory and office employees. Where paychecks are concerned lateness and inaccuracy are not viable options. Wood Mode recognized that they needed an overhaul of their process. Payroll accounting was being performed by personnel with varying levels of experience, so the system had to be extremely user-friendly. Also, employees were not universally compliant with prescribed clock-in times and 6-minute clock-in intervals, so the new application needed continued support for the manual editing of timecards by the payroll group.
Clocking In
I kicked off the process of developing a new timekeeping system by gathering the payroll team to discuss what they did each week to convert punch cards into paychecks. Based on those sessions I created an alpha version of the Punch Manager application and reconvened the team to get more focused feedback on what was working and what needed to be improved. A key component of the application was the inclusion of a rule-based engine that allowed the payroll staff to set up adjustments and corrections at the company, department or individual level to automatically fix the bulk of common employee clock in problems.

After a few iterations of the desktop application, and the development of a small embedded C program to run on the network terminals that would be replacing the old time clocks, the new system was launched in a limited beta test with the office staff. After that successful beta, I helped to deploy the new terminals across the 1,300,000 square foot plant, wrote and deployed a utility to keep the time synchronized across all the terminals, and brought the system online for the entire company.

The Pay Off
By implementing my application Wood Mode has saved a significant amount of time both by decreasing the effort required to process weekly payroll and virtually eliminating non-allowable overtime from slipping through the cracks. The ease-of-use of the Punch Manager application combined with the fact that complicated timekeeping rules and exceptions were now applied automatically allows less experienced payroll processors to work efficiently without a long ramp-up time.
Industry: Manufacturing
Technology: SQL Server, Intermec Trakker Terminals, C, VisualBasic 6.0
Summary
I designed a plan to migrate content from an aging, custom document archive to a modern document management system and maintained functionality by developing new custom software tools.
The Missing Manual
The American College of Radiology (ACR) needed to migrate a large library of scanned medical reports from an aging, homegrown archive into a modern, general purpose and supported document management system. All custom software, by design, grows to fit the unique contours of the company's data. ACR's archive was no exception and had direct two-way communication with a separate clinical database. The archive also suffered from the all-too-common problem of sparse documentation; knowledge of application design and behavior was spread out thinly across end-users and the internal IT group.
New and Improved
I began the discovery process by coordinating review sessions with end users of the legacy system and IT staff responsible for its upkeep to watch the application in action and to document how people interacted with it, what was important to them, and how information was passed between the archive and the connected medical database. Using the notes from the review session I wrote functional specifications for two applications, a migration tool for moving annotations from the old archive to the new, and a helper application to maintain the existing two-way data exchange between the new document archive and the clinical database. In light of the customer's tight timetable for completing the migration I recruited an additional member of my team to work with me in parallel to develop the migration tool while I completed the helper application.
One Hundred Percent
ACR's records are safer and more readily available now that they are managed by a modern document management system. Despite discrepancies between the old and new archive applications all of the document meta data and annotations were successfully migrated and all the custom features of the old archive were recreated resulting in a 100% successful migration.
Industry: Medical
Technology: EMC ApplicationXtender, SQL Server, VisualBasic 6.0
Summary
I developed T-SQL triggers incorporating statistical analysis of data collected from the shop floor to report on production trends and send immediate alerts when out of tolerance conditions are detected.
A River of Data
Hoeganaes Corporation is the world leader in the production of metal powders, a key raw ingredient for fabricating machine parts, filters and bearings. The assembly line is dotted with sensors collecting data about all aspects of production and storing that data into a SQL Server database. Buried in all this data are trends that can be analyzed to improve production as well as alerts to measurements slipping out of tolerance, sometimes dangerously so. Hoeganaes needed help to filter, aggregate, and report on their data to find the diamonds in the rough.
Analysis, Tripwires and Emails
To get a feel for the problem before plunging into writing up a solution, I reached out to the head of IT at Hoeganaes to dig into the structure of the existing database and explore the specifics of how their data was collected. With the notes from those one-on-one sessions in hand I was able to write a series of database triggers on the tables into which the raw sensor data was being collected. These triggers analyzed the datapoint singly and as an aggregate and then sent out email alerts when production conditions drifted out of tolerance. The triggers were supported by a combination of views to link tables and clarify cryptic column names, and stored procedures to translate data values.
A Trusted Babysitter
Now that key points on the production line are being monitored with a trusted and reliable notification system, Hoeganaes IT no longer has to break up their day by checking in on the systems manually and can focus on solving other issues. By tying the email alerts into mobile device notifications, "on call" maintenance operators can now be alerted to early warning signs of a serious problem even if those warning conditions occur after hours, allowing them to make small, timely fixes rather than cleaning up after a major disaster.
Industry: Manufacturing
Technology: SQL Server, T-SQL
Summary
I automated the build process for CSSI's first commercial application by implementing a build tool and a continuous integration server and trained the development team in their usage and upkeep.
Growing Pains
CoreIntegrator, CSSI's first commercial application, started small and grew quickly. When I was a single developer supporting a handful of installations creating and distributing a new release was easy to do from my workstation. As my team and our customer base grew, I quickly recognized that my manual builds were becoming a bottleneck on the release process.
If It's Worth Doing It's Worth Automating
My two step solution to the problem was to codify the steps required to build and package our application using NAnt, and to automate the new, NAnt-powered builds using the CrusieControl.NET continuous integration server. Although I spend my days working with the Microsoft .NET platform, a key element in my growth as both a developer and a team leader has been my personal interest in the expanding Ruby and Python communities and my fascination with disparate software management processes and methodologies. This "off the clock" study lead me to Ant and CruiseContol and then to seek out and implement their .NET equivalents to solve my problem.
Software Cooked While You Wait
As a result of my research into and implementation of an automated build system new builds of CoreIntegrator are made available for testers minutes after the source code changes have been checked in to the repository. If a developer forgets to check a new source field into the repository or makes a breaking change to the application, the automated build fails and the problem can be fixed immediately. Code quality has improved, delivery time for releases has decreased, and customer satisfaction is at an all time high.
Industry: Software
Technology: CruiseControl.NET, NAnt, VisualStudio
Summary
I designed and developed a sales invoice management system to interleave the printing of invoice data on preprinted forms with the printing of signed and scanned delivery receipts pulled from a document management system.
Industry: Environmental Products
Technology: Microsoft Dynamics GP, VBA, VisualBasic 6.0, SQL Server, EMC ApplicationXtender, Crystal Reports
Summary
I designed and developed an application to eliminate manual data entry on B2B purchase orders by importing line items from a Microsoft Excel workbook.
Industry: Manufacturing
Microsoft Dynamics GP, SQL Server, .NET Framework 2.0, VB.NET
Summary
I designed and developed an application to extract inventory pricing information from Microsoft Dynamics GP into a Microsoft Excel workbook and re-import revised data from the workbook while tracking price changes for reporting.
Industry: Manufacturing
Technology: Microsoft Dynamics GP, SQL Server, .NET Framework 2.0, VB.NET
Summary
I designed, developed, and deployed a suite of software applications to track the delivery of custom kitchen cabinets, collect confirmation signatures using mobile hand-held scanners, print signed receipts on a mobile printer at the delivery site and integrate the confirmed delivery data with a mainframe order processing system.
Industry: Manufacturing
Technology: SQL Server, Intermec 700 Series Handheld Computers, Windows Mobile, Microsoft Embedded VB 3.0, VisualBasic 6.0
Summary
I designed, developed, and deployed a Windows Service, a monitoring utility, and a desktop management application to automate and track the process of distributing customer order confirmations by any combination of fax, email or postal delivery.
Industry: Fashion
Technology: SQL Server, .NET Framework 2.0, VB.NET
Summary
I designed, developed, and deployed a Windows Service to process orders collected from a hosted web application and import the orders into a document management system.
Industry: Fashion
Technology: SQL Server, .NET Framework 2.0, VB.NET
Summary
I designed, developed, and deployed an application which uses complex geometry and time formulas to calculate the cost to produce perforated metal components and provides price calculation and quoting tools for sales representatives to maximize profit on the sale of those components.
Industry: Manufacturing
Technology: SQL Server, VisualBasic 6.0
Summary
I designed, developed, and deployed an application which allows mobile sales representatives to select options from a large catalog of construction components to create estimates for complete modular home projects which can be synced with the main estimate database and imported as sales orders into an existing ERP system.
Industry: Manufacturing
SQL Server, .NET Framework 1.1, VB.NET, Microsoft Dynamics, GP
Summary
I developed a software tool for managing the scheduling and queued execution of applications and maintenance tasks.
Industry: Software
.NET Framework 2.0, VB.NET
Summary
I developed two software tools that work with the FogBugz task management application, one to create template projects with standard tasks and milestones and another to integrate task status with the Basecamp hosted project management application.
Industry: Software
.NET Framework 2.0, VB.NET, Fog Creek Software FogBugz, 37Signals Basecamp