Resume

Contact Information

Donnie Cameron

Objective

  • To design, implement, and deploy systems that host billions of unstructured or loosely-structured records and support millions of users
  • To gravitate toward Lisp and newer programming languages that produce reasonably fast code and that efficiently support functional programming, lexical closures, meta programming, homoiconicity, and other such features
  • To become more exposed to machine learning, especially deep-learning neural networks

Programming Languages

Every-day use

  • Common Lisp
  • PHP
  • Modern Perl, Moose, Higher Order Perl, Object Oriented Perl
  • Elisp
  • Common Lisp
  • SQL
  • BASH/SH/Shell Scripting

Used extensively in the past

  • LiveScript/CoffeeScript/JavaScript/JQuery
  • XQuery and XPath
  • C# (Windows Desktop Applications)
  • .NET Framework Windows Forms
  • Visual Basic .NET
  • Visual Basic
  • PHP, Object Oriented
  • 6502/6510 Assembly Language

I use or have used many other other languages, including C, C++, Ruby,
Python, TCL, Visual J++, and Scheme, but not extensively and not
recently.

Platforms

  • Unix-like environments – Linux (Ubuntu, Mint, Red Hat, Debian, Mandrake, SuSE, and many more), FreeBSD, Solaris. Can configure a Linux server from scratch for Web, Email, load balancing, caching, database, and many other purposes.
  • Windows environments – Windows NT, 2000, XP, .NET Framework
  • AWS (EC2, Lambda, S3, Glacier, RDS, DynamoDB, VPC, CloudFront, Route 53, IAM, Machine Learning, and API Gateway), Linode, and others.
  • Docker

Databases

  • MySQL
  • PostgreSQL (My favorite relational database)
  • Mark Logic Server (native XML database)
  • Berkeley DB XML (native XML database)
  • Oracle
  • SQL Server (But, I haven’t used this in a long time)

Server Applications

  • Apache, Apache Virtual Hosts, and many other Web servers
  • Socialtext, TWiki, Confluence, Drupal, WordPress, and many other Wikis and CMSs
  • Subversion, Git, and other revision control systems
  • Sendmail, Postfix, Exim, Dovecot, and many other server-side mail software
  • Virtual Machines, VMware, VirtualBox, QEMU, all manner of virtualization
  • Many other server applications including some that I’ve developed myself

Natural Languages

Fluent in English and Spanish. Outstanding communication skills in both languages. Can write and assemble large complex documents such as specifications and requirements that are organized, detailed, and clear. Prolific Wiki contributor.

Experience

I’ve had never had break in employment

Present – Jan 2014

Eros Now / Lead Software Engineer

Eros Now has millions of users and aims to be the NetFlix of Bollywood. I’ve been at the center of all major architectural changes since I joined the company, including many changes to improve the scalability and security of our Web site and API servers. For example, I moved us to Akamai, moved our production environment into a VPC, integrated with our systems with a DRM provider, moved us closer to autoscaling, and moved us to Akamai. I worked on the back end to provide new features, including Recently Watched, Continue Watching, DRM Download, and 14-day Trial. I developed a test framework for the APIs, set up Jenkins, and Dockerized the development environment. Programmed extensively in PHP, Perl, and to a lesser degree, JavaScript and NodeJS. Configured services of all types, including MySQL, Apache, HAProxy, Varnish, Memcached, EC2, ELB, S3, Route 53, DynamoDB, Lambda, CloudFront, Akamai, Jenkins, and New Relic. I’m the technical backstop at Eros Now.

Dec 2014 – Nov 2012

Symphony Teleca / Socialtext / Senior Software Engineer

Developed new features for Socialtext, the most advanced wiki software in the world. Most of my programming was in LiveScript (like CoffeeScript) with JQuery, Modern Perl, and PostgreSQL. All new features were build as RESTful Web services with front end code that uses those Web services. Extensive use of JSON. Began a move to slowly replace the Perl back end with Node.js, so we can use LiveScript on the back end. Iterative, agile, test-driven development using GitLab, a Kanban board, and daily stand-up meetings.

October 2012 – October 2010

Vindicia / Senior Software Engineer
Developing software to implement new features for CashBox, Vindicia’s flagship product. Worked with Oracle and Perl. Deployed 6 major new features. Deployed dozens of minor features and bug fixes. Crafted hundreds of scripts. Migrated production system from RPath to RedHat Linux.

October 2010 – October 2004

R.R. Bowker, L.L.C. / Senior Programmer Analyst
Developed systems that manage tens of millions of records and that handle millions of requests per day.

  • Developed a Web application that uses advanced techniques including artificial intelligence, text-vectorization, and word-relevance techniques to extract meta data from the full text of books. (Perl Catalyst, SBCL Common Lisp, Mark Logic XQuery.)
  • Was the lead programmer and designer for the BIP-2 (Books In Print 2) Query Service, which powers the Books In Print 2 Web site and other products.
  • Was the lead programmer and architect for conversion of Global Books In Print product to native XML database. Global Books in Print is the standard catalog of all books in print. (modperl, Java, XQuery, XSLT, CSS.)
  • Was the lead programmer for the development of the BBAS product, which is a complex product that allows libraries to evaluate their book collections. (Perl, SQL.)
  • Architect and lead programmer for RESTful Web services for book meta data, including an image service. (Perl, XQuery, JavaScript, ImageMagick.)
  • Contributed code for rclweb.net: all browsing areas, all My Account and settings areas, all interfaces to the Oracle and Mark Logic databases, database design. (PHP, Perl, XQuery, SQL.)
  • Developed hundreds of utilities and modules to accomplish various administrative tasks. (Perl, PHP, XQuery, C, C#, ASP, SQL, others.) * Configured many Linux hosts that are currently in production and many more that currently serve as development and staging platforms.
  • Instituted a wiki that the entire company uses as a knowledge base, and as a planning and collaboration platform.
  • Introduced a Subversion revision control repository and helped move all project development to this repository.
  • Documented significant portions of Bowker Systems.
  • Proposed a number of standards and conventions that were adopted and remain in use at the company.

October 2004 – January 2002

Solomon Street, Inc. / Programmer, System Administrator, Developer

  • Designed, deployed, and maintained all Solomon Street, Inc. services.
  • Developed a Perl/PostgreSQL database-driven content management system called Squiggly that allowed Web developers to create Web objects or to derive Web objects from existing ones (inheritance). The system had functionality that was similar to today’s Drupal, but was easier for customers to use.

January 2002 – March 1997

Contract Work-Microsoft Corporation / Technical Editor and Companion Code Programmer
Edited (and, in some cases, contributed code) for the following publications:

  • Programming Windows with Visual Basic .NET (Charles Petzold)
  • Microsoft Visual C# (Core Reference) (Mickey Williams)
  • Programming Microsoft .NET XML Web Services (Damien Foggon et al)
  • Microsoft .NET Compact Framework (Core Reference) (Andy Wigley et al)
  • 101 Microsoft Visual Basic .NET Applications
  • Advanced Windows, 3rd Edition (Jeffrey Richter)
  • Network Programming for Windows (Ted Pattison)
  • Inside Direct3D (Peter Kovach)
  • Programming Bots, Spiders and Intelligent Agents in Visual C++ (David Pallmann)
  • Programming Distributed Applications with COM and Microsoft Visual Basic 6.0 (Jones and Ohlund)
  • Microsoft Visual J++ 6.0 Developer’s Workshop (Shannon Dunn)

2001 – 2000

Mindrigger Technologies / President and Founder

  • Developed Photolacer, encryption and steganography software that was introduced at COMDEX 2001.

1996 – 1994

NetStar, S.A., Argentina / Director of Operations, Lead Developer

  • Designed and built a working prototype of an intelligent multipurpose terminal based on an Intel 486 chip using DesignCAD 3D and later AutoCAD.
  • Successfully planned, developed, scheduled, and executed the education of over 9000 computer-illiterate operators.
  • Using Visual Basic and C++, I developed a proprietary GIS system (Cordoba, Argentina) to keep track of the points of sale.
  • Planned and developed (making heavy use of Microsoft Access, Visual Basic, and Microsoft Office) an integrated system that tracked or managed the following operations: Inventory, Training, Hardware and Software Testing, Inter-Office and Inter-Corporate Communications, Operator/User Database (10 operators, 9000 users).
  • Located a buyer and negotiated the sale of NetStar for $6.2 million dollars.

1994 – 1992

Home Partner, Inc. / President and Lead Developer

  • Developed a home automation system prototype that permitted electrical appliances to share memory and processor resources of a PC allowing for conservation of energy, security, safety, and comfort in the home using the home’s existing electrical wiring.

1992 – 1988

United States Naval Nuclear Power Program / Engineering Laboratory Technician

  • Responsible for maintaining the proper nuclear water chemistry of ship’s propulsion plant and for radiological controls.
  • Computerized work lists, forms design, and other paperwork, automating a significant number of processes in the optometry lab at the U.S. Naval Hospital in Naples, Italy.
  • Computerized the inventory and tracking of radiological controls instruments utilizing a natural language system. The database could be queried and updated in simple English sentences.
  • Served in the Red Sea during the Gulf War.

Education

1988 – 1990: Naval Nuclear Power School

  • Mechanical Operator, Nuclear Propulsion
  • Engineering Laboratory Technician (Nuclear Water Chemistry and Radiological Controls)

1986: Louisiana State University – Computer Science

1985: University of Maryland, College Park – Computer Science

References

References available upon request.

Notes