Roger Binns
Email contact: rogerb@rogerbinns.com
At heart I am a deeply technical person and developer. I have written the first line of code for several products
and projects. You can't truly understand a product unless you have also worked on the code. I like to get a good
working product released on time.
Once released I am good at looking after the big picture and have done Sales Engineer, Business Development,
Software Architect, Product Marketing Engineer, Product Manager, Developer and Consultant, usually simultaneously. I
enjoy working with customers and partners, helping to close sales, fight fires, and having a positive impact on
customer implementations and experience. I complete the feedback loop to internal development and product management
with what worked well, considerations of future functionality, and areas of new potential including development of
prototypes, new code, bug fixing, custom development, infrastructure and tools.
I am located in the San Francisco Bay Area in California (Santa Cruz), and can legally live and work anywhere in
the USA and European Union.
I prefer small companies/startups and open
source development methodologies which call for using the best people available anywhere in the world, total
transparency, and strong tools for collaboration and communication. Ideally I'd also want to work on and with open
source software.
RELEVANT SKILLS INCLUDE
-
Business Development: Working with business oriented people on technical issues, and technical people on
business issues, both internally and externally.
-
Architecting, designing, implementation, logistics and consulting for network oriented products.
-
Product Management: Study of potential new and existing features, use cases, requirements and specification
authoring, feasibility studies, estimation and prioritization, managing bug tracking.
-
Extensive programming experience: System and network level with some graphical user interface. Most recent
experience is Linux, Windows and Android and past includes many flavours of UNIX and Windows.
-
Programming languages: Extensive experience of C, Python, shell languages, Internationalization (UNICODE and
locales) and working knowledge of C++, Javascript and Java. Prior experience with assembly, TCL, PHP and
others.
-
Internet/Intranet: Implementation and interoperability with many protocols including mail (MAPI, IMAP, POP,
SMTP), news (NNTP), WWW (http, AJAX, JSON, REST), files (ftp, CIFS/SMB, NFS), directory services (LDAP), DNS,
security (SSL, SSH) and display (RDP, X11).
WORKING HISTORY
|
January 2008 - present
|
Consulting at startups
Building infrastructures and plumbing together tools for evaluating and proving the ideas, and showing
partners and investors what can be done and general product development. This required rapid development and
working robust systems, responding quickly to questions and suggestions and coming up with ideas and
feedback. I implemented server parts, web and Android interfaces.
Audio related startup
- 3 different projects: voice controlled Android app, generalized audio matching and
discovery/interaction with a large amount of media content.
- All implemented via a server farm for processing, search and personalization with Android clients for
user interaction (with some general web clients).
- Implemented server code in Python with some C, shell scripting and Octave (Matlab)
- Implemented client code in Python for text/tools, Java for Android and Javascript (jQuery/jQuery-mobile) for web
- Using MongoDB as a database, memcached for transient storage and Gearman
to coordinate and scale tasks
- HTTP system interfaces (REST) with web and command line clients with text, JSON and HTML
presentation
- Plumbing in 3rd party components such as voice recognition libraries, signal processing, multimedia and
full text search
- Development and refinement of algorithms, including some that will be patented due to their novelty in
the field of audio matching.
- Import, cleanup, synchronization and matching of gigabytes of partner and internal data
- System administration
Mobile advertising related startup
- Developed a system that augments an existing packaged application with advertising system, so customer
doesn't have to make any changes to their Android application.
- Code injection to track and control application audio behaviour and visibility
- Extensive configuration, reporting and analytics (Google)
- Server side conversion pages (Google App Engine)
|
|
January 2007 - December 2007
|
Devon IT
Consultant/contractor reporting to CTO
I was brought on to do product management for the Devon Client Connection Manager. The Connection Manager
provisions and manages connections between thin clients and blades using Teradici chips that provide a high
quality remote desktop experience. After doing initial roadmaps etc, I did development work to help bring the
product to initial release and to ensure everything was covered.
- Initial product roadmap, admin web interface prototype, initial administrator visible component
specifications
- Critique of partner products and protocols (security, future capabilities, interoperability with
networking)
- Designed and drove changes in partner product to drastically simplify initial setup and configuration for
customers, resilience to network and administrative changes
- Got a wiki up and going (trac), put in lots of content that wasn't being recorded anywhere
- Architecture for the various components
- Protocol specifications for intercomponent communication
- Found numerous bugs in components, fixed some serious ones (C++, QT, strace, ltrace, valgrind, gdb)
- Implemented Apache module (C, Python), REST style public interface (text, JSON, XML)
- Implemented CLI talking to REST (Python)
- Implemented web administration interface talking to REST (Javascript, YUI toolkit) and admin components
(Python, Genshi)
- Implemented an automated testing system linked to trac tickets to repeat bugs, catch regressions etc
(Python, unittest, Selenium RC, Javascript)
- Implemented a single command product build system that produced a VMWare appliance as output (Python,
ccache, VMWare Server, Ubuntu debootstrap)
- Implemented a control console application inside appliance (Python, whiptail)
- Implemented an automated tester with device emulators (Python, nlite Windows installation customization,
VMWare Server)
- Implemented a core dump catcher which grabbed all relevant information into a dump file (eg open files,
memory maps, core image) and build system component for getting backtraces (Python, gdb scripting)
|
|
September 2004 - August 2006
|
Juniper Networks (acquired
Peribit)
(Diverse responsibilities) Product Management Group, Application Acceleration
Products
Peribit Networks Consultant reporting to CTO
A substantial part of my effort was focussed on acceleration for the following protocols for the WX/WXC
platforms (in addition to some others not made public):
- SMB/CIFS - Microsoft file sharing protocol
- MAPI - protocol between Outlook and Exchange
- HTTP - browser based applications
- SSL - secure sockets layer
Complete lifecycle for features/functionality
- Invention
-
- Brainstorming of new ideas for enhancing existing product functionality and future functionality
- Techniques to accelerate various protocols and applications from customers
- 2 patent applications
- Subject matter expert on Microsoft protocols and products
- Product Management
-
- Assisted product managers
- Authored product requirement documents (eg for SSL acceleration)
- Implemented prototypes to judge user experience and feasibility (eg SSL acceleration proxy)
- Estimates of development effort and risk to guide product management and business development
- Development
-
- Architecture discussions as well as guidance on implementation issues
- Developed tools to analyse behaviour of our own and other products such as graphical display of file
segment caching, heuristics for improving hit rates, csv output from Wireshark traces for pivot table analysis in Excel.
- Reverse engineered MAPI protocol, wrote Wireshark MAPI decoder
- Testing/QA
-
- Tools that caused degenerate behaviour to investigate edge cases and proper handling
- Test plan drafts to help QA ensure they provided complete test coverage
- Sourcing of testing tools, both free and commercial to help ensure compliance
- Authored benchmarking tools to evaluate performance (eg Microsoft Office automator, driving Internet
Explorer)
- Marketing
-
- Initial drafts of material pushed out by product marketing
- Found flaws in competitor products (architectural and bad bugs), documented flaws in white papers
with test cases
- Customers
-
- Assisted support with customer issues
- Assisted escalations engineering with customer issues
- Gathered technical information from customers to establish how their protocol and application
problems could be solved, producing reports on suggested solutions (go back to invention)
Communication
- Maintained Wiki for product group, used by product management and development, authored extensions such
as display of CSV data and source code highlighting (MediaWiki)
- Authored numerous pages
- Worked across internal product groups on issues affecting multiple product lines currently and in the
future
- Podcast on Windows Vista and WAN Optimization
- Active participant on internal discussion and help groups with sales engineers
Business development
- Worked on technical side of business relationships with 3 major software companies
- Investigation of product fit and potential modifications to enhance joint value
Developer productivity
- Evaluated static analysis tools
- Analysis of moving from SourceSafe to Subversion source code control system. Presentation to engineering,
ran Subversion server and authored/enhanced scripts to migrate data.
- Spread usage of VMWare and Virtual PC in development and QA
|
|
July 2003 - December 2004
|
Various companies
Consultant
MainSpring Ventures
Background research and analysis.
Unfunded local startup
(October 2003 till Sept 2004)
VP, Architecture, Design, proof of concepts and prototypes
-
Helping with company strategy moving towards getting funding
-
Architecture of distributed multi-media environment
-
Development of prototype software: PocketPC 2002 Phone Edition, Windows XP Embedded, data and SMS,
C++/MFC/Python, Linux web backend (PHP, Python, Perl and XML-RPC)
|
|
August 1993 - June 2003
|
Tarantella Inc, (Formerly IXI Limited, a division of The Santa Cruz Operation)
Cambridge, United Kingdom and then Santa Cruz, California
Various awards such as Employee of the Year, President's Club, Employee of the Quarter
Responsibilities:
Business Development Manager and Solutions Architect - Strategic Alliances Group
-
Working with strategic partners to develop business and technical relationships, to the benefit of joint
customers and partners.
-
Technical consulting on customer projects.
-
Feasibility study and prototype implementations of potential projects.
-
Managing high priority customer issues, onsite visits.
-
SunTone qualification of the Tarantella Enterprise product
Previous responsibilities:
Software Architect - Development Division
-
Architecture, design and implementation of products.
-
Member of company wide Technical Strategy Group.
-
Training world-wide, On-site consultancy.
-
Reverse engineered Microsoft Terminal Services protocol (RDP) and file and print protocol (SMB).
Products:
Tarantella - Three-tier application broker
-
Tarantella is software that sits between an application server and a user with a web browser. It takes
the application display protocol and provides a optimized display for the user. Additionally by acting as
an intermediary it is possible to provide session suspend and resume, enhanced security, load balancing and
similar functionality. I was the architect for the non-display side from inception through shipping, later
taking on roles in sales, marketing and business development. The company renamed itself around this
product. Version 1 was implemented in C++ with version 3 predominantly in Java. (Version 2 was just a
marketing rebadge of version 1.)
VisionFS - SMB/CIFS server
-
Running on Unix, VisionFS was written from the ground up to provide Windows file and print services. It
was written in C++ and was the first C++ project for our division. There was an extremely strong emphasis
on ease of use and data integrity. Much of the framework code was later used to kickstart the Tarantella
project. I was the architect and team lead from inception through shipping.
IXI Mosaic
-
Many enhancements to NCSA's Mosaic web browser to add (then original) features such as integration of
help and preferences, client side scripting, drag and drop and URL links. Implemented in C with TCL
scripting.
IXI Panorama
-
Highly configurable and usable panning window manager based on the Motif Window Manager. Implemented in
C with TCL scripting.
IXI X.desktop
-
Porting and maintenance of IXI's flagship desktop product. Implemented in C with proprietary
scripting.
|
|
1989 - 1993
|
While at University I did 3 six month work placements (required as part of the degree).
-
1990 Contracting agency: Mostly data entry, but also IBM AS/400 and Cobol as well as supporting various
external customer DOS and WordPerfect environments.
-
1991 ICL: Ported a UNIX virtual terminal protocol terminal emulator (it's all part of the OSI stack) to
Windows 3.0 and later 3.1.
-
1992 ICL: Wrote an email gateway on UNIX between Novell's MHS system and X.400. Did third level support
for Netware for UNIX.
|
EDUCATION
Brunel University. BSc (Hons) Computer Science (Upper Second)
Uxbridge, London, United Kingdom (1989-1993)
Waterford Kamhlaba United World College of Southern Africa International Baccalaureate
Mbabane, Swaziland (1983-1988)
OPEN SOURCE/PERSONAL PROJECTS
I started all these projects to solve various problems for myself, and provided them as open source.
Java Mini Python
http://code.google.com/p/java-mini-python
- Implements a subset of Python in Java to allow for richer configuration and dynamic control.
- Intended for Android by works on all Java implementations.
- Implemented in Java and Python.
APSW - Another Python SQLite Wrapper
http://code.google.com/p/apsw
-
The only complete Python wrapper for the SQLite embedded
database.
-
Implemented in C. Works on Windows, Linux, Mac and other platforms.
-
Downloads are around 20 per day. Package is included in most Linux distributions.
BitPim
http://www.bitpim.org
I was the founder, project manager and lead developer. Leadership has since successfully been handed over to
someone else and I am no longer involved.
-
An open source program that allows for managing of of phonebook, calendar, wallpapers and ringtones with CDMA
cellular phones. (Started with LG VX4400, now incorporates many other models and manufacturers). Ships on
Windows, Linux and Macintosh.
-
Integration with other APIs and data sources (eg USB, Windows Address Book, Outlook, vCards, Evolution)
-
Downloads over 1,000 per day (about 6.5 million total). Used to be in the top 200 most active projects on
SourceForge.
-
Implemented in Python with wxPython GUI and some C extensions.
-
Reverse engineered diagnostics protocol used in Qualcomm CDMA chipset phones
-
Devised methods to update functionality on the phone (eg calendar, wallpapers and ringtones) that other sync
programs did not support
UML Builder (Dormant)
http://umlbuilder.sourceforge.net
-
An open source program that lets you install a conventional RPM based Linux distribution for use with the User
Mode Linux (UML) kernel. The goal is to make it as close as possible to what the distribution would be like on
real hardware. Ships on Linux. No need to be root on host.
-
Downloads in the range of 5-15 per day (~10,000 total)
-
Implemented in Python with both commandline and Tk based GUI
-
Correctly configures networking in new system
-
Includes a purpose built Xnest based X server so new system can be run in graphical mode on existing
desktop
-
miniroot standalone system that allows for operations done by guest system that would otherwise
require root access on host.
IMAP Spam Begone
http://wiki.github.com/ook/isbg Leadership has successfully been
handed over to someone else.
-
An open source script that runs SpamAssassin against an IMAP based Inbox and moves spam to a seperate IMAP
folder. Shipped as source, users have it working on Windows, Linux and Mac.
-
About 150 downloads a month
-
Implemented in Python, no user interface (designed to run as cron job)
-
Keeps track of already scanned messages, can be configured to cache passwords, minimize bandwidth consumption
and various other options
PATENTS
US6362836 Universal application server for
providing applications on a variety of client devices in a client/server network. Joint inventor.
US7792845 Network acceleration device having
logically separate views of a cache space. Sole inventor.
US20060004632 Apparatus and method for
distributing audiovisual content to a point of purchase location. Joint inventor.
I strongly believe that software patents should be reformed or abolished.
REFERENCES
Unsung heros of open source, John
Udell column at InfoWorld.
Linkedin at http://www.linkedin.com/in/rogerbinns