John F. Anderson
John@Panelmagic.com
Summary
Thirty eight years of software engineering experience with many years involving the management of programming teams. Development background includes Linux, Windows, PC platforms, IOT, and embedded systems, with significant experience in interfacing to integrated chip designs.
Specialties include C/C++ language, IOT, network and telecommunications interfacing, MPEG technology, PC platform hardware architecture, embedded systems and associated OS kernel configuration, and MS Windows application, multimedia and driver development.
In summary...
· C/C++ (35 years)
· FreeRTOS, ESP32
· Linux development for PPC and TI Davinci/ARM9. Kernel and U-Boot configuration and drivers
· MS Windows, COM, Directshow, and windows drivers
· MQX, ARM7
· TI Davinci, Philips, Sigma, WIS, OKI video codecs
· MPEG-2, MPEG-4, H.264, JPEG
· TCP/IP, UDP, RTP, RTSP, Multicasting, IGMP, HTTP
· SNMP Agent and MIB implementation
Employment History
1/2018 – 6/2019 Leeo Inc, Palo Alto, CA.
Title: Lead Embedded Engineer
IOT development for home sensor device.
Embedded software design for Leeo's ESP32 based home sensor device. Development is in C/C++ using Espressif's IOT Development Framework.
1/2002 – 12/2017 Core Tec Communications LLC, Altamonte Springs, FL.
Title: Senior Systems Engineer
Software development for embedded networked video compression products, and associated Windows applications.
Embedded software design for Core Tec’s VCX2400, VCX4400, VCX6400, and VCX7400 series of MPEG-2/MPEG-4/H.264 network appliance encoders and decoders. Development is in C/C++ for a variety of platforms including Atmel ARM7TDMI, PowerPC embedded processors, and the TI DaVinci SOC.
Development highlights include MQX RTOS port, Linux kernel and u-boot configuration, Linux device drivers, SNMP agent extensions and MIB development, video distribution using multicast technology, and some Xlinx/Lattice FPGA design.
The development of these products involved the
creation of board support packages for the MQX RTOS or Linux and software
interfacing for various integrated circuits including MPEG decoders, MPEG
encoders, Ethernet, serial, composite video decoders and encoders, and various
flash chips.
7/2001 – 12/2001 Vingage Corp, Maitland, FL.
Title: Senior Software Engineer
Software development for Vingage’s Digital Media Management system. Development efforts utilized C++, DirectShow, and Microsoft COM technology to perform automated conversions of video files between various compression and file formats for web distribution. In addition, I developed several DirectShow filters as output renders (MPEG-1 and MPEG-2) to facilitate format conversion.
8/1995 to Present - Algorithm Engineering, Altamonte Springs, FL.
Title: Software Consultant / Owner
Independent contractor for the following customers:
Sony Playstation, Inc 2021
Provided consulting on prototype software for using the CX3 USB 3.0 Camera Controller.
Visible Light Digital, Inc 1/1999 - 1/2000
Ported Visible Light's MPEG OnStage Macromedia Xtra plugin to DirectShow and used DVD Navigator to provide DVD support for OnStage DVD product (www.OnStageDvd.com). More recently I created an OnStage DLL library to unify DVD and other multmedia support (MPEG, AVI, etc...) for OnStage products.
Recent development also includes ActiveX controls for HTML, VJ++, VC++, and VBasic development environments, and an ActiveX control specifically for PowerPoint support. All library and Active controls are developed with VC++. Sample applications development included Visual Base and Java.
FireTalk Communication Inc. 2/2000 - 10/2000
Telecommunications software development for integrating the Firetalk voice over the web application with the physical telephone network. I developed the Firetalk Phone server on an MS NT platform, using VC++ for program code and Natural Microsystems ISDN hardware. The server could accept or place calls and route normal telephone traffic to the Internet for conferencing with Firetalk users. An IVR (Interactive Voice Response) system was developed to handle login, voice messsaging, and connections. Access databases and Microsoft's database API were used to programatically control user authentication, directory services, and dialing restrictions. In a subsequent project I developed the Firephone Conference server.
Whereas the Firetalk Phone server allowed PSTN (Public Switched Telephone Network) calls to be integrated into Firetalk conferences, the conference server allowed PSTN conferencing to be controlled by the Firetalk application. This allowed you to create and participate in PSTN conferences from any location where access to the Internet was available.
ECC International, Inc - 7/1998 - 1/2000
Consulting on the development of an Engagement Skills Trainer that provides small arms training. This is a system that presents 3D graphics and video on a projection screen and uses actual weapons modified to project a laser on the screen for aiming. The software is developed with Visual C++ and MFC. My responsibilities included development of all code related to the video based scenarios. This includes run-time and scenario editing and creation tools. In addition to general MFC programming I utilized the Direct X and DirectShow API's for controlling the video and rendering graphic overlays. The scenario editing tool allow a scenario developer to specify video segments and links, assign branching based on various events such as shooting a target or instructor input, and creates the run-time database. A hit plate editor tool was developed to allow the developer to draw graphical hit plates over the video using geometric objects rather than pixels. The hit plate editor provides a means to specify key frames and automatically interpolate intermediate frames to reduce the level of effort in hit plate creation.
In addition I developed a VxD driver and C++ class for the laser-tracking device. I also assisted in other areas by providing a general architecture and base code for the real-time portion of the application, and a socket based networking class for communicating with the Instructor/Operation Station.
Electrical Design and Development, Inc - 1998 – 12/1999
· -Developed a Windows NT device driver for PCI based data acquisition board.
· Ported application for a data acquisition board that calculates turbine blade vibration from 16 bit to 32 bit Visual C++. MFC based application was adapted to data acquisition hardware for which I previously wrote and VxD driver. I also converted embedded DSP c code to Visual C++. The conversion encapsulated the DSP code into a C++ class, such that each instance of the DSP class replaced a DSP based plug-in board.
Pipe Dream, Inc - 1998
Developed various DirectShow filters that incorporated their proprietary video compression technology.
Vela Research, Inc - 10/1997 - 1998
Developed a DirectShow (ActiveMovie) filter for the CineView MPEG-2 decoder PCI board.
Digital Equipment Corp., Hudson, MA - 12/95 - 1998
Developed a full suite of Windows 95 and Windows NT "Video For Windows" and multimedia drivers for a multimedia chip developed by DEC. These drivers consisted of the following:
· Audio Compression Manager (ACM) for converting between MPEG and PCM audio. Provided software codec for MPEG audio.
· MPEG AVI Transcode Application for converting AVI files into fully compressed MPEG streams.
· MCI driver for playback of MPEG audio, video, and system stream files.
Smart Access, Inc (www.smartaccessinc.com) - 11/1996 - 8/1997
Upgrade software for security and access control system. This system is predominately programmed in Visual Basic and involves a network of user workstations and a hub for controlling the door access units. My task was to port the system from 16 bit to 32 bit basic, enhance database access functions, report printing, user interface features, and software support for hardware modifications.
Electrical Design and Development, Inc - 7/1997
Developed Win95 VxD device driver and test application for a data acquisition board that detects turbine blade position and DMAs timing information to the host program.
FutureTel, Inc (www.futuretel.com) 8/1995 - 3/1996
As a consultant I developed software for the following:
· Transmitting MPEG data over an RS-422 interface.
· Converting audio "Win 3.1 WAVE" files to MPEG audio files and vice-versa.
10/1993 – 8/1995 FutureTel, Inc., Sunnyvale, CA.
Title: Director of Software Engineering
( Previously Intelligent Instruments Corp. See next history )
After FutureTel, Inc acquired Intelligent Instruments assets and employees in October 1993, I continued to manage the Florida office and maintained a staff of six software engineers including myself. The File Server development effort in California had been canceled in favor of a ISA bus real-time MPEG encoder. The Florida Group was retasked to replace the Server hardware and proprietary terminal with a PC network and MS Windows based terminals. This proof of concept design was demonstrated in May 1994.
Software development was shifted to reuse of file server components for delivery of MPEG video over T1 communications lines, and driver and applications support for the MPEG encoder. The Florida Group produced the following products in which I performed in both the capacities of software designer and manager.
· MPEGthere and MPEGanyware products. These products distribute live MPEG encoded videos over ethernet and T1 networks. The initial system was deployed by KRON TV for distribution of BayTV programming to cable headends in the San Francisco area. MPEGanyware allows one or more encoders to multicast video over ethernet, with an unlimited number of redirectors which can retransmit over T1 lines. MPEGthere is a smaller scale single unit which encodes and transmit MPEG over T1/ISDN lines. These products incorporate a unique technique, developed by the Florida Group, which performs rate matching for synchronous transmission by decomposing the MPEG system stream and padding per ISO 11172 specifications.
encoder. The PrimeView
driver operated at interrupt level, ensuring reliable encoding in the Windows
environment. The installable driver provided both a C API and an MCI interface.
Included with the driver was a VCR like application and installation program.
files at the GOP (Group Of
Pictures) boundary. This application allowed the user to create an EDL ( Edit Decision List ) of mark in/out points using an MPEG
decoder for visual editing.
VCR
and MPEG decoder and encoder operation to allow frame accurate production of
MPEG content from video tape. This application allowed the user to create an
EDL ( Edit Decision List ) of mark in/out points using
a VCR for selection of source material. A unique feature of MPEGworks
was the ability to view the decoded MPEG material while encoding. Since most
decoders provide only an MCI programming interface, we developed a Virtual File
System based on our file server technology which allowed non-file based data to
appear as part of the MS-DOS file system. MPEGworks 2
was a recent rewrite which allowed the spin-off of a product called MPEGworks Engine and provided a
enhanced user interface completely rewritten using C++ and Microsoft Foundation
Class.
control of the decoder, encoder, and
VCR from the application program. The engine provides a C programming interface
with an event driven programming model. Also provided with the engine was a VBX
control for interfacing to Visual Basic.
allow capable decoders to select
and view a live stream transmitted from an MPEGanywhere
system.
programming for MPEG transmission
applications to third parties. One major project multiplexed ten 2.1Mb MPEG
streams into a single 21Mb MPEG stream and retransmitted through the customers
proprietary hardware design. This design incorporated multiple ethernet networks and low-level programming to a DMA
interface on the customers prototype hardware.
5/92 – 10/93 Intelligent Instruments Corp, Sunnyvale, CA.
Title: Director of Software Engineering
Operating as a subsidiary, IIC of Florida, Inc, I managed a group of five software designers in an effort to build a Multimedia File Server capable of serving up to 80 simultaneous clients over primary rate ISDN lines. Our responsibility was to develop the host level software operating on a Sun computer system and the embedded graphics and windowing software for a proprietary terminal. We worked in cooperation with Intelligent Instruments Corp.'s California division, who's responsibility was a large scale development of a proprietary hardware and embedded software system to move multimedia data between storage devices and the ISDN communications interface
The CA division also produced a set of ISA bus boards which performed H.261 video compression, audio capture, and ISDN/T1 interfacing. IIC of Fla supplied the majority of applications and driver software for these boards.
· System design and management of software development for a Multimedia File Server based on Sun host computer and IIC developed custom data routing hardware. Development highlights of the file server include:
· Object-oriented Multimedia Scripting Language (MSL).
· Network independent distribution of resources with high-performance message passing architecture.
· Media object database manager.
· On-line file system for optical jukebox and RAID hard drives.
· MSL accessed ISAM database manager.
· MSL controlled GUI interface on client terminals
· Network accessible, graphical windowing user interface for IIC developed multimedia terminal.
· In addition, I was the principle software engineer developing a C language based software library and application programs, for IIC's PC\AT based video conferencing board set, which included IIC's Video Compression Engine ( VCE), Audio Compression Engine (ACE), IDSN telecommunications board (Telemux), and ethernet packet driver interface. Low level driver design for the VCE, ACE, and ethernet interfaces required direct programming of the DMA and interrupt controllers using a combination of 80x86 assembler and C language.
4/85 – 5/92 ECC International Inc., Orlando, FL.
Title: Senior Simulation Analyst
1. Lead analyst, managing group of five programmers for development of networked M1 Abrams simulator prototype compliant with the Distributed Interactive Simulation (DIS) standard. Simulation software was developed in "C" on an IBM R/6000 in the AIX environment. Unusual interfacing requirements included an Evans & Sutherland ESIG 2000 visual system communicating over physical layer raw ethernet packets.
development of visual terrain and target
databases for fixed eyepoint weapon simulator.
Database generation and rendering software was developed in "C" on a
Silicon Graphics IRIS.
videodisc gunnery simulator utilizing
special software and hardware techniques for simulating tank turret motion and
visual effects. Software was developed using i86 assembler for realtime execution, and Pascal. for
scoring, lesson selection, and system configuration.
assembler, to control a ethernet based host interface board for ECC's Peripheral
Interface Electronics (PIE) I/O system. Highlights of design include debug of
initial hardware design, porting of rom monitor, ethernet controller and proprietary bus interface software,
host data protocol specification, data transport design, diagnostics, and ADA
language interface routines for DEC Ultrix host computer.
visual system. Rendering and
modeling software utilized BSP trees for visual occulting. Investigated
hardware techniques and algorithms for polygon texturing and anti-aliasing.
LOSAT,
Chaparral, and numerous other proposals for training simulators. Support generally consisted
of selection of hardware platform, software design overview, manpower and
software line-of-code estimates, and technical writing. Specific areas of
expertise included evaluation of 3D visual systems, databases, and displays;
graphics and audio generation, and simulation techniques.
3/84 – 4/85 Independent Software Design Consultant
Contracted by Star Systems Software, Inc. to perform a software port to IBM PC platform, of a commercial integrated software package which contained a database manager , terminal program, and word processor. Original package was written in 6502 assembler and Action! ( C-like compiled language).
Contracted by Commodore and Adventure Intl. to perform a software port, to the Commodore 64, of Rally Speedway which I had previously developed at Adventure International.
11/81 – 3/84 Adventure International Inc., Longwood, FL.
Title: Video Game Designer
Worked independently to develop the following nationally published 6502 assembler based video games:
2. Eliminator - Apple II
3. Rear Guard - Apple II
4. Sea Dragon - Apple II
5. Rally Speedway - Atari 800
6. Arex - Atari 800, Commodore 64
A search on Google with the name Rally Speedway still produces many links to videos, reviews, and fan's comments.
6/78 – 11/81 United Telephone Inc, Altamonte Springs, FL.
Title: Telecommunications Engineer
Engineering sales support for PBX systems.
Education
1978 - University of South Florida, BSEE