Ph: 631.470.9627

Walter Sargent

Web Engineering & Design
Wordpress, JQuery Events and Landing pages Wordpress, PHP, MySQL development Convert print brochures to websites custom HTML email Facebook pages and apps Wordpress, JQuery, web design B2C and Email Marketing Control panels and data radiators Custom photo galleries

Programming and Software Development

I build Wordpress sites, Facebook apps and write light-weight CMS and related web apps. I migrate databases, integrate rich media content and open source applications and I manage R&D projects. I like researching vendors and technologies and working with people to find the best IT solutions.

I have been writing software professionally since 1996. I have experience with the following technologies: (open source) PHP, Javascript, JQuery, Perl/CGI, C, C++, SOAP, JSON, XML, CSV, Linux and MySQL, and (Microsoft) Win32 SDK, VB, ASP, COM, MS-SQL, IDL, MSMQ.

I get asked a lot what tool I use to create websites. Except for great libraries (like JQuery) that run on the server, I have been writing my own tools since Day Two. When I first got into HTML authoring, I tried Dreamweaver and quickly learned that the GUI wouldn’t let me do what I knew was possible and I wound up coding in their "code viewer". So I abandoned Dreamweaver and did a lots hand-coding of HTML. I learned how to make fast pages that are compatible across browsers, easy to modify and keep the browser out of "quirks mode."

Then I wrote Perl and PHP scripts and templates to automate the process. I wrote Perl scripts that write Perl/PHP scripts and data-driven script generators - PHP apps that turn XML files into DHTML (Javascript + HTML).

I don’t know if this qualifies as AOP (aspect-oriented programming). I am just looking for the productivity gain. I like writing reusable, productivity-enhancers, because I see a gap in real-world operations and one-size-fits-all solutions. See my projects page for more on this.

Past Projects

Online multimedia investor presentation
screen shot Create online multimedia investor presentation. Powerpoint has limitations that make it less desirable for fast, rich online presentations. We wanted to integrate various media types, Flash, voice-overs and background music and by mixing Flash, frames and DHTML, I created a presentation that was modular, easy to modify and upgrade incrementally.
Productivity Application
Web-based in-house sales ticket tracker that integrated three business units, increased transparency and enforced policies that cut costs and increased revenue. The solution was a Perl/CGI + DBM web application because the customer has a very heterogeneous server environment. This Perl program cost far less than customizing the accounting system.
DIBOL Database Migration
Imagine putting your business into a World War I biplane every morning and flying it over the Grand Canyon. Well, that it what this business was doing with their mission-critical, proprietary database application. The hardware had been old enough to vote since the early 90’s. The companies that had built the various components had long since been bought and dismantled, and the software was hard-coded to it. Libraries and drivers had been deprecated decades ago. And of course, the entire ball of mud was thoroughly undocumented and unintentionally booby-trapped. Staff operations were not only undocumented, but laden with superstitions and magic keystroke combos that were handed down from the early times. No one single person fully understood what the app did, how it worked or whether it was working correctly. But because the application performed a mission critical, core business function, upgrading that software and hardware was like changing the piston rings while the motor was running. And yet me and my colleague did it. Today, that same app runs on a state-of-the-art firebreathing monster. The business unit has never gone down and a plan is in place to migrate the app going forward.
Scientific Instrumentation
screen shot This desktop application performs a significant amount of data conditioning, file I/O, and printing – all of which went in a headless multi-threaded DLL. The data reporting model allows the client to make asynchronous queries and redirect the results individually. The raw data cache provides a data abstraction layer so the data conditioning code does not know whether the data came from the port or a file. The post-conditioning data cache allows the GUI to query without re-processing (which would be perceptible to the User). Finally, the GUI exe has a representational data cache because the User chooses a particular view of the data. This made the GUI client a little fatter, but it is GUI logic. The container class allows the client application to easily describe new representations, not just the ones in the specification.
Keystroke Redirection Service
screenshot "KeyJack" is a keyboard utility that redirects function keys to the console. It was developed for a terminal emulation project that needed to send keyboard commands over a telnet session.
Realtime Report Server
I was the technical lead on this ISAPI webserver DLL and browser client. It was a multi-threaded, multi-tenant polling app that delivered multiple screens or views of information about a virtual call center. The technology was Windows API / C++, XML, COM and DHTML.
Internet Guard Dog
I was the technical lead on front end of this Windows fat client. McAfee had acquired it from Cybermedia around 1998. It had 90+ DLLs, an unlicensed encryption library (that needed to be replaced), and some wild coding. I remember one comment around a particularly nasty bit of code that said simply: "this code is cursed. Don’t even think about changing it." In another spot, it had a sleep() instruction with the comment, "Make the User think we’re doing something." The developers at Cybermedia had a great sense of humor. Thanks for the laughs, guys!
McAfee Utilities
I wrote several applications for McAfee, Network Associates and Helix Software for the Windows desktop in the ninties. It was very interesting work with a great bunch of guys.