Lincoln Randall McFarland
Updated: 2019 Feb 03
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.
I joined vArmour to help extend their Distributed Security System (DSS) to support micro-segmentation of container networks. I used the python Kubernetes library to create an asynchronous event watcher registered with the kubectl server to let the DSS know when pods are created and destroyed. To create and destroy pods I built a set of tools around a flask server running in a docker container, called squawker. I added an API to have the squawkers generate various types of traffic and run tests like validate policy enforcement and measure network performance.
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.
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.
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.
Prior to that I led the development of the 2.0 release of our Sender Base Reputation Service (SBRS) product, a DNS service used by our email appliances. When I started at IronPort, I worked on our "corpus", a database of spam for use with the IronPort Anti-Spam (IPAS) tool.
For these products, I was responsible for writing the specs, code, user's guides and other documentation, coordinating the contributions from other engineers, working with QA to develop test tools and methodology and resolve the bugs that are found.
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.
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.
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.
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.
I wrote makefiles to build the source code generated by Rational Rose for the TrimTalk communication product.
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).
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.
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.