Summit Soft Consulting

Expert Windows Systems Programming

26895 Aliso Creek Rd. Suite B504
AlisoViejo,CA 92656-5301

PHONE: (877) 839-2543
FAX: (877) 349-1818

John.Gulbrandsen@SummitSoftConsulting.com

                                                                                                                                               

John Gulbrandsen

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.

 


 

Professional experience                                Jan 1991 – Aug 2005

Consultant                                                        Summit Soft, Inc.                                                                     Dec 1999 – Aug 2005

                                                                                                           

¨        Densitron Technologies, Santa Fe Springs, CA                                Feb 2005 – Aug 2005

 

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, Lake Forest, CA                                                     June 2005  - Aug 2005

 

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, Mentor Graphics CodeLAB.

 

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: Mentor Graphics CodeLAB.

 

¨        Ubero, Inc. Trabuco Canyon, CA                                                     Mar 2004

 

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. Irvine, CA                                                 Jan 2003 – June 2004

 

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. Aliso Viejo, CA                             Nov 2001 – Jan 2004

 

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 New York and executes proprietary patented algorithms in stored procedures running on a 2-node fail-over SQL server 2000 cluster. Complete fail-safe system design of RAID1 (disk mirroring) using Compaq RA4000 fibre channel disk arrays, Compaq Fibre channel switches, Compaq ServerNet II Gigabit networking/cluster switch and Multiprocessor AMD Athlon machines.  The system analyzes about 2.5 million orders per day which generates approximately 1.2 GB of data daily. The finished calculations are replicated to a number of front-end read-only databases using SQL Server transactional replication. Two independent networks were used together with fail-over routers/gateways to provide fail-safe networking. Technology: ASP.NET, C#, JScript/HTML, SQL/T-SQL/Stored procedures. Microsoft clustering and load-balancing. Environment: SQL server 2000 Enterprise manager, Profiler and Query analyze. Visual Studio .NET.

 

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. Santa Clara, CA                                            Oct 2000 – Nov 2003

 

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. Irvine, CA                                   Mar 2000 – Jun 2002

 

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. ADO was used for the data access. Technology: ASP, COM, ATL, SQL, and WIN32. Environment: Visual Interdev 6.0, Visual C++ 6.0.

 

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                                                        Softronic ObX, Sweden                          Sept 1997 – Dec 1999

 

¨        Autodiagnos AB. Stockholm, Sweden / Berlin, Germany.

 

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: Delphi 4, WIN32 and ASP.  Environment: Windows 95/98/NT.

 

¨        Medtronic Functional Diagnostics. Copenhagen, Denmark.

 

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. Stockholm, Sweden.

 

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. Stockholm, Sweden.

 

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. Stockholm, Sweden.

 

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. Stockholm, Sweden.

 

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, Hitachi H8 CPU, PLDs, emulators and Logic Analyzers.  SW Technology: Operating system implementation, realtime programming.

 

Employee                                                           Lorentzen & Wettre AB (Sweden)              Aug 1995 – Jul 1997

 

¨        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 Delphi 2.0 under Windows NT. Measured data was stored in a MS SQL-server 6.5 or Borland Paradox.  Technology:  Programming in a real-time operating system and direct to the hardware in C and Assembler. Emulators and Logic analyzers.

 

·          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 (Sweden)                                             Sep 1993 – Aug 1995

 

¨        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                                                        Frobozz AB (Sweden)                                     Jan 1991 – Aug 1993

 

¨        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.