SlideShare una empresa de Scribd logo
1 de 6
Jonathan D. Lettvin
27 Valley Hill Drive  Worcester, Massachusetts 01602-2023
Phone: 617-828-5491  E-Mail: jlettvin@gmail.com
http://www.linkedin.com/in/jonathanlettvin
Objective
I am at my best solving technical and scientific problems requiring new insights and algorithms. My employers and
clients have all profited from my inventions in their business space. I relentlessly research process and algorithmic value-
add propositions to achieve your goals. I hold five software patents, two in antivirus, and three in image processing. I
enjoy programming in Python, PHP, C++, javascript, and ASM where I use mathematical libraries like scipy, OpenCV,
and OpenCL. I learn languages and write new ones when needed by my employer. I have a particular knack for value
discovery in big data. Let me invent for you.
I have worked in data visualization, biometrics, language (both human and computer), operating systems, data storage,
backbone network, physics, market data, software security, medical devices, robotics, scientific satellites, consumer
applications, and more. I have produced solutions for MIT, Lotus/IBM, NASA, Navy, Bell Labs, Carbonite and Fidelity.
I have written many original commercial products including real-time operating systems, boot sectors, file systems,
device drivers, EEPROM code, glue layers, TCP/IP primitive operations, IDL compilers, image processing language
interpreters, programmers editors, web scrapers, automated code generators, language-to-language filters, software
license ticket generators, XML lexers, canonicalizers, automated traceability matrix generators, heterogeneous SQL table
column comparators, high speed market data ingesters, antivirus applications, and much more. I wrote a C++ program
to distribute charges within a sphere based on repulsion to illustrate Gauss's law and it was referenced in a recent book
(in my github repository). Some of these products have been delivered to over a million users. Many are still in use.
I spend my free time generating software utilities to support my personal investigation into neuron structure function,
and emergent behaviors. Some of these show up in my github repository (see links below). Others show up as web
pages (see http://rote.training). This keeps my language skills current including C++, ASM, Python, PHP, javascript...
My motto is "small fast correct complete tested". I like to make code solid, clear, documented, optimized, tested, and
maintainable. I have achieved zero-bugs, complete code, and 100% tested when my employers chose to allow a modest
investment of time. I focus down and "get the job done", but I also "spitball" and contribute ideas and implementation in
a group, I find pair programming in Agile "Extreme Programming" highly productive. My recent insights into
development processes have led to a publication combining Agile and Waterfall. I attack seemingly insoluble problems. I
learn my way into disciplines, technologies, and languages that enable me to generate new solutions for you.
Skills
A sample of my alphabet soup: linux, unix, Mac OS X, Windows, DOS, asm, C, C++, Python, PHP, MySQL, javascript,
node.js, socket.io, bash, gnuplot, graphviz, mediawiki, HTML/HTML5, XML, LaTeX, JSON, STL, IDL, scipy, itertools,
unittest, pytest, coverage, OpenGL, OpenCV, OpenCL, matplotlib, git, svn, virtualbox, gcov, valgrind, doxygen, pep8,
pylint, pychecker. I have deep experience in many additional languages, libraries, and platforms.
Experience
Deltek (through TPA) (Woburn, MA) Jun/2016-Aug/2016 consulting software engineer
Short term contract: Wrote VB.NET server code and javascript front-end code for major deadline.
Altman & Vilandrie (Boston, MA) May/2016-Jun/2016 consulting software engineer
Short term contract: Configured Vagrant to launch market data ingest server.
IVES, Inc (Sutton, MA) Oct/2014-Jun/2015 senior software engineer
Compared SQL columns with mismatched schemae finding commonalities/differences. A large customer was retained.
Spritz Inc. (Wakefield, MA) Apr/2014-Oct/2014 field scientist
Normalized/rendered non-European glyphs in a resized reticle. I explored/documented requirements for reticle fit and
justification. Spritz now operates in more languages (i.e. http://lettvin.com/Rendering.html).
JDL
Editshare (Allston, MA) Aug/2013-Mar/2014 senior software engineer
Wrote LTFS (Linear Tape File System) device drivers in Python. Tools for analyzing logs and SCSI stream state
transitions were developed to aid in maintenance and improvement.
Carbonite (Boston, MA) Apr/2012-Apr/2013 principal software engineer
Carbonite needed to choose between RAID6 storage and distributed storage products of Amplidata and Cleversafe based
on storage efficiency (bytes/dollar). No tools existed to perform the calculations, or to apply them over a variety of file
sizes. My tasks were to negotiate with the vendors, acquire the mathematical formulae, write the analysis code, and
apply the resulting tool over a sufficiently rich variety to enable Carbonite executives to make a choice of direction. I
performed all the tasks, wrote Python code on linux, generated a report, and closed the project in two weeks using TDD
methods, where the resulting code could be updated to include new vendors and new storage paradigms with ease.
Carbonite saved millions of dollars by choosing their new course based on the output of this program.
Carbonite needed to have "monkey testing" (see netflix "chaos monkey") of the new storage platform being developed.
Without a platform ready to test, the needed tool had to be developed pro-actively with reference to the design. I was
assigned the task, and produced a Python automated "traceability matrix" generator on linux to track the response of the
nascent platform to problems, and identify which versions implemented which features of the design. The matrix auto-
populated successfully, and the team was able to track when bugs were introduced, and repair them quickly.
Carbonite had a special coding project that required the expertise of a gifted sysadmin, front-end developer, and backend
developer, and the project was expected to take 3 weeks. I was tasked with the backend role. I threw together a shared-
screen session with linux tools and a skype voice session with the other two contributors, and we shared the development
for about 5 hours, passing the keyboard/mouse/screen responsibilities back-and-forth in remote "Extreme Programming"
style. The project was finished in less than a day with high quality, long before it was due.
Kyruus (Boston, MA) Jan/2012-Mar/2012 software consultant
Kyruus scrapes medical payments/insurance/legal results from public websites, and found that hospital names (amongst
other fields) needed to be converted from a variety of formats (with and without errors) into "canonical" or legal names;
where their existing methods were 18% effective and the remainder were shipped to India for hand canonicalization. I
was tasked with improving the conversion rate. I wrote a new Python canonicalizer which used a multi-algorithm voting
approach to enable voting between Levenshtein, Soundex, NYSSIS, metaphone, FatFinger, acronym, and other analysis
algorithms (new algorithms could be added with ease). After two weeks of development, I delivered the new
canonicalizer at a company meeting, demonstrating that it was already achieving 80% conversion rate.
Kyruus was using SQL to store data scraped from the web, but wanted to use HADOOP. I was tasked with providing a
duck-to-strict Python SQL translator to ingest the data that had already been stored to make it available for re-storage in
HADOOP. The Python I wrote enabled an SQL table schema to be modified for re-use as an ingester for data from the
existing database. In other words, the Python looked exactly like the table description. Kyruus was able to convert from
SQL to HADOOP quickly with this application.
AER (Lexington, MA) Mar/2011-Oct/2011 software consultant
Wrote regression tests for test suite and converted code to government specification for a new environmental satellite.
Zipix (Burlington, MA) Aug/2008-Mar/2009 CTO and architect
Zipix, a startup for which I was a founder, needed new algorithms for improving photographic images. As chief scientist,
it was my job to produce these algorithms. These algorithms were developed, tested, and published as patents. The
company raised $1.2M and launched.
Investment Technology Group (Boston, MA) Feb/2008-Aug/2008 consulting mentor
ITG had an algorithm for ingesting the BATS/Pitch market feed using pattern matching which took 36 hours to read in 24
hours worth of data and failed to handle many data corruption problems. I was tasked with improving this. I wrote an
LR1 lexer using computed GOTO in about two weeks, which matched the formal specifications and successfully
identified and ingested all valid records from the data source. When finished, the new ingester operated on the same 2TB
2
JDL
file in 90 minutes, where the limiting speed was reading the data off the disk.
Soapstone (Chelmsford, MA) 2007-2008 software consultant
Soapstone had many developers writing independent apps all of which were to communicate through network links
using IDL (Interface Definition Language). I was tasked with writing the IDL compiler to capture all the data types,
structures, serialization/deserializations of data to be passed between the apps. With my "Extreme Programming" pair
programmer, we produced and maintained a stable reliable, efficient IDL compiler using boost::spirit (C++ extension)
which was used until the company folded.
Bluefin Robotics (Cambridge, MA) 2006-2006 senior software engineer
Bluefin had a contract with the Navy to produce a new BPAUV (Autonomous Underwater Vehicle). I was tasked with
producing all the diagrams and reference manual for this vehicle. These were all produced and delivered on time.
AES (Boston, MA) 2005-2005 software consultant
Wrote BREP to voxel converter for NASA Manned Mission to Mars vehicle high-energy particle simulations.
Lotus/IBM (Cambridge, MA) 1987-2002 principal software engineer
Lotus needed to finish and deliver an update to its METRO/EXPRESS TSR product which had hundreds of documented
bugs. The 40 member team was disbanded but, as a contractor, I was not released and I was kept all by myself working
on the project. I approached a senior vice president and suggested that I could finish the delivery on-time all by myself.
He said "no", but said he would give me a product manager, a project manager, a documenter, and three testers and told
me to "go for it". After about 4 months, I delivered the finished project with zero bugs ready for delivery two weeks early.
The product sold millions of copies which were not marketed or advertised, but merely serviced to customers who
requested it. Although heavily used, no bugs were ever reported again.
Lotus wanted to port their 1-2-3 spreadsheet to UNIX. I was given the task. I had to rewrite the scheduling algorithm
from scratch since the scheduling rules for UNIX and Windows differed considerably. The new spreadsheet
outperformed the Windows native 1-2-3. I passed the project on when I had the opportunity to work on antivirus.
The "brain" virus showed up on a diskette in Lotus. I went, again, to a senior vice president and said Lotus needed an
antivirus department. Lotus assigned the job to an existing manager, and nothing was done for a couple of months. I
went back to ask what was going to be done, and they told me they were waiting for me to offer to do it. I accepted the
task. Over the next 10 years, I developed Lotus antivirus and performed all antivirus related activities for the entire
company. During my tenure, Lotus never shipped a virus to a customer (unlike all other major software companies).
Lotus needed a new "glue layer" to enable its new Lotus 1-2-3 release 3 Windows product to operate on DOS. I accepted
the task. I wrote the glue layer in about 1 week and 1-2-3 subsequently was introduced back into the DOS marketplace.
Lotus products consumed over 100 diskettes when delivered. I was given the task of reducing this count. I proposed and
implemented a new formatting which increased capacity from 1.44MBytes to 1.94MBytes per disk. I presented the result
and showed that it survived implementation in our manufacturing facility and gave a 40% diskette read speed boost. A
vice president chose to kill the project. A month later, Microsoft was delivering its products using this format.
Lotus also wanted to consider compression to reduce the diskette count. I was offered the chance to research this. I
reviewed the existing methods and discovered a new method, where the 7-field Intel instruction could be fragmented into
separate dictionaries based on field. I developed the method and proved that it offered better compression with Huffman
encoding than the best competitive technique did with arithmetic encoding. Although it had promise, it was simply a
research project and never got deployed.
Lotus products were coming back shrink-wrapped from customers, with viruses on them. I was tasked with figuring out
why. I used a signal analyzer to discover that the signal properties were inconsistent with our manufacturing machines.
We finally tracked the problem back to resellers who were re-shrink-wrapping returned disks and sending them back out.
Lotus was able to "appear" and actually be a good actor, proactively helping customers.
Because of the above problem, I developed an entirely new format for diskettes such that known viruses accounting for
99+% of all attacks could not damage Lotus data since those sectors were set aside. I also wrote a mini-operating-system
3
JDL
and antivirus that would undo all virus damage on customer machines which would occupy undocumented sectors on
the diskette. Subsequently, when customers accidentally infected a Lotus diskette and then rebooted their machine with
one of these diskettes, my antivirus would kick in and offer to fix their machine. Lotus's customers LOVED this.
IBM needed a faster/cleaner XML 1.0 Unicode 3.0 lexer ingest algorithm to handle all contemporaneous 13 stream types.
I was tasked with researching techniques. I developed a three-tier table-driven lexer and implemented it as a 21 Intel
instruction LR1 ingest routine. The ingest speed exceeded the disk file read/write speed.
Lotus needed a representative "face of antivirus". I wrote articles for the Virus Bulletin, was interviewed on NPR, and sent
white papers to Lotus executives so they could respond sensibly when confronted by questions at conferences.
Ecco Industries, Inc. (Danvers, MA) 1985-1987 Director of Software Engineering
Ecco developed an IBM PC (8088) card for multitasking speaker verification biometrics. They hired me to patch the
existing codebase which had been abandoned by a previous developer. I patched the code. Ecco was able to satisfy their
customers and investors that progress was being made.
Ecco needed the product to be multitasking. They tasked me with identifying how to accomplish this. I reviewed
existing operating systems and found that none could perform the desired functionality. I proposed, and then developed
over a period of several months, a Real-Time Operating-System which could perform as desired. Several extreme
reprogrammings of the IBM PC motherboard chip set were necessary, including bus-usage, DMA chip, interrupt chip and
the rarely-used absolute memory addressing mode to reduce process clock ticks. The company was again capable of
satisfying their customers and investors. I still have a running machine in my possession running this multitasking,
variable-time-slicing, cooperative and preemptive context-switching OS.
New EPROM code was needed to run the NEC DSP and Motorola 68000 chips on the Ecco card. I was tasked with
writing this embedded code, and finished it without subsequent problems arising.
MIT Plasma Fusion Center (Cambridge, MA) 1978-1981 Software Engineering
PFC needed to accelerate tokamak engineering software development. I wrote a LISP program that read FORTRAN style
equations, organized them, read the comments to extract variable documentation, prompted for missing documentation,
sorted the equations to minimize I/O requirements, wrote the I/O statements, compiled the program, ran the program
with data values from the comments, then wrote a TeX paper describing the problem and solution as given in the
comments. This program, the FORSE, decreased engineering development time from 40 weeks to 1½ weeks.
The FORSE ran on costly Multics Emacs (LISP). I wrote a complete compatible LISP Emacs on MIT ITS machine MC
which. This project took 7 days total. The FORSE ran correctly on this new Emacs.
A small sampling of personal pages
4
JDL
Independent Projects
My principal personal project is modeling neuron operations and neuron system operations. This project forces me to
learn new languages and new technologies in the pursuit of adequate technology for illustrating my ideas. Some of these
models are shown in the samples (above).
Agile, Extreme, Remote, Waterfall, and all that...
I have read the Agile manifesto (http://agilemanifesto.org/, and https://www.agilealliance.org/agile101/the-agile-
manifesto/) and think it a very well thought out piece. It is useful for many projects. I consider "waterfall" to produce
better software under certain circumstances (complete provable code by design to acquire a Common Criteria EAL7), but
it requires foresight, budget, and long-term commitment to produce. When code just has to provably work (correctness
more important than time-to-market), waterfall produces better code.
Many organizations call themselves "agile" while burdening themselves with "agile tools" to aid managers which end up
soaking up far more than 50% of developer time when a whiteboard with sticky notes would be better. IMHO a more
valuable approach is to assign one agile pair the role of converting whiteboard changes during scrum, to manager tool
content after the fact. Assist the developers to do what developers do. That's what the agile manifesto proposes.
In addition, I have solid experience in remote pair programming where I demonstrated that development quality and
efficiency can be increased by an order of magnitude, leading to higher client satisfaction and reduced maintenance.
I love using remote screen/keyboard/mouse sharing like tmux, join.me, google hangouts, and audio/video conferencing
to reduce the wasted time and stress of commuting and increase productivity by ready access to personal books and
devices.
Education
MIT BS Physics. 1971-1976
Developed novel parabolic mirror for thesis.
University of Texas Health Science Center at Dallas. 1976-1977
Unfinished degree in Medicine/Biophysics
5
http://jonathan.lettvin.com Web presence
http://www.linkedin.com/in/jonathanlettvin Web presence
https://github.com/jlettvin github repository
http://lettvin.com/Jonathan/wiki/index.php/Writing_Samples unorganized points of interest
https://github.com/jlettvin/code_quality Python illustration of quality techniques
https://github.com/jdl-mit-alum/code-quality C++ and Python: more code quality techniques
https://github.com/jlettvin/UnsignedLongLongLexer C++ for high-speed unit-tested atoi converter
https://github.com/jlettvin/RomanNumerals Python with exhaustive unit-testing
https://rawgit.com/jlettvin/JYL/master/seen.movement.html HTML5/javascript scientific paper annotation
http://rote.training Minimalistic web page dev with markdown
http://rawgit.com/jlettvin/Tubulin/master/bipolar.unique.path.html Three.js 3D model of retinal bipolar tubulin
https://rawgit.com/jlettvin/haiku/master/index.html Love for Unicode
JDL
Independent Projects
My principal personal project is modeling neuron operations and neuron system operations. This project forces me to
learn new languages and new technologies in the pursuit of adequate technology for illustrating my ideas. Some of these
models are shown in the samples (above).
Agile, Extreme, Remote, Waterfall, and all that...
I have read the Agile manifesto (http://agilemanifesto.org/, and https://www.agilealliance.org/agile101/the-agile-
manifesto/) and think it a very well thought out piece. It is useful for many projects. I consider "waterfall" to produce
better software under certain circumstances (complete provable code by design to acquire a Common Criteria EAL7), but
it requires foresight, budget, and long-term commitment to produce. When code just has to provably work (correctness
more important than time-to-market), waterfall produces better code.
Many organizations call themselves "agile" while burdening themselves with "agile tools" to aid managers which end up
soaking up far more than 50% of developer time when a whiteboard with sticky notes would be better. IMHO a more
valuable approach is to assign one agile pair the role of converting whiteboard changes during scrum, to manager tool
content after the fact. Assist the developers to do what developers do. That's what the agile manifesto proposes.
In addition, I have solid experience in remote pair programming where I demonstrated that development quality and
efficiency can be increased by an order of magnitude, leading to higher client satisfaction and reduced maintenance.
I love using remote screen/keyboard/mouse sharing like tmux, join.me, google hangouts, and audio/video conferencing
to reduce the wasted time and stress of commuting and increase productivity by ready access to personal books and
devices.
Education
MIT BS Physics. 1971-1976
Developed novel parabolic mirror for thesis.
University of Texas Health Science Center at Dallas. 1976-1977
Unfinished degree in Medicine/Biophysics
5
http://jonathan.lettvin.com Web presence
http://www.linkedin.com/in/jonathanlettvin Web presence
https://github.com/jlettvin github repository
http://lettvin.com/Jonathan/wiki/index.php/Writing_Samples unorganized points of interest
https://github.com/jlettvin/code_quality Python illustration of quality techniques
https://github.com/jdl-mit-alum/code-quality C++ and Python: more code quality techniques
https://github.com/jlettvin/UnsignedLongLongLexer C++ for high-speed unit-tested atoi converter
https://github.com/jlettvin/RomanNumerals Python with exhaustive unit-testing
https://rawgit.com/jlettvin/JYL/master/seen.movement.html HTML5/javascript scientific paper annotation
http://rote.training Minimalistic web page dev with markdown
http://rawgit.com/jlettvin/Tubulin/master/bipolar.unique.path.html Three.js 3D model of retinal bipolar tubulin
https://rawgit.com/jlettvin/haiku/master/index.html Love for Unicode

Más contenido relacionado

La actualidad más candente

CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...
CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...
CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...Grigori Fursin
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsIRJET Journal
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Trayan Iliev
 
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William EnckHotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William EnckTao Xie
 
IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018Trayan Iliev
 
What's new in java 9?
What's new in java 9?What's new in java 9?
What's new in java 9?Trayan Iliev
 
Cytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis ToolsCytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis ToolsKeiichiro Ono
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringTao Xie
 

La actualidad más candente (13)

Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...
CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...
CGO/PPoPP'17 Artifact Evaluation Discussion (enabling open and reproducible r...
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript Programs
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William EnckHotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
 
IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018
 
Software Variability and Artificial Intelligence
Software Variability and Artificial IntelligenceSoftware Variability and Artificial Intelligence
Software Variability and Artificial Intelligence
 
What's new in java 9?
What's new in java 9?What's new in java 9?
What's new in java 9?
 
Cytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis ToolsCytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis Tools
 
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
 
ThomasHaleyResume
ThomasHaleyResumeThomasHaleyResume
ThomasHaleyResume
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
 

Destacado

Living Well with Cancer Presentation (Webinar)
Living Well with Cancer Presentation (Webinar)Living Well with Cancer Presentation (Webinar)
Living Well with Cancer Presentation (Webinar)KellyGCDET
 
Pp Presentation Ap Physics Ch 5
Pp Presentation Ap Physics Ch 5Pp Presentation Ap Physics Ch 5
Pp Presentation Ap Physics Ch 5josoborned
 
NFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDM
NFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDMNFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDM
NFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDMKellyGCDET
 

Destacado (6)

Geopolitica organos
Geopolitica organosGeopolitica organos
Geopolitica organos
 
Vagrant on SoftLayer
Vagrant on SoftLayerVagrant on SoftLayer
Vagrant on SoftLayer
 
Living Well with Cancer Presentation (Webinar)
Living Well with Cancer Presentation (Webinar)Living Well with Cancer Presentation (Webinar)
Living Well with Cancer Presentation (Webinar)
 
Pp Presentation Ap Physics Ch 5
Pp Presentation Ap Physics Ch 5Pp Presentation Ap Physics Ch 5
Pp Presentation Ap Physics Ch 5
 
NFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDM
NFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDMNFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDM
NFMNT Chapter 6 Fundamentals of Medical Nutrition Therapy for the CDM
 
Critical path method
Critical path methodCritical path method
Critical path method
 

Similar a jlettvin.resume.20160922.STAR

David_Thomas_Resume_Software_08_29_16
David_Thomas_Resume_Software_08_29_16David_Thomas_Resume_Software_08_29_16
David_Thomas_Resume_Software_08_29_16Dave Thomas
 
Jeff Olson\'s Resume
Jeff Olson\'s ResumeJeff Olson\'s Resume
Jeff Olson\'s ResumeJeff Olson
 
Christine_Straub - ML Engineer.pdf
Christine_Straub - ML Engineer.pdfChristine_Straub - ML Engineer.pdf
Christine_Straub - ML Engineer.pdfChristine Straub
 
Simon Barker CV 20160926
Simon Barker CV 20160926Simon Barker CV 20160926
Simon Barker CV 20160926Simon Barker
 
Simon Barker CV 20151116
Simon Barker CV 20151116Simon Barker CV 20151116
Simon Barker CV 20151116Simon Barker
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web ApplicationMichael Choi
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowKaxil Naik
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfsudipto801
 
IRJET- Voice to Code Editor using Speech Recognition
IRJET- Voice to Code Editor using Speech RecognitionIRJET- Voice to Code Editor using Speech Recognition
IRJET- Voice to Code Editor using Speech RecognitionIRJET Journal
 
Ramkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developerRamkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developerRamkumar Shankar
 
The Big Data Puzzle, Where Does the Eclipse Piece Fit?
The Big Data Puzzle, Where Does the Eclipse Piece Fit?The Big Data Puzzle, Where Does the Eclipse Piece Fit?
The Big Data Puzzle, Where Does the Eclipse Piece Fit?J Langley
 
James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16James Owen
 
Tds — big science dec 2021
Tds — big science dec 2021Tds — big science dec 2021
Tds — big science dec 2021Gérard Dupont
 
Tony Reid Resume
Tony Reid ResumeTony Reid Resume
Tony Reid Resumestoryhome
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and FutureKeiichiro Ono
 
FredMcLainResumeB
FredMcLainResumeBFredMcLainResumeB
FredMcLainResumeBFred McLain
 
LaranEvansResume
LaranEvansResumeLaranEvansResume
LaranEvansResumebutest
 

Similar a jlettvin.resume.20160922.STAR (20)

David_Thomas_Resume_Software_08_29_16
David_Thomas_Resume_Software_08_29_16David_Thomas_Resume_Software_08_29_16
David_Thomas_Resume_Software_08_29_16
 
Jeff Olson\'s Resume
Jeff Olson\'s ResumeJeff Olson\'s Resume
Jeff Olson\'s Resume
 
Christine_Straub - ML Engineer.pdf
Christine_Straub - ML Engineer.pdfChristine_Straub - ML Engineer.pdf
Christine_Straub - ML Engineer.pdf
 
Simon Barker CV 20160926
Simon Barker CV 20160926Simon Barker CV 20160926
Simon Barker CV 20160926
 
Simon Barker CV 20151116
Simon Barker CV 20151116Simon Barker CV 20151116
Simon Barker CV 20151116
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdf
 
Prakash resume
Prakash resumePrakash resume
Prakash resume
 
IRJET- Voice to Code Editor using Speech Recognition
IRJET- Voice to Code Editor using Speech RecognitionIRJET- Voice to Code Editor using Speech Recognition
IRJET- Voice to Code Editor using Speech Recognition
 
Ramkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developerRamkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developer
 
The Big Data Puzzle, Where Does the Eclipse Piece Fit?
The Big Data Puzzle, Where Does the Eclipse Piece Fit?The Big Data Puzzle, Where Does the Eclipse Piece Fit?
The Big Data Puzzle, Where Does the Eclipse Piece Fit?
 
James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16
 
Tds — big science dec 2021
Tds — big science dec 2021Tds — big science dec 2021
Tds — big science dec 2021
 
Tony Reid Resume
Tony Reid ResumeTony Reid Resume
Tony Reid Resume
 
Kunal bhatia resume mass
Kunal bhatia   resume massKunal bhatia   resume mass
Kunal bhatia resume mass
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
 
FredMcLainResumeB
FredMcLainResumeBFredMcLainResumeB
FredMcLainResumeB
 
Jagrat_Mankad
Jagrat_MankadJagrat_Mankad
Jagrat_Mankad
 
LaranEvansResume
LaranEvansResumeLaranEvansResume
LaranEvansResume
 

jlettvin.resume.20160922.STAR

  • 1. Jonathan D. Lettvin 27 Valley Hill Drive  Worcester, Massachusetts 01602-2023 Phone: 617-828-5491  E-Mail: jlettvin@gmail.com http://www.linkedin.com/in/jonathanlettvin Objective I am at my best solving technical and scientific problems requiring new insights and algorithms. My employers and clients have all profited from my inventions in their business space. I relentlessly research process and algorithmic value- add propositions to achieve your goals. I hold five software patents, two in antivirus, and three in image processing. I enjoy programming in Python, PHP, C++, javascript, and ASM where I use mathematical libraries like scipy, OpenCV, and OpenCL. I learn languages and write new ones when needed by my employer. I have a particular knack for value discovery in big data. Let me invent for you. I have worked in data visualization, biometrics, language (both human and computer), operating systems, data storage, backbone network, physics, market data, software security, medical devices, robotics, scientific satellites, consumer applications, and more. I have produced solutions for MIT, Lotus/IBM, NASA, Navy, Bell Labs, Carbonite and Fidelity. I have written many original commercial products including real-time operating systems, boot sectors, file systems, device drivers, EEPROM code, glue layers, TCP/IP primitive operations, IDL compilers, image processing language interpreters, programmers editors, web scrapers, automated code generators, language-to-language filters, software license ticket generators, XML lexers, canonicalizers, automated traceability matrix generators, heterogeneous SQL table column comparators, high speed market data ingesters, antivirus applications, and much more. I wrote a C++ program to distribute charges within a sphere based on repulsion to illustrate Gauss's law and it was referenced in a recent book (in my github repository). Some of these products have been delivered to over a million users. Many are still in use. I spend my free time generating software utilities to support my personal investigation into neuron structure function, and emergent behaviors. Some of these show up in my github repository (see links below). Others show up as web pages (see http://rote.training). This keeps my language skills current including C++, ASM, Python, PHP, javascript... My motto is "small fast correct complete tested". I like to make code solid, clear, documented, optimized, tested, and maintainable. I have achieved zero-bugs, complete code, and 100% tested when my employers chose to allow a modest investment of time. I focus down and "get the job done", but I also "spitball" and contribute ideas and implementation in a group, I find pair programming in Agile "Extreme Programming" highly productive. My recent insights into development processes have led to a publication combining Agile and Waterfall. I attack seemingly insoluble problems. I learn my way into disciplines, technologies, and languages that enable me to generate new solutions for you. Skills A sample of my alphabet soup: linux, unix, Mac OS X, Windows, DOS, asm, C, C++, Python, PHP, MySQL, javascript, node.js, socket.io, bash, gnuplot, graphviz, mediawiki, HTML/HTML5, XML, LaTeX, JSON, STL, IDL, scipy, itertools, unittest, pytest, coverage, OpenGL, OpenCV, OpenCL, matplotlib, git, svn, virtualbox, gcov, valgrind, doxygen, pep8, pylint, pychecker. I have deep experience in many additional languages, libraries, and platforms. Experience Deltek (through TPA) (Woburn, MA) Jun/2016-Aug/2016 consulting software engineer Short term contract: Wrote VB.NET server code and javascript front-end code for major deadline. Altman & Vilandrie (Boston, MA) May/2016-Jun/2016 consulting software engineer Short term contract: Configured Vagrant to launch market data ingest server. IVES, Inc (Sutton, MA) Oct/2014-Jun/2015 senior software engineer Compared SQL columns with mismatched schemae finding commonalities/differences. A large customer was retained. Spritz Inc. (Wakefield, MA) Apr/2014-Oct/2014 field scientist Normalized/rendered non-European glyphs in a resized reticle. I explored/documented requirements for reticle fit and justification. Spritz now operates in more languages (i.e. http://lettvin.com/Rendering.html).
  • 2. JDL Editshare (Allston, MA) Aug/2013-Mar/2014 senior software engineer Wrote LTFS (Linear Tape File System) device drivers in Python. Tools for analyzing logs and SCSI stream state transitions were developed to aid in maintenance and improvement. Carbonite (Boston, MA) Apr/2012-Apr/2013 principal software engineer Carbonite needed to choose between RAID6 storage and distributed storage products of Amplidata and Cleversafe based on storage efficiency (bytes/dollar). No tools existed to perform the calculations, or to apply them over a variety of file sizes. My tasks were to negotiate with the vendors, acquire the mathematical formulae, write the analysis code, and apply the resulting tool over a sufficiently rich variety to enable Carbonite executives to make a choice of direction. I performed all the tasks, wrote Python code on linux, generated a report, and closed the project in two weeks using TDD methods, where the resulting code could be updated to include new vendors and new storage paradigms with ease. Carbonite saved millions of dollars by choosing their new course based on the output of this program. Carbonite needed to have "monkey testing" (see netflix "chaos monkey") of the new storage platform being developed. Without a platform ready to test, the needed tool had to be developed pro-actively with reference to the design. I was assigned the task, and produced a Python automated "traceability matrix" generator on linux to track the response of the nascent platform to problems, and identify which versions implemented which features of the design. The matrix auto- populated successfully, and the team was able to track when bugs were introduced, and repair them quickly. Carbonite had a special coding project that required the expertise of a gifted sysadmin, front-end developer, and backend developer, and the project was expected to take 3 weeks. I was tasked with the backend role. I threw together a shared- screen session with linux tools and a skype voice session with the other two contributors, and we shared the development for about 5 hours, passing the keyboard/mouse/screen responsibilities back-and-forth in remote "Extreme Programming" style. The project was finished in less than a day with high quality, long before it was due. Kyruus (Boston, MA) Jan/2012-Mar/2012 software consultant Kyruus scrapes medical payments/insurance/legal results from public websites, and found that hospital names (amongst other fields) needed to be converted from a variety of formats (with and without errors) into "canonical" or legal names; where their existing methods were 18% effective and the remainder were shipped to India for hand canonicalization. I was tasked with improving the conversion rate. I wrote a new Python canonicalizer which used a multi-algorithm voting approach to enable voting between Levenshtein, Soundex, NYSSIS, metaphone, FatFinger, acronym, and other analysis algorithms (new algorithms could be added with ease). After two weeks of development, I delivered the new canonicalizer at a company meeting, demonstrating that it was already achieving 80% conversion rate. Kyruus was using SQL to store data scraped from the web, but wanted to use HADOOP. I was tasked with providing a duck-to-strict Python SQL translator to ingest the data that had already been stored to make it available for re-storage in HADOOP. The Python I wrote enabled an SQL table schema to be modified for re-use as an ingester for data from the existing database. In other words, the Python looked exactly like the table description. Kyruus was able to convert from SQL to HADOOP quickly with this application. AER (Lexington, MA) Mar/2011-Oct/2011 software consultant Wrote regression tests for test suite and converted code to government specification for a new environmental satellite. Zipix (Burlington, MA) Aug/2008-Mar/2009 CTO and architect Zipix, a startup for which I was a founder, needed new algorithms for improving photographic images. As chief scientist, it was my job to produce these algorithms. These algorithms were developed, tested, and published as patents. The company raised $1.2M and launched. Investment Technology Group (Boston, MA) Feb/2008-Aug/2008 consulting mentor ITG had an algorithm for ingesting the BATS/Pitch market feed using pattern matching which took 36 hours to read in 24 hours worth of data and failed to handle many data corruption problems. I was tasked with improving this. I wrote an LR1 lexer using computed GOTO in about two weeks, which matched the formal specifications and successfully identified and ingested all valid records from the data source. When finished, the new ingester operated on the same 2TB 2
  • 3. JDL file in 90 minutes, where the limiting speed was reading the data off the disk. Soapstone (Chelmsford, MA) 2007-2008 software consultant Soapstone had many developers writing independent apps all of which were to communicate through network links using IDL (Interface Definition Language). I was tasked with writing the IDL compiler to capture all the data types, structures, serialization/deserializations of data to be passed between the apps. With my "Extreme Programming" pair programmer, we produced and maintained a stable reliable, efficient IDL compiler using boost::spirit (C++ extension) which was used until the company folded. Bluefin Robotics (Cambridge, MA) 2006-2006 senior software engineer Bluefin had a contract with the Navy to produce a new BPAUV (Autonomous Underwater Vehicle). I was tasked with producing all the diagrams and reference manual for this vehicle. These were all produced and delivered on time. AES (Boston, MA) 2005-2005 software consultant Wrote BREP to voxel converter for NASA Manned Mission to Mars vehicle high-energy particle simulations. Lotus/IBM (Cambridge, MA) 1987-2002 principal software engineer Lotus needed to finish and deliver an update to its METRO/EXPRESS TSR product which had hundreds of documented bugs. The 40 member team was disbanded but, as a contractor, I was not released and I was kept all by myself working on the project. I approached a senior vice president and suggested that I could finish the delivery on-time all by myself. He said "no", but said he would give me a product manager, a project manager, a documenter, and three testers and told me to "go for it". After about 4 months, I delivered the finished project with zero bugs ready for delivery two weeks early. The product sold millions of copies which were not marketed or advertised, but merely serviced to customers who requested it. Although heavily used, no bugs were ever reported again. Lotus wanted to port their 1-2-3 spreadsheet to UNIX. I was given the task. I had to rewrite the scheduling algorithm from scratch since the scheduling rules for UNIX and Windows differed considerably. The new spreadsheet outperformed the Windows native 1-2-3. I passed the project on when I had the opportunity to work on antivirus. The "brain" virus showed up on a diskette in Lotus. I went, again, to a senior vice president and said Lotus needed an antivirus department. Lotus assigned the job to an existing manager, and nothing was done for a couple of months. I went back to ask what was going to be done, and they told me they were waiting for me to offer to do it. I accepted the task. Over the next 10 years, I developed Lotus antivirus and performed all antivirus related activities for the entire company. During my tenure, Lotus never shipped a virus to a customer (unlike all other major software companies). Lotus needed a new "glue layer" to enable its new Lotus 1-2-3 release 3 Windows product to operate on DOS. I accepted the task. I wrote the glue layer in about 1 week and 1-2-3 subsequently was introduced back into the DOS marketplace. Lotus products consumed over 100 diskettes when delivered. I was given the task of reducing this count. I proposed and implemented a new formatting which increased capacity from 1.44MBytes to 1.94MBytes per disk. I presented the result and showed that it survived implementation in our manufacturing facility and gave a 40% diskette read speed boost. A vice president chose to kill the project. A month later, Microsoft was delivering its products using this format. Lotus also wanted to consider compression to reduce the diskette count. I was offered the chance to research this. I reviewed the existing methods and discovered a new method, where the 7-field Intel instruction could be fragmented into separate dictionaries based on field. I developed the method and proved that it offered better compression with Huffman encoding than the best competitive technique did with arithmetic encoding. Although it had promise, it was simply a research project and never got deployed. Lotus products were coming back shrink-wrapped from customers, with viruses on them. I was tasked with figuring out why. I used a signal analyzer to discover that the signal properties were inconsistent with our manufacturing machines. We finally tracked the problem back to resellers who were re-shrink-wrapping returned disks and sending them back out. Lotus was able to "appear" and actually be a good actor, proactively helping customers. Because of the above problem, I developed an entirely new format for diskettes such that known viruses accounting for 99+% of all attacks could not damage Lotus data since those sectors were set aside. I also wrote a mini-operating-system 3
  • 4. JDL and antivirus that would undo all virus damage on customer machines which would occupy undocumented sectors on the diskette. Subsequently, when customers accidentally infected a Lotus diskette and then rebooted their machine with one of these diskettes, my antivirus would kick in and offer to fix their machine. Lotus's customers LOVED this. IBM needed a faster/cleaner XML 1.0 Unicode 3.0 lexer ingest algorithm to handle all contemporaneous 13 stream types. I was tasked with researching techniques. I developed a three-tier table-driven lexer and implemented it as a 21 Intel instruction LR1 ingest routine. The ingest speed exceeded the disk file read/write speed. Lotus needed a representative "face of antivirus". I wrote articles for the Virus Bulletin, was interviewed on NPR, and sent white papers to Lotus executives so they could respond sensibly when confronted by questions at conferences. Ecco Industries, Inc. (Danvers, MA) 1985-1987 Director of Software Engineering Ecco developed an IBM PC (8088) card for multitasking speaker verification biometrics. They hired me to patch the existing codebase which had been abandoned by a previous developer. I patched the code. Ecco was able to satisfy their customers and investors that progress was being made. Ecco needed the product to be multitasking. They tasked me with identifying how to accomplish this. I reviewed existing operating systems and found that none could perform the desired functionality. I proposed, and then developed over a period of several months, a Real-Time Operating-System which could perform as desired. Several extreme reprogrammings of the IBM PC motherboard chip set were necessary, including bus-usage, DMA chip, interrupt chip and the rarely-used absolute memory addressing mode to reduce process clock ticks. The company was again capable of satisfying their customers and investors. I still have a running machine in my possession running this multitasking, variable-time-slicing, cooperative and preemptive context-switching OS. New EPROM code was needed to run the NEC DSP and Motorola 68000 chips on the Ecco card. I was tasked with writing this embedded code, and finished it without subsequent problems arising. MIT Plasma Fusion Center (Cambridge, MA) 1978-1981 Software Engineering PFC needed to accelerate tokamak engineering software development. I wrote a LISP program that read FORTRAN style equations, organized them, read the comments to extract variable documentation, prompted for missing documentation, sorted the equations to minimize I/O requirements, wrote the I/O statements, compiled the program, ran the program with data values from the comments, then wrote a TeX paper describing the problem and solution as given in the comments. This program, the FORSE, decreased engineering development time from 40 weeks to 1½ weeks. The FORSE ran on costly Multics Emacs (LISP). I wrote a complete compatible LISP Emacs on MIT ITS machine MC which. This project took 7 days total. The FORSE ran correctly on this new Emacs. A small sampling of personal pages 4
  • 5. JDL Independent Projects My principal personal project is modeling neuron operations and neuron system operations. This project forces me to learn new languages and new technologies in the pursuit of adequate technology for illustrating my ideas. Some of these models are shown in the samples (above). Agile, Extreme, Remote, Waterfall, and all that... I have read the Agile manifesto (http://agilemanifesto.org/, and https://www.agilealliance.org/agile101/the-agile- manifesto/) and think it a very well thought out piece. It is useful for many projects. I consider "waterfall" to produce better software under certain circumstances (complete provable code by design to acquire a Common Criteria EAL7), but it requires foresight, budget, and long-term commitment to produce. When code just has to provably work (correctness more important than time-to-market), waterfall produces better code. Many organizations call themselves "agile" while burdening themselves with "agile tools" to aid managers which end up soaking up far more than 50% of developer time when a whiteboard with sticky notes would be better. IMHO a more valuable approach is to assign one agile pair the role of converting whiteboard changes during scrum, to manager tool content after the fact. Assist the developers to do what developers do. That's what the agile manifesto proposes. In addition, I have solid experience in remote pair programming where I demonstrated that development quality and efficiency can be increased by an order of magnitude, leading to higher client satisfaction and reduced maintenance. I love using remote screen/keyboard/mouse sharing like tmux, join.me, google hangouts, and audio/video conferencing to reduce the wasted time and stress of commuting and increase productivity by ready access to personal books and devices. Education MIT BS Physics. 1971-1976 Developed novel parabolic mirror for thesis. University of Texas Health Science Center at Dallas. 1976-1977 Unfinished degree in Medicine/Biophysics 5 http://jonathan.lettvin.com Web presence http://www.linkedin.com/in/jonathanlettvin Web presence https://github.com/jlettvin github repository http://lettvin.com/Jonathan/wiki/index.php/Writing_Samples unorganized points of interest https://github.com/jlettvin/code_quality Python illustration of quality techniques https://github.com/jdl-mit-alum/code-quality C++ and Python: more code quality techniques https://github.com/jlettvin/UnsignedLongLongLexer C++ for high-speed unit-tested atoi converter https://github.com/jlettvin/RomanNumerals Python with exhaustive unit-testing https://rawgit.com/jlettvin/JYL/master/seen.movement.html HTML5/javascript scientific paper annotation http://rote.training Minimalistic web page dev with markdown http://rawgit.com/jlettvin/Tubulin/master/bipolar.unique.path.html Three.js 3D model of retinal bipolar tubulin https://rawgit.com/jlettvin/haiku/master/index.html Love for Unicode
  • 6. JDL Independent Projects My principal personal project is modeling neuron operations and neuron system operations. This project forces me to learn new languages and new technologies in the pursuit of adequate technology for illustrating my ideas. Some of these models are shown in the samples (above). Agile, Extreme, Remote, Waterfall, and all that... I have read the Agile manifesto (http://agilemanifesto.org/, and https://www.agilealliance.org/agile101/the-agile- manifesto/) and think it a very well thought out piece. It is useful for many projects. I consider "waterfall" to produce better software under certain circumstances (complete provable code by design to acquire a Common Criteria EAL7), but it requires foresight, budget, and long-term commitment to produce. When code just has to provably work (correctness more important than time-to-market), waterfall produces better code. Many organizations call themselves "agile" while burdening themselves with "agile tools" to aid managers which end up soaking up far more than 50% of developer time when a whiteboard with sticky notes would be better. IMHO a more valuable approach is to assign one agile pair the role of converting whiteboard changes during scrum, to manager tool content after the fact. Assist the developers to do what developers do. That's what the agile manifesto proposes. In addition, I have solid experience in remote pair programming where I demonstrated that development quality and efficiency can be increased by an order of magnitude, leading to higher client satisfaction and reduced maintenance. I love using remote screen/keyboard/mouse sharing like tmux, join.me, google hangouts, and audio/video conferencing to reduce the wasted time and stress of commuting and increase productivity by ready access to personal books and devices. Education MIT BS Physics. 1971-1976 Developed novel parabolic mirror for thesis. University of Texas Health Science Center at Dallas. 1976-1977 Unfinished degree in Medicine/Biophysics 5 http://jonathan.lettvin.com Web presence http://www.linkedin.com/in/jonathanlettvin Web presence https://github.com/jlettvin github repository http://lettvin.com/Jonathan/wiki/index.php/Writing_Samples unorganized points of interest https://github.com/jlettvin/code_quality Python illustration of quality techniques https://github.com/jdl-mit-alum/code-quality C++ and Python: more code quality techniques https://github.com/jlettvin/UnsignedLongLongLexer C++ for high-speed unit-tested atoi converter https://github.com/jlettvin/RomanNumerals Python with exhaustive unit-testing https://rawgit.com/jlettvin/JYL/master/seen.movement.html HTML5/javascript scientific paper annotation http://rote.training Minimalistic web page dev with markdown http://rawgit.com/jlettvin/Tubulin/master/bipolar.unique.path.html Three.js 3D model of retinal bipolar tubulin https://rawgit.com/jlettvin/haiku/master/index.html Love for Unicode