MICHAEL GILLELAND
1736 Hague Avenue
St. Paul, MN 55104
651-644-8837 (home)
megilleland@yahoo.com
Objective |
Summary |
Employment |
Computer Languages |
Protocols and APIs
Sample Code |
Education |
Publications |
Other Interests
Objective
I am seeking a software development position in the Twin Cities area. Although I am not willing to relocate at this time, I am willing to telecommute. I am interested only in a full-time position, not in temporary or contract work.
Summary
20 years of software development experience, using a variety of
programming languages on many different target platforms and operating systems.
Especially adept at leveraging open-source software to achieve rapid development
of new projects.
Employment
1993-2004 Nortel (Minnetonka and Bloomington, MN)
- Submitted three company-sponsored applications to the U.S. Patent Office
for inventions related to Internet telephony. Two of these applications are still pending, and one has been accepted U.S. Patent 7,277,533 (Providing Calling Party Information in a Request to Establish a Call Session).
- Wrote automatic software update for Internet telephony soft phone, by
implementing a subset of Java Network Launch Protocol (JNLP).
- Designed Java plug-in collaboration framework for Internet telephony soft phone,
which allowed users to run shared applications (file exchange, whiteboard, clipboard,
games, screen share, etc.) while talking on the phone. Dynamic deployment of plug-in components was
achieved through Java reflection and custom class loading. I wrote a chess application to showcase this framework.
- Developed XML-based telephony markup language allowing non-Windows clients
to communicate with servers running Microsoft's Telephony Application
Programming Interface (TAPI).
- Developed software for call center Symposium Agent application, especially
the following modules: database tables and user interface to configure dialing plans; database tables and Windows NT service to log all agent phone calls; ActiveX objects implementing telephony functions; automatic update of client desktop with latest software; keystroke macros for activating customer legacy applications when agent's telephone rings; debug monitor for tracking down problems at customer sites; and software license management.
- Wrote C++ telephony driver software allowing a variety of Nortel switching
platforms and telephones to support Microsoft's Telephony Application
Programming Interface (TAPI).
1989-1993 Bell Northern Research (Norcross, GA)
Designed line and loop testing software for Nortel's
AccessNode fiber-optic loop carrier.
1985-1989 Bell Northern
Research (Research Triangle Park, NC)
- Designed software to integrate Nortel's DMS-1 Urban digital loop carrier
with its DMS-100 telephone switch.
- Developed software allowing screens for telephone operators to appear in
different languages, such as French and Spanish.
1983-1985 Paradyne Corporation (Largo, FL)
Developed C software for the PIXNET-XL product, which extended the I/O channel of IBM mainframes to remote locations for printing, check processing, tape operations, etc. Without PIXNET-XL, high-speed printers and other peripheral devices had to be located nearby the mainframe computer which
controlled them.
1982-1983 Central Michigan University (Mount Pleasant, MI)
Assistant Professor, joint appointment in Department of
Foreign Languages and Department of Computer Science.
Computer Languages
- Java (preferred).
- Visual Basic.
- C/C++.
- SQL.
- HTML.
- XML.
Protocols and Application Programming Interfaces
- Network Protocols: TCP/IP, UDP.
- Nortel Call Control Protocols: X11, Meridian Link, Application Module
Link, CompuCall.
- Telephony APIs: Microsoft TAPI, JTAPI, Dialogic CT Connect, Novell TSAPI.
- Internet Telephony Protocols: Session Initiation Protocol (SIP), Session
Description Protocol (SDP), Call Processing Language (CPL).
- Other: Java Network Launch Protocol (JNLP).
Sample Code
The National Institute of Standards and Technology's
Dictionary of Algorithms and Data
Structures (DADS) has links to some of this sample code.
-
Anatomy of Credit Card Numbers.
-
Working with Fractions in Java.
-
Levenshtein Distance Algorithm.
There is a link from the DADS
edit distance page. Various technical and academic publications cite this code, e.g. Martin Del Vecchio et al., Designing a Search Mechanism for Debt Collection, 2006 IEEE Systems and Information Engineering Design Symposium (University of Virginia, April 28, 2006), pp. 168-173; Sigita Misina, "Incremental Learning for E-mail Classification," in Bernd Reusch, ed. Computational Intelligence, Theory and Applications (Berlin: Springer, 2006), pp. 545-554; and and P.J. Naughter, Super SQL Server Systems: Turbocharge Database Performance with C++ External Procedures (Kittrell: Rampant TechPress, 2006, p. 328.
-
Permutation Generator.
There is a link from the DADS
permutation page.
-
Combination Generator
There is a link from the DADS
combination page.
-
Big Square Roots.
-
Greatest Common Divisor Algorithms, Ancient and Modern.
Education
- Paralegal Certificate, Inver Hills Community College (2005), GPA 4.0/4.0.
- B.S. (Computer Science), Central Michigan University (1983), GPA 4.0/4.0.
- Ph.D. (Classics), University of Virginia (1979).
- M.A. (Latin), University of Virginia (1974).
- B.A. (Latin), University of Maine (1972).
Publications
- Literary Trivia (New York: Vintage Books, 1994), with
Richard Lederer.
- "Female Speech in Greek and Latin", American Journal of
Philology 101 (1980) 180-183.
- "Plautus, Stichus 617", American Journal of Philology
98 (1977) 355.
Other Interests