resume of
Kins Collins, M.S. - Macintosh Software Engineer
kins_collins @ mac.com [remove spaces] (650)298-8560
Located in south SF Bay Area (Silicon Valley). I can work at customer's
site or at home, but relocation out of Silicon Valley is not possible.
Redwood City --- Silicon Valley, CA
--------------------------------------------------------------------------------
Twenty years programming experience -- incl. 12 years Mac. Noted
for clean design -- code that's easy to understand, maintain,
modify. Now developing exclusively with Cocoa and Xcode.
Seeks position creating applications by applying Apple's Cocoa
application-frameworks technology to your subject area. The
tools I use are the Xcode development system, Interface Builder,
Cocoa (Foundation & AppKit libraries), and various performance
and debugging utilities.
My earlier work was done in C++ using older Mac tools like
Metrowerks and PowerPlant and involved TCP/IP, HTTP, client-
server apps, and the Internet, also user-interface design and
device-drivers. Today all my work is done using the Objective-C
language.
Somewhat knowledgeable in Java and QuickTime. Conversant with
Projector, SourceSafe, and Perforce source-control software. I
am also interested in OOA/OOD.
I aim at pure object-oriented programming based on the Model-
View-Controller design pattern. So if you have a programming
project for Mac OS X and want the most modern tools and concepts
to be used (Cocoa), contact me.
Currently available.
--------------------------------------------------------------------------------
NOTE TO RECRUITERS: I am NOT a Microsoft Windows programmer.
--------------------------------------------------------------------------------
EMPLOYMENT HISTORY
Feb. 2006 - Feb. 2007 Consulting Software Engineer, 4G Color, Inc.
o Development Contract. Mac OS X Cocoa project. Developed using Xcode & Cocoa.
I worked on 4G Color's image-processing application called ColorBender
from its earliest stages through to its 1.0 release at MacWorld 2007.
I added significant parts to the overall program, including converting
the app to universal binary, making an Apple installer for it (also
the app's icon), designing much of the security and authentication code,
implementing code for reading and writing image files on disk, helping
with the print routines, establishing team conventions for identifier names,
helping the development team use the Xcode tools more effectively, giving
guidance on Cocoa and Objective-C questions, designing and implementing
classes used to manipulate program-usage counters (with persistence) and
to hold and store miscellaneous variables.
I was not involved with the image-processing algorithms themselves, however,
which were written in C. Besides using the Cocoa libraries in my coding, I
also used CoreFoundation, Quartz 2d, CoreGraphics, and ImageIO.
2003 - 2005 {Intensive, systematic self-study of Cocoa. (2-1/2 years)}
o I have learned Cocoa, Apple's advanced object-oriented programming framework.
I was determined during Silicon Valley's economic downturn, with its dearth
of Macintosh contracts, to make use of the contract-free period to enhance
my programming skills and learn Cocoa. Cocoa has a steep learning curve,
though once mastered, the system significantly increases a programmer's
productivity, Apple claiming by a factor of 5 or 10.
Regarding the learning curve, as a former university lecturer I have no
trouble independently absorbing big new areas of subject matter. Yet had
I not been given this "wonderful gift" of an extended period between jobs,
I would not have had the free time to immerse myself so completely in the
study of Cocoa and learn it so thoroughly.
I have read some or all of the eleven books on Cocoa, doing all the
programming projects in the parts I read; the code I wrote for these
projects constitutes a resource I can tap into when faced with similar
programming tasks in the future.
Xcode is required for Cocoa programming.
2002 - 2003 Consulting Software Engineer, TekSolutions. (12 months)
o Development Contract. Mac OS X device-driver project. Developed using Xcode
predecessor (ProjectBuilder).
USB user-level driver for a biosensor security device (finger-print reader).
Porting from Windows. For Mac OS X 10.2. The contract was performed by means
of telecommuting. Used ProjectBuilder/InterfaceBuilder development system.
2001 Consulting Software Engineer, TrueSAN Networks. (2 months)
o Development Contract. Mac OS X device-driver project. Developed using Xcode
predecessor.
My task was to design and code device-driver components for a host OS X
server in a multi-platform Storage Area Network system (SCSI/Fibre-Channel
disks). I designed an "I/O Kit" kernel extension (Mac device-driver) that
acted as a wrapper around TrueSAN's common-code, virtualization module, the
latter being identical on the various host operating system platforms.
(Unfortunately, because of prevailing economic conditions, the project was
cancelled before I could complete my part of it, and TrueSAN has since
filed for bankruptcy.)
2000 - 2001 Consulting Software Engineer, eMotion Corp. (3 months)
o Development Contract. Collaborative media-creation software group. Developed
using Metrowerks.
The product I worked on was eMotion's QuickTime-based media-collaboration
client ("Annotation Viewer") for Macintosh. My job was to add functionality
to this client/server application which allowed users to attach multi-media
files to existing "Projects" residing on an NT server.
Hence I programmed --
(1.) an XML parser to decode the list received from the NT server containing
the project names and their attributes,
(2.) the user-interface for selecting a project and the files to be added to
it,
(3.) the user-interface to set values to the metadata attributes of the
selected project,
(4.) the upload code that, using HTTP, uploads the metadata and the media
files to the NT server. I used the Macintosh OS 9 Toolbox's ListManager,
ThreadManager, also TCP/IP, HTTP, etc.
The existing Win32 version of the client served as the spec for (a.) what
my component should look like, and (b.) how it should behave, though no code
was shared. So in that sense this was a porting job from Windows to Mac.
The Windows/Macintosh product team consisted of six programmers. The Mac
engineers used C++, Metrowerks, CodeWarrior, and PowerPlant. The Windows
people used C++, Visual Studio, and MFC. There were frequent consultations
between the two groups.
As eMotion's Mac troubleshooter, I also modified their existing HTTP-based
download code in the Macintosh client, cutting to 1/4 the time needed to
download a media file from eMotion's NT server database.
Metrowerks, CodeWarrior, and PowerPlant.
1999 - 2000 Consulting Software Engineer, Pixera Corp. (12 months)
o Development Contract. Macintosh software group. Developed using Metrowerks.
Designed and coded the user-interface for a high-end digital video camera
system for microscopes. The user-interface consisted of an image window for
the camera display surrounded by push buttons, popup menus, and sliders for
user control of the various camera characteristics. The user could set such
things as shutter speed, sensitivity, color balance, gamma of each color
component of the image, etc. There was also a preferences dialog with
multiple panels. I made extensive use of templates.
I also designed the API and messaging system that allowed for realtime com-
munication between my GUI and the other programmers' image-processing and
device-driver code. By means of this API, changing any of the GUI's controls
resulted in immediate updating of the camera display in this multi-threaded
application. Further, by pressing a "capture" button, the user could create
a still image, which could be further manipulated and/or stored on disk.
The Macintosh team consisted of three programmers. Used C++, Metrowerks,
CodeWarrior, and PowerPlant.
1999 Consulting Software Engineer, OneWorld Systems (formerly
Global Village). (5 months)
o Development Contract. Developed using MPW & Metrowerks.
OneWorld Systems' product consists of fax imaging software on individual
client machines and a networked "Fax Server" box available to all
the clients. The server connects to the Internet or to the telephone
network and thus replaces the one-modem-per-CPU idea. I rewrote the
product's setup assistant for Mac clients, which prompts the user for
personal information and network configuration settings. Emphasis was
placed on making the GUI attractive and the user's input correct (by
doing on-the-spot checks). C++, Metrowerks, CodeWarrior, PowerPlant,
AppleTalk, Mac device-drivers.
1998 - 1999 Consulting Software Engineer, Sentius Corp. (3 months)
o Development Contract, RichLink Netscape-plugin for Mac. C++, Metrowerks,
GUI.
1998 Consulting Software Engineer, CyberSource. (4 months)
o Development Contract, SmartCert Software Development Group. Developed
using Metrowerks.
- Part of a two-man team that wrote a Macintosh client for an electronic
software-purchase and download system for the Internet. My responsibilities:
(1) the assembling or "packing" module that the software producers will
use to crunch together into one big file a whole directory-tree branch
of files and folders, which file then goes into a database of
downloadable products on the CyberSource server, and
(2) the downloading module on the purchaser's machine -- using HTTP
protocols on top of OpenTransport (TCP/IP) -- which downloads the one big
file in streaming mode and "unpacks" the file on the fly into its
constituent files and folders, complete with all their attributes.
This was a 4 month contract. Metrowerks' PowerPlant was used throughout.
1996 - 1997 Consulting Software Engineer, Apple Computer. (18 months)
o Development Contract, R&D Information Systems and Technology Group (IS&T).
Developed using Metrowerks.
- Contributed new functionality (file enclosures) to Jade, Apple IS&T's
standard client-server development frameworks. Jade is the basis for
many internally-used programs, such as RADAR, Apple's bug-tracking
system. I was responsible for designing and coding the low-level
communications modules (TCP/IP and AppleTalk), including API and
network packet code. Used Metrowerks CodeWarrior and PowerPlant.
The 18-month contract required close cooperation among the five
team members.
- Automated the team's build process using AppleScript.
1994 - 1996 Senior Software Engineer, Asante Technologies. (2 years)
o Lead Development Engineer, Macintosh Group. Developed using Symantec's
C++ IDE & Metrowerks.
- Took over an existing large application (200,000 lines of code) written
in C and Think C++, extended and enhanced it. The application was a network
management program for controlling Asante smart hubs, bridges, and switches
using SNMP protocols on top of TCP/IP. I was equally at home coding the
user-interface modules, as I was working on the low-level system code.
- Member of the cross-platform team that designed and developed a Web-
browser/HTML-server version of the network-management program
(IntraSpection), which runs on all platforms. My code used C++ templates.
1994 Consulting Software Engineer, Intuit. (3 months)
o Development Contract, Quicken Macintosh Group. Developed using early
version of Metrowerks.
- Prototyped an extension to the Quicken personal accounting package.
For doing this I used Metrowerks' new 68K/PPC development environment
(CodeWarrior) and its application frameworks (PowerPlant).
- Analyzed the Quicken sourcecode, and documented where and what
(in detail) needed to be done to upgrade the code to the PowerPC Macintosh.
1993 - 1994 Consulting Software Engineer, ICON Medical Systems. (4 months)
o Development Contract, Image-Server Software Group. Developed using MPW.
- Designed, coded, documented, and tested an update-notification server,
together with a client API. The server stored clients' requests that
they be notified whenever certain items changed in a related medical-
image database. The system was based on AppleTalk networking protocols
and AppleEvents. Nine-thousand lines of code; written in MPW C++. The
project was finished on time.
1989 - 1993 Software Engineer, Apple Computer. (4 years)
o Development Engineer, Client-Server Software Group. Developed using MPW.
- Designed and implemented the AppleShare Remote Administration API
library using AppleEvents. This network API was developed for the manage-
ment of User & Groups, Access Privileges, Folder Copying, and runtime
Monitoring of the file server. Written in MPW C++.
- Designed and implemented an extensive command line application for
testing and performance tuning of the AppleShare Remote Administration
API library and server. The tool featured a command parser, a help
system, multi-level debugging modes, and input from either keyboard,
command files, or AppleEvents.
o Test-Developer, Networks & Communication Group. Developed using MPW.
- Designed and implemented automated test software for AppleShare using
sophisticated MPW scripting, VirtualUser [an Apple test language],
and C.
1985 - 1989 Senior Software Engineer, Cumali Associates. (4 years)
Developed using UNIX tools.
- Based on SUN-3 workstation. Was one of two programmers implementing
a custom application incorporating a state-of-the-art air-conditioning
simulation/optimization model with quasi-realtime control, for high-rise
office buildings. Played key role in the complete development cycle,
from conceptual design to programming the database, graphics, and
communication modules (C).
- 2d/3d color plotting-program (C & Pascal), driver for plotters.
1984 - 1985 Programmer, MicroSpectrum Software International.
Developed using UCSD Pascal p-System.
Based on Apple III, Corvus network. Vertical job-shop application.
Programmed the module to display and manipulate a job-shop's order
scheduling (operations on lattices and trees, graphics).
1982 - 1984 Lecturer, Univ. of Maryland, Eur.Div.,Heidelberg, Germany.
& Taught: "Structured Programming", "Pascal", "Computer Math"
1975 - 1980 (Computer Science Dept.), "Formal Logic" (Philosophy Dept.).
1980 - 1982 Lead Programmer, Univ.of Maryland,Eur.Div,Student Recs.Dept.
Based on HP-3000. Designed the student-records database (for 100,000
students). Coded various programs for the system. Guided the other
programmers (COBOL).
--------------------------------------------------------------------------------
|
Visitors since 22 jan 98 |