Shaun Sorensen

Self taught software developer with over 20 years of experience, recognized for consistently delivering products on time and meeting/exceeding all project specifications. With experience in both technical support and product testing I pride myself in finding and checking the edge cases most developers don’t see.

C/C++, HTML, PYTHON, SQL, PHP, XML, XSL, WAP, Lua, Java, and Javascript.

Kohana, Django, and CodeIgniter.

APIs and SDKs
WIN32, Dialogic R4/Global Call, SIP, ZeroMQ, MongoDB, TAPI, IP Office Web Services, DEVLINK, LDAP, Cisco AXL, Comtrol, SOAP, and HTNG.

IP Office, Panasonic, Avaya Aura with Session Manager, Avaya Communications, Definity, ShoreTel, NEC 3C, Asterisk, Askozia, Cisco, Norstar, MITEL 3300.

MS Developer Studio, NSIS, Apache, Wireshark, VirtualBox, VMWare ESxi, Teamviewer, Dialogic PowerMedia.

Work Experience

  • Lead Software Developer DuVoice, 2002 – Present.
  • Sr. Software Developer Captaris, 1993-2002.
  • Product Test Engineer Captaris, 1990-1993.
    Black box testing of the companies voicemail product and hardware testing and evaluation for product acceptance.
  • Product Support Engineer Captaris, 1988-1990.
    Telephone support for hardware and software based voicemail system using a customized version of C-DOS.
  • Production Technician Captaris, 1987-1988.
    Responsible for all shipping, receiving, PC assembly and software duplication.



  • Developed an interface to Metaswitch for name, callbar and dnd changes.


  • Developed a public REST interface allowing 3rd parties to manage guest rooms and wakeup calls.
  • Developed a public API for posting names and class of service settings using HTTP POST method.
  • Developed an interface server using HTNG protocol for changing names and class of service settings.
  • Implemented an interface to IPitomy PBX for changing names and class of service settings.


  • Converted all realtime information display to use a ZeroMQ based interface providing faster realtime updates.
  • Started implementing MongoDB. Prior to most data was stored in binary files or SQLITE databases.
  • Developed an interface between the inventory system and the COMTROL interface. This allows our inventory system to communicate with a wider range of accounting systems.


  • Developed a LDAP import utility.
  • Developed an application to detect if analog guest rooms phones remain offhook. This is required by many hotels in cases of emergency. The system then alerts the specified people via telephone or email.
  • Developed a software only licensing system using encryption and a single file. Prior to this the company used hardware dongles.
  • Developed an interface to SIEMENS pbx to change guest names and class of service settings using SOAP.
  • Developed a system which allowed software license to be managed by technical support which could then be downloaded by the customer via the internet.


  • Converted existing telephony interface to support SIP. Previous to this the product could only use Dialogic telephony boards. Implementing SIP provided the company to enter into fully IP based voicemail products for the hospitality market.
  • Created an interface using the LUA language so all SIP integration is handled via a script file rather than hard coding all the possibilities It allows for the inclusion of site specific overrides and has reduced the time needed to provide a customer with a fix because it can be modified on site.


  • Developed a web based inventory system for hotels to manage minibar purchases. The system allows hotel maids to dial specific codes from the guest phone which are then stored in a local database viewable via a web server. This interface also then sends a XML based packet to a remote accounting system.
  • Developed an interface to the Avaya IP Office allowing the product to change the names and class of service from the companies product InnDesk or our PMS link.


  • Using modified VNC code, created a new support application allowing customer service instant access and control of any installed system.


  • Developed a SOAP based interface for changing names and station class of service to ShoreTel PBX.


  • Developed a web based hospitality room management system for UK Hilton. This system is used to manage all guest wakeup calls. This product was then distributed as a major part of our existing product and continues to influence sales to day. Online demo: http://inndesk.duvoice.com
  • Developed a WAP based interface to Avaya IP Office web enabled phones providing missed wakeup calls and emergency alerts when guests dial 911.
  • Developed an interface for changing guest names and class of service on NEC Univerge PBX.


  • Converted product install to use the NullSoft NSIS product. This allowed development greater ability to create installs.
  • Developed a TAPI interface for call integration to Panasonic PBXs. It also provides the ability to change guest names and class of service.


  • Implemented companies first bug reporting system using Mantis.
  • Developed a serial integration to ITT3100.
  • Designed a in-house database system using python and MySQL This system allows the company to track all shipments, customer sites, hardware installation and technical support trouble tickets. Prior to this no tracking was performed of tech support calls.
  • Created a fax server using black ice fax software. This provided the ability to receive and send faxes and and email faxes received to the client as a PDF.
  • Developed a TAPI interface for call integration to IP Office. It also adds ability to set/clear MWI and DND.


  • Converted existing telephony interface to support Dialogic Digital boards providing interfaces to Avaya, Mitel, Nortel and others. Prior to this the product could only be used with analog boards.
  • Implemented new production procedures for all systems using GHOST and a single bootable diskette production. Using this system production is able to create a new system with only two key presses.


  • Implemented a full revision control system using SourceSafe. Prior to this most code was simply copied from PC to PC.
  • Converted all existing code so product could be built consistently. Prior to this all the product could only be compiled on a single laptop.
  • Produced a product installer using Wise Installer. Prior to this all systems were hand built or produced by hard disk duplication.
  • Using boungs checker to detect memory leaks and bugs spent several months cleaning, rewriting and fixing bugs. Prior to this it was common for the system to be configured to reboot every day in order to clear memory.
  • Implemented a new logging mechanism which provided easier to read logs for technical support and production.
  • Developed a serial integration to NEC using MCI protocol.


  • Convinced the existing software development head which I had been working with for many years to give me a chance as an entry level developer. He accepted the idea and I quickly grew to be a senior developer.
  • Continued to provide product test with updates and enhancements to the script based testing tool giving it a full texted base UI which I developed. I also gave it the ability to load subscripts and add some objected oriented ideas to the language.
  • Developed a server-based configuration manager. This server could be accessed from any client on the network, including Visual Basic and MFC applications.
  • Designed and implemented an ATL-based interface capable of accessing any LDAP server throughout an organization. This provided an accompanying control panel applet and configuration manager access to third-party email providers configuration data.
  • Created a Windows NT and Windows 98 audio codec using the Microsoft Windows DDK. This codec allowed customers to play voice mail files directly from any Windows-based computer.
  • Created a tool for development and product test which would allow them to re-program hardware dongles used for licensing. This tool used a special technique I found for hiding registry entries allowing it to expire in case it was ever exposed.
  • Implemented companies first internal web server for development could help distribute information.
  • Developed a Message Waiting indicator server which allowed users of Lotus Notes and Microsoft Exchange to be notified of new Unified Messages via their desk phones.
  • Designed and implemented a log and debugging facility that was both version and product independent. This allowed the engineers and technical support greater capability at finding and resolving customer problems with high rates of success.
  • Responsible for design and implementation of the companies Subscriber Based Unified Messaging server. Developed as a multi-threaded NT service providing e-mail, fax, and voice mail access from third-party email providers. This allowed the company to win many awards and be recognized as a leader in the Unified Messaging space.


  • Taught myself C++.
  • Took over all development of script based testing tool. Later re-wrote the entire customized language parser to include gosubs, variables, subroutines and more with a C oriented design.


  • Helped develop first ever regression test documents which provided development with consistent and reliable verification procedures to insure product stability.
  • Helped develop a script-based testing tool with development which used a custom language that interfaced to Dialogic telephony boards for automated call testing.


  • Developed a modem based bulletin board system for customer techs to retrieve product documentation and technical bulletins.
  • Helped develop technical document standards and worked with technical writers for printed product manual.
  • Consulted in the development of first customer support database.


  • Developed a PC-based shipping and receiving system using an R:BASE database system. All tracking had been done previously using paper logs. Found the R:BASE software in storage and with nobody else knowing how it worked I taught myself and implemented it on my own. This provided faster more accurate accounting of shipments for sales and finance.
  • Taught myself Borland Turbo C.

If your interested in hiring me, fill in the contact form below.

* indicates required field