PHONE: (877) 839-2543
FAX: (877) 349-1818
John.Gulbrandsen@SummitSoftConsulting.com
Summary
Serious,
devoted and experienced software / hardware engineer guaranteed to
efficiently produce results. Specializing in Microsoft operating systems
and core technologies, technical application development and kernel mode
device drivers for the various Windows platforms. Also has proven
experience in technical Internet application development. Has valuable
experience in most applicable languages and new technologies. Has Fourteen
years of professional experience, will be an immediate high-performing
contributor to any development project.

|
Skill
set |
Technologies
& tools used |
|
Desktop and Windows CE application development |
C/C++/C#, VB/VB.NET, WIN32 API, COM, DCOM, ATL, IDL, MFC,
DirectX, ActiveX, Visual C++, Visual Basic, .NET. |
|
Computer communication |
TCP/IP, sockets, high-speed fiber networking, Gigabit PC
clustering, Ethernet, USB, Infrared, Serial, Parallel. IP Telephony. |
|
Internet application Development |
C#, VB.NET, HTML/DHTML, Java Script/VBScript, ASP, ASP.NET,
Visual InterDev, ActiveX, FrontPage, MTS, IIS, WinSock, SOAP/Web services.
Windows network load balancing. Routers/Switches & TCP/IP at socket and
higher levels. |
|
Database design and development |
MS SQL Server, MS Access, ADO, ADO.NET, SQL, Stored
procedures, clustering and fail-over etc. |
|
Kernel Mode NT/95/98/CE Device Drivers & system
programming |
C/C++, x86 Assembly, 95/98/NT4/2000/XP/2003 DDK, WDM, VXD, NDIS, Driver::Works, SoftICE, WinDbg, Profilers, CE
embedded toolkit etc. |
|
Embedded systems programming |
C, Assembly, Windows CE, Real-time OS design and
programming, Multithreaded real time programming. |
|
Analog, digital and uP-based electronics design |
uP-based design and programming, Logical analyzers, uP
emulators, Oscilloscopes, Schematics and PCB CAD software etc. |
|
Additional resources available |
Details |
|
Complete in-house
computer lab |
Advanced gigabit
networking setup, PC cluster configurations (ServerNet and cLan) and 10+ development
and test machines. Multi and single processor machines for development and
testing. |
|
MSDN Universal
subscription |
All Microsoft’s
software including all versions of current and older operating systems, all
older and new development tools. All language versions are included for
complete testing of developed software. |
|
High speed Internet
access |
Multiple Internet
connections (DSL, cable and fractional T1) allow for realistic testing of
networking related software. |
Consultant Summit Soft, Inc. Dec 1999 – Aug 2005
¨
Densitron Technologies,
o
Reverse-engineered
and debugged a multi-port serial WDM driver for Windows 2000/XP/2003.
This was for a custom multi-purpose I/O board. Fixed major bugs and
implemented flow control in the driver. Cleaned up the driver installation
.inf scripts. Use of Oscilloscope, logic analyzer, WinDbg and
SoftICE etc. Technology: WDM, C. Environment:
Windows XP DDK, Visual C++ 6.0, WinDbg, SoftICE.
¨
Summit Soft, Inc May
2005 – July 2005
o
Hardware design and implementation of a PCI Dump Switch Card described here:
http://www.summitsoftconsulting.com/DumpSwitchCard.htm. Analog and Digital
circuit design. State machine implementation using both discrete gates
as well as a 16V8 PLD. Used WinCUPL to implement the PLD state
machine code. Schematic and layout work was done in Protel DXP.
Prototype assembly. Technology:
Analog/Digital design, PCI-bus. Environment: Protel DXP, Oscilloscopes,
WinCUPL.
¨
Western Digital,
o
Specification,
design and development of a WDM driver for a custom PCI I/O card.
The I/O card contained several D/A converters, serial EEPROM and
other components that the card interfaced to via the I2C serial interface.
A driver installation script was provided for seamless installation. The
driver was designed to work on the Windows 98 / 2000 / XP / 2003 platforms.
Technology: WDM, C. Environment:
Windows XP DDK, Visual Studio 2003, WinDbg.
o
Design and
development of a multithreaded network stack for simultaneous
communication over USB between a number of PCs running Windows XP and
embedded systems running the Nucleus RTOS. Designed and developed multiple
client and server services over the network stack that allowed the embedded
Nucleus RTOS to remotely access files on the PCs over the USB link. Technology: USB, Multithreaded/RTOS
programming. Environment: Visual C++/Visual Studio 2003,
o
Brought up a custom CPU board that contained an Atmel ARM CPU. Developed flash
bootloaders and startup environment for the Nucleus RTOS.
Designed and implemented downloading and
execution of application images over a parallel link to a master PC. Developed
a platform layer and various Nucleus device drivers that application
developers will use to interface with the hardware. Technology: RTOS programming, Assembly/C. Environment:
¨
Ubero,
o
Created an Extended
Stored Procedure used for sending email from SQL Server 2000.
Implemented in C++ Used a custom COM object for the actual
sending of the emails. Technology:
SQL Server/C++/Win32 DLL. Environment:
Visual Studio 6.0
¨
Relsys International, Inc.
o
Created custom ActiveX-controls for use in Internet
Explorer 6.0. Automated Microsoft Word on the client-side. Code signed with
AuthentiCode, creation of cab files
etc. Technology: Windows 2000
load balancerVC6/VB6.
o
Identified/corrected
database/web farm scalability issues. Flushed out system
instability issues. Load testing in Microsoft Application Center Test
(ACT). Design and setup of load testing network, load balancers and switches.
Technology: Windows 2000/BigIP load balancer.NET/VB6.
o
Wrote .NET
Windows Services that monitored system functionality and reset other
services in case of failure. Part of the company’s 24x7x365 strategy. Technology:
.NET. Environment: Visual Studio .NET.
o
Setup of
1-click automated build environment (FinalBuilder). Wrote several Installshield
Pro projects. Automatically checks out files, builds components, builds
installation packages and produces final CD-images. Environment:
Installshield, Finalbuilder.
o
Ported C++ Oracle database access layers from
Oracle Objects (OO40) to Oracle Call
Interface (OCI). Technology:
Oracle 9i. Environment: Visual Studio 6.0.
¨
Advanced Trading Research, Inc.
o
Financial
Market’s technical analysis research.
Development of algorithms for determining intraday market dynamics by measuring
and analyzing order flow in the cash,
futures and options markets. Environment: SQL server 2000, Excel 2003
VBA, Visual Studio .NET.
o
Complete design and implementation of a
real-time electronic stock monitoring
and analysis system. (Everything on http://www.AdvancedTradingResearch.com
including back-end systems, web site and client applications). The system receives real-time order flow from
the exchanges in
o
Design/development of a raw TCP/IP communication protocol for
the client chart data. Uses .NET on
the server side (TCPClient and NetworkStream) and VB6 Winsock control on the client side. This protocol is about 100
times less verbose than a XML/SOAP approach
which keeps bandwidth and server machines to a minimum. Implemented a TCP/IP server in a C#/.NET Windows service that was load-balanced on a number of servers. Technology: C#/.NET/VB6. Environment: Visual Studio 6.0/.NET.
o
Development of various C#/.NET Windows services. Uses .NET web services to communicate
between various data distribution centers and the main web site. This
implements redundancy since any of the data centers can handle the request from
the client charting tools. Technology: C#/.NET. Environment: Visual
Studio .NET.
o
Design and implementation of client side VB6 charting application (ActiveX technology). Used Microsoft SOAP toolkit 2.0 and TCP/IP Socket communication to
communicate with the data centers. Technology: VB6 Environment: Visual
Studio 6.0
¨
Desper Products, Inc.
o
Design and development of DirectX Media Objects (DMOs) for Windows Media Player 9. Uses Spatializer’s
Audio Alchemy algorithm to filter out cross-channel noise in 5.1 multi-channel sound in DVD movies. Technology:
MFC/WIN32/ C++. Environment: Visual Studio 6.0.
o
Design and development of a background
resident sound processing application. Runs in the background on XP systems and
processes all system sounds regardless of what application is used for playback
by using kernel-mode sound stream
hooking. Basically an integration of various features of earlier projects
below. Technology: MFC/WIN32/ C++.
Environment: Visual Studio 6.0.
o
Development of a WinAMP plug-in that uses the Spatializer proprietary sound
processing algorithms (‘StreamFX’). Available at http://www.spatializer.com. A UI was
created that integrated with the Windows shell (notification tray integration
with pop-up menus) through which the sound processing algorithms could be
adjusted. Technology: MFC/WIN32/
C++. Environment: Visual
Studio 6.0.
o
Design and development of an application
(“Virtual Sound Processor 11”) used
to configure the sound processing device drivers described below. The UI was
built using an MFC dialog
application that hosted several custom
ActiveX components that were developed in C++/MFC. The Macromedia Flash player control was used for effects in the UI. A
setup application was also created using InstallShield.
Technology: MFC/WIN32/ C++.
Environment: Visual Studio 6.0.
o
Development of kernel mode WDM and
VxD device drivers for the Windows 95/98/98SE/2000/XP-Whistler platforms.
The drivers intercept all sounds sent via the Wave and DirectX/DirectSound
APIs, applies various 3D-sound algorithms to the sound data before
sending the sound buffers on to the sound card or USB speakers. Also developed
a user mode DLL for hooking Wave out on Windows 9x. Technology: WDM
& VxD kernel mode development in C and x86 Assembly. Environment:
95/98/W2K DDKs. 16 bit compiler for the hook DLL.
¨
Canon Information Systems, Inc.
o
Windows 9x and NT/2000 kernel mode development of XML/SVG printer drivers. Generates an XML/SVG file that contains
scalable information that describes the printed page. The SVG file can later be
viewed using Adobe’s SVG viewer or printed to an SVG compatible printer.
Technology: C. Environment:
Windows 9x/2000 DDK, SoftICE.
o
Specification and development of a
Windows 2000/XP/Whistler printer driver that generates SVG/XML-data.
Contains two COM-component plug-ins that handle rendering into the XML/SVG file
respectively defines the user settable properties of the printer driver. Technology:
COM, ATL, and C. Environment:
Windows 2000 DDK, Visual C++ 6.0.
o
Lead design and development of an ASP-based
WEB site (www.docgo.com). Built on NT4/IIS4 using Visual Interdev 6.0.
Design/Implementation of various COM components in ATL/C++. Design and
implementation of the SQL server database for the WEB site.
o
WIN32 application programming. A Windows
2000 service was created that published data retrieved from a 3rd
party SDK into a Microsoft Active Directory database. Technology:
LDAP, Active directory, WIN32. Environment: Visual C++ 6.0,
Windows 2000.
o
Design and implementation of an ActiveX
object hierarchy in C++/ATL 3.0. The COM components were used from Visual
basic/ASP to search for, retrieve and update information in Microsoft’s Active
Directory databases. Uses advanced features of ATL3.0 to implement Visual Basic
collections etc. Technology: C++/ATL, ActiveX, COM, VB,
ASP, Environment: Visual InterDev 6.0, Visual Basic 6.0, IE
5.0, Windows 2000.
o
Creation of various tools in Visual
Basic 6.0 that used the above mentioned ActiveX components. For instance
was an explorer-like tool implemented which allowed the user to graphically
browse, update and delete information in a Microsoft Active Directory server.
o
Design and implementation of a Windows
2000 service. Used for, in a background task, collecting information from
Canon printers and copiers (status information etc) and updating a directory
server with the retrieved results. Written directly to the WIN32 API in C++.
Technology: C++/WIN32 Environment: Visual
C++ 6.0, Windows 2000.
¨
SOHO Search, Inc. Laguna Niguel, CA. May
2000 – August 2000
o
Development of a Windows CE
application in VB/C++ which was used for tracking time and expenses on Palm
and Handheld PCs. ActiveX components were developed in ATL. Database
programming via ADO on CE and PC platform. Synchronization of
databases between the Windows CE device and the desktop platform. Technology:
C++/ATL, ActiveX, COM, VB, Environment: Visual Basic, Visual
C++, Windows CE 2.0.
o
Hardware and software design
of an USB-to-telephone converter. Used for interfacing telephones to
standard PCs via USB port. Hardware design, electronics schematics, PCB layout
and prototype building. Used DirectSound and DirectInput for low-latency
streaming sound and control. Used Microsoft TAPI for call-control in test
applications. Technology: USB, Electronics CAD applications
(Protel), COM. Environment: Visual C++, oscilloscopes and
other normal HW development tools.
¨
Eureka Broadband, Inc. Newport beach, CA Dec 1999 – Mar 2000
o
ActiveX/ATL.
Design and development of ActiveX-components used for displaying barcodes and
some additional information in WEB-pages. Technology: ActiveX,
COM, ASP, Environment: Visual C++ 6.0, Visual Basic
6.0, IE 4.0.
o
ASP/VBScript/JavaScript.
Design and development of an advanced WEB application used to online
print barcode data retrieved from SQL Server 7.0. Use of Design time
controls and of the above mentioned ActiveX component. Server and client
side scripting. Technology: ActiveX, COM,
ASP, Environment: Visual InterDev 6.0, Visual Basic 6.0, IE
4.0, Windows NT.
Consultant
¨
Autodiagnos AB. Stockholm,
o
Windows NT Network programming via
Windows sockets. Added network support in software that uploads data
from automobile computers, generates XML-files and sends the XML-files
to a central server for storage. Uses
standard TCP/IP network for communication. Development of a user
interface for communication with the server. Development of WEB-based
presentation of data using Visual Interdev 6 and ASP. Technology:
¨
Medtronic Functional Diagnostics.
o
Windows CE WIN32 application
development for an embedded medical device. Low-level Windows CE system
programming of flash memories, Real time clock and other system
functions. Technology: Microsoft
Windows CE 2.0. Environment:
Microsoft Windows CE Embedded Toolkit, C++.
o
Design and development of a Windows
CE printer driver. Porting of Windows CE operating system code to a
new hardware platform. Setup of Windows CE build environment on a build server
and system integration of Windows CE to the target system. Technology: Microsoft
Windows CE 2.0. Environment:
Microsoft Embedded Toolkit, C.
¨
ABB AB. Vasteras, Sweden.
o
Design and development of an ActiveX
communication component for Windows NT/98. It was used real time in a
Visual Basic application to control an industrial computer via a serial link.
Implementation of a serial communication protocol of type Modbus. The component
was implemented in C++ using ATL 3.0 in Visual Studio. Development of test applications in Visual
Basic 6. Technology: C++,
Visual Basic, ATL 3.0, WIN32. Environment:
Visual Basic 6.0, Visual C++ 6.0.
¨
Medtronic, Inc.
o
Development of COM-components in C++/ATL
and Visual Basic. Used to in real-time stream data into a
client/server system that handles real-time analysis and display of streaming
clinical data. Uses Microsoft DirectShow technology. Technology:
DirectShow, COM, ATL, IDL, WIN32. Environment:
Visual Studio, C++, VB
o
Development of a NT4 stream device
driver in C++. Used for
generating simulated data that implements a virtual USB device. Technology: Vireo Driver::Works
class library, C++. NT DDK, C. Environment: NT4.
o
Development of an USB WDM device
driver for Windows98/NT5. Used for collecting real-time data from a medical
data acquisition instrument. Technology:
Microsoft DDK. C. Environment:
Windows 98 and Windows 2000.
o
Development of a Windows DNA 3-tier
client server application that handles real-time analysis and display of
streaming medical data retrieved from hardware devices. IE4 WEB based front end containing DHTML
and ActiveX components built in VB and C++/ATL. Client side
Jscript/VBScript. Implementation of client side ActiveX components in VB5 and
C++/ATL. Development of middle tier
business components in VB and ATL that used ActiveMovie streaming technology.
The backend was based on a SQL Server database wrapped by MS
Repository 1.0. Technology:
IDL, COM, ActiveX, DHTML, MFC, ATL, and WIN32. Environment:IE4, VC5, VB5,
Windows 98 and Windows 2000.
o
System and application programming of a Windows
CE based portable medical data acquisition device. Subprojects included: 1) Specification and
development of Windows CE device drivers for data acquisition, 2) Windows
sockets communication over infrared link (IrDa), 3) Application
programming using WIN32API, Visual C++ and MFC for Windows
CE. Environment: Windows
CE, C, C++, Embedded toolkit for VC++.
¨
Ericsson Telecom.
o
Specification of Windows 95/NT device
drivers and system design of an ISDN Multimedia telephone for
Windows 95/NT. DirextX technologies like DirectShow, DirectDraw
and DirectSound were used for multimedia presentation. A video for
windows (VFW) device driver was used for interfacing the hardware with
the system. A NDIS 4.0 miniport driver handled the network
communication. TAPI was used for call management. Technologies: DirectX, VFW,
NDIS miniport, TAPI. Environment:
Microsoft DDK, Windows 95/NT, C/C++.
¨
Net Insight AB.
o
Specification and development of a high
performance NT device driver for a PCI based fiber network
card. Subprojects included: 1)
Specification and development of an NDIS 4.0 miniport. It used bus
master DMA for transferring data between main memory and the PCI Network
card, 2) A LAN emulation software was designed and implemented for
interfacing NT’s connectionless TCP/IP network stack to the connection
oriented DTM network. Environment:
Microsoft NT DDK. C, Windows NT 4.0.
¨
MMC Electronics.
o
Design and development of an embedded
Micro controller system. Design and implementation of a pre-emptive
real-time kernel for it. (Round robin scheduling, pre-emptive time slicing,
Semaphores, msg queues, timers and more).
Design and development of a multithreaded real-time application
for the device. HW Technology: Flash memories, USB controller,
UARTs,
Employee Lorentzen
& Wettre AB (
¨
Development of a 16-bit application for Windows
3.1/3.11/95/NT which is the user interface to On-Line measuring equipment
that measures parameters of paper quality in a paper-processing machine. Direct
WIN16 programming in C. Implementation of an HTTP-server
using Windows sockets for communication over TCP/IP-network. Creation of
Implementation of On-Line help usingRTF-files and Microsoft Help
Compiler. Creation of an Installation program using Installshield. Technologies:
WIN16, C. Environment: Borland C/C++, InstallShield.
·
Hardware/software development of
a distributed multiprocessor system consisting of 15 CPU boards that
controlled an automatic paper testing system. This system communicated with a
data analysis system implemented in
·
Microcomputer design and development
of an embedded DC-motor controller. The motor controller was based on a Intel
80196CA CPU which controlled the position and speed of the DC-motor. Technology: A mixed environment with a real-time
operating system and direct programming of the hardware in C and Assembler.
(IAR and O´Tool). Emulators, debuggers and logic analyzers.
Consultant ITF
AB (
¨
Implementation of a Windows NT stream
device driver used to control a general-purpose parallel ISA interface
board. A user mode DLL was developed for easier access to the device
driver from application programs written in C, C++, Pascal and Visual Basic.
Test applications for the targeted programming languages were also
developed. Technology:
Microsoft NT DDK, C, WIN32 API, Visual C++ and Visual Basic.
¨
Implementation of a kernel mode audio
driver for Microsoft Windows NT. The audio board was partly Soundblaster
compatible. User mode support drivers were also developed which enabled
plug-into the NT multimedia subsystem.
Technology: C, Microsoft C Compiler.
Consultant
¨
Specification and development of a Windows for
Workgroups 3.11 NDIS 3.0 miniport. The miniport controlled a NE2000 compatible
ISA network card. Installation script was also developed for the network
driver. Technology: C,
Microsoft C Compiler.
¨
Development of a Windows application used for
remotely controlling a satellite receiver. Channels could be scanned
for, stored and be brought back for later viewing. The position of the
satellite dish could be remotely controlled by the Windows application, which
enabled the application to automatically search for new satellite channels
without user intervention. Stored channels could, after an automatic search, be
sequentially previewed for a number a seconds. Printing support was included
which enabled lists of channel information, satellite position and other
relevant information to be presented on paper. The application was a 16 bits
object oriented C++ application developed with Microsoft Foundation
Classes (MFC) using Visual C++.
Technology: MFC, Visual C++, 16-bits application
components (VBX’s). Context
sensitive On-Line help. Installation
program (Installshield).
¨
Development of a Logical Analyzer targeted to
run in MS-DOS. The application was used as the user interface for a logic analyzer, which
sampled data from a microprocessor system. The communication with the
sampling hardware took place via a parallel ISA interface board.
Functions for disassembling sampled data (Motorola 6800 format) and for
searching for data pattern as well as trigging sampling at predefined
data pattern were implemented. Technology:
MS-DOS, Borland Pascal.