The Permanent Consultant
The staffing industry of the late 1990s placed developers at client sites on temporary contracts — show up, deliver the work, move on. The arrangement was transactional by design. Fred Lackey was placed differently: as the first permanent consultant on Aerotek’s payroll, a structure that did not fit the normal model and was created specifically to accommodate what he had become to the organization.
A permanent consultant sat at the intersection of employee and contractor. Stable enough to vet incoming talent and set the standard for new client engagements; flexible enough to go wherever the work required. For three years, that meant moving across four named clients, three agencies, and a range of domains that would have been impossible to predict from any single job description.
Three years in this structure produced a portfolio that most developers never accumulate in a decade of single-employer work: real-time auction systems, early VoIP for two national cellular carriers, high-volume banking applications, and a client roster that ranged from Sprint to Walt Disney World.
Four Projects, No Playbooks
Every system built during this era was being built for the first time by somebody. The web was not yet old enough to have established patterns for real-time auction bidding, or for voice traffic over IP, or for financial transactions at scale. The playbook did not exist. The work was to write it.
Live Auction System
A real-time competitive bidding platform for enterprise clients, built at a time when “real-time web” meant solving problems that no framework had yet solved. The system required high-concurrency transaction management: multiple bidders, synchronized state, immediate reflection of winning bids across all connected participants.
Synchronizing competitive state across concurrent users in 1997 required building the concurrency management from scratch. SQL Server triggers and stored procedures handled the atomic bid state transitions. The web layer pulled and displayed current state on each page load, approximating real-time through tight polling loops before the web had any better mechanism.
VoIP for Nextel & Sprint PCS
Voice-over-IP in 1996–1999 was not a product category. It was research. Routing voice traffic over IP networks for mobile carriers meant working at the boundary between two worlds — circuit-switched telephony and packet-switched data — that had not yet agreed on how to meet.
Work for both Nextel and Sprint PCS on early VoIP systems contributed to the protocols and implementation approaches that would eventually standardize mobile voice-over-IP. This was not feature development against a defined API. It was protocol-level engineering at a moment when the protocols themselves were still being negotiated.
High-Volume Banking Applications
Multiple financial applications for banking clients, each carrying the full weight of financial industry requirements: transaction integrity, regulatory compliance, security under load, and behavior that must be correct not most of the time but every time. Web-based banking in the late 1990s was genuinely novel — the assumptions of branch banking did not map to the web, and the patterns for web-based financial systems were not yet settled.
High-volume transaction processing at this era meant building the reliability infrastructure by hand: connection pooling, optimistic locking, error recovery, audit trails — everything that later frameworks would provide, written from first principles against SQL Server and ASP.
Web-Based Call Tracking System
A browser-accessible system for logging, routing, and reporting on incoming calls — built for telecommunications clients who needed the operational visibility of a call center management tool without the proprietary hardware that traditionally delivered it. Integrating web interfaces with telephony infrastructure in 1997 meant bridging two systems that had been designed in complete isolation from each other.
The call tracking system used C++ for the telephony integration layer and Visual Basic with ASP for the web-accessible reporting and management interface, connecting the two through SQL Server as the shared state store.
Where the Work Was Done
The staffing structure meant the agency held the employment relationship, but the work happened at client sites, inside client organizations, against client problems. Four named clients in three years, each in a different industry, each with a different set of technical requirements and organizational realities.
Two telecommunications carriers, one of the world’s most recognizable entertainment properties, and a software firm — the range reflects what it means to be a senior permanent consultant rather than a specialist placed against a single technology stack. The expectation was not expertise in one domain. It was the ability to become productive in any domain quickly enough to matter.
The work at Nextel and Sprint PCS on VoIP was the most technically significant of the four. Mobile voice-over-IP at this scale and at this moment in the technology’s evolution was genuinely frontier work. Walt Disney World and Star Systems represent the more conventional senior development engagements — demanding in their own right, but operating against problems the industry already had vocabulary for.
What 1996–1999 Actually Meant
This era coincided with the browser wars, the dot-com boom, the mainstreaming of the commercial internet, and the first serious collision between circuit-switched telephony and packet-switched data networks. Every project that touched the web or the nascent internet was, to some degree, improvised.
The live auction system predated any standard for real-time web interaction. AJAX did not exist. WebSockets did not exist. The correct answer was to build the concurrency management at the database layer and accept that the web layer was stateless, polling-based, and slow by later standards — but fast enough for what users of 1997 expected.
The VoIP work predates SIP as a settled standard. The Session Initiation Protocol was not finalized until 1999. Work on voice-over-IP for Nextel and Sprint PCS in 1996 and 1997 meant working in a space where the standards were still being written by the people doing the work. The implementation choices made at that level influenced what the standards eventually became.
The banking applications predated the regulatory frameworks, security tooling, and infrastructure patterns that now make web-based financial systems tractable. In 1998, building a high-volume banking application meant making all of those decisions from first principles and living with them under real load.
This is the context in which “the years everything was new” is not a rhetorical flourish. It is a technical description of the work.
Stack & Craft
- Visual Basic 6
- C++
- Java
- Classic ASP
- SQL Server 7.0
- SQL Server 2000
- Stored Procedures
- Triggers & Locking
- VoIP / Early SIP
- TCP/IP Protocols
- Telephony Integration
- LAN / WAN
- Classic ASP
- HTML / JavaScript
- Polling Architecture
- State Management