Lincoln Randall McFarland

a.k.a. Randy

Updated: 2021 Dec 27

Contact Information

  • Web:
  • Email:
  • Phone: (650) 906-4958
  • Location: Mountain View, CA
  • Education: B.A., Physics, University of California at Berkeley, 1985.

Computer Experience

I enjoy creating new software tools and making old ones better. To me that means finding the way to use the language to describe the problem you are trying to solve that is as clear to the machine that runs it as it is to the programmer who comes after to maintain and, hopefully, build on it. I like to build good test automation. It frees you to quickly make big changes with out fear of breaking something and not knowing about it until Murphy's Law tells you.

Most of my experience is with Python and C/C++. I have a good working relationship with JavaScript, Java, git, SQL languages (PostgreSQL and MySQL), no-SQL languages (mongo), and various Unix shell scripts. Examples of my code are available in my github repo: GitHub/lrmcfarland.

Work Experience

Company Mainspring Energy
Title Senior Software Engineer
Department Software and Controls
Employed August 2021 - present

I added blob size and device id to our BigQuery data sets with terraform. I extended find and list to use device id in the python tools that monitor our generators on AI Notebook. I created a BigQuery loader tool in python to load data from generator gateway telemetry files to backfill missing steaming data. I created a streaming telemetry monitor as a GCE cloud service using a python flask server to alert devops if we have not seen telemetry from a generator after a specified time.

Company LOKKER
Title Senior Engineer
Department Engineering
Employed November 2020 - April 2021

I crossed a fluentbit golang plugin template with a Google BigTable “hello world” and created my first golang product without knowing golang, fluentbit or BigTable when I started. I had them all building in a docker container by the end of the week. Knowing c was very helpful though.

I created alpine python docker container with a flask server that reads a JSON config file of git repos to load and maintain web tracking data in a Redis database. I also created a configuration server, again using alpine python with flask in a docker container, to monitor a Postgres database for changes in one process and return the latest configuration data via an http API in another. I also added a JavaScript class to collect whois information from various sources and normalize the different formats.

I lead the Okta integration effort with our scanner product to protect our routes with OAuth2 authentication. I also added JavaScript functions with axios to send Salesforce notice of new accounts and use their email template API to reply to users with links to their scan results along with our marketing information. I also created JavaScript and python test examples along with documentation about how this works in our environment.

Company vArmour
Title Sr. Development Engineer
Department CTO Organization
Employed February 2017 - November 2020

I joined vArmour to help extend their Distributed Security System (DSS) to support micro-segmentation of container networks. I created a simple alpine-python based flask server I called squawker. This ran first in a container but later I "back ported" this to a CentOS VM to test with our original product. The squawkers have an API that let me POST a JSON list of other squawkers to talk to each other in several protocols: http, sftp, iperf3 and the ability to easily add anything with a Python client.

Company SilverTail Systems (now EMC/RSA/Dell)
Title Principal Software Engineer
Department Research and Development
Employed November 2011 - January 2017

For the SilverTail product I created a collection python tools to analyze and synthesize network data, from HTML log files to tcpdump pcap output. I used python libraries, like scapy, and TCP/IP tools like Wireshark create test data. The test data sets are used to debug the scoring algorithms, test the limits of efficacy, measure performance, support unit testing and create demos.

Our development environment is Agile, test driven development and object oriented. It is mostly in C++ and Python. I also implement algorithms, fix bugs and mentor developers new to Python.

Company CDNetworks
Title Sr. Software Engineer
Department Back-end Infrastructure
Employed April 2011 - November 2011

I created several Python daemons to support CDNetworks back-end infrastructure. This included a core library and the scripts that use it (a customers daily usage calculator for billing and a DNS bind parser). I wrote the CDNetwork's Python style guide (a slightly customized version of PEP8). I also documented the design, wrote the user's guides and work closely with QA to validate the code worked as intended.

Company IronPort Systems (now Cisco Systems)
Title Software Engineer
Department Security Applications
Employed April 2005 - April 2011

IronPort makes a email server appliance. For that, I developed the third generation of our Web Based Reputation Service (WBRS) product used by our web appliances. I wrote the functional and design specs and developed a tool kit of Python/MySQL scripts to generate the reputation updates, test their efficacy and debug their contents. I have implemented a Python based rule weight evaluation utility that applies a gradient descent algorithm to our phone home data to find the optimal set of rule weights.

Company The QSS Group at NASA Ames
Title Sr. Software Engineer
Department Information Physics Group
Employed September 2003 - March 2005

I implemented a new computational framework for atmospheric and surface remote sensing, called CSFSR (Classification of Spectral Features in the Solar Radiation), for the Information Physics Group. I also worked on extending the Signal Processing Environment for Application Development (SPEAD) tool kit for the Neuro Engineering Lab.

Company The SETI Institute
Title Sr. Software Engineer
Department The Phoenix Group
Employed August 2000 - August 2003

I joined the SETI Institute to work on Project Phoenix's Search System Executive (SSE) for the New Search System (NSS), the continuation of the NASA program to observe stars within 200 light years for radio signals. I wrote many applications to support the observation, from the control interface to the telescopes through to the to the database to store the results.

Company Frequency Technology (now Sequence Design)
Title Sr. Software Engineer
Department Engineering
Employed August 1998 - August 2000

At Frequency Technology I worked on the Columbus product, a tool for creating a SPICE model of the parasitic capacitance in the interconnect circuits of integrated circuit designs. I developed several ports of the source code base from Solaris to HPUX and IRIX platforms updating the build infrastructure using Rogue Wave's implementation of the C++ STL.

Company Cadence Design
Title Member of Consulting Staff
Department Multimedia Group
Employed October 1996 - June 1998

As a member of the multimedia group, I developed several modules, in C++, for our Signal Processing Workbench (SPW) product, a graphical tool kit for constructing models of signal processing systems. I also provided documentation and customer support for installing and running the new modules.

Company Trimble Navigation
Title Member of Technical Staff III
Department Land Survey
Employed August 1996 - October 1996

I wrote makefiles to build the source code generated by Rational Rose for the TrimTalk communication product.

Company TIW Systems (Now Vertex RSI)
Title Sr. Software Engineer
Department Engineering
Employed January 1994 - August 1996

I developed the software (C++/Tcl on Unix) for our in-orbit test (IOT) system of satellite transponders. I was also responsible for installing and verifying the equipment at the customers facilities (in China, Italy, Luxembourg, Virginia and Wyoming).

Company Lockheed Missiles and Space Company (Now Lockheed Martin)
Title Sr. Research Engineer
Department Algorithm Development Group
Employed May 1986 - January 1994

I started at Lockheed in the electromagnetic compatibility (EMC) group running Fortran computer models of how noise gets into electronic systems. I developed C applications to first analyze the data and then extend the range of the models. I finished in the Algorithm Development Group developing a signal processing model to show the effect of various signal recover techniques.

Company Energy Auditor and Retrofitter (now Home Energy)
Title Contributing Editor
Employed January 1984 - May 1986

I was responsible for producing articles on various aspects of energy conservation in residential housing. This included researching the topic, interviewing people involved with the technology, writing the article and preparing the magazine for publication and distribution.