jeff.laughlin@gmail.com
858-232-2005

6216 Agee St.
Apt 125
San Diego, CA 92122

Jeff Laughlin

Work History

Projects

Education

Interests

Personal

Work History

Scripps Institution of Oceanography, UCSD

Title: Shipboard Programmer Analyst

Time Period: Sept 2005 - Present

Location: La Jolla, CA

Responsibilities: Spend 3 to 4 months per year at sea aboard the SIO research vessel fleet. Duties include end user support, system and network administration, software development, data acquisition and analysis, and operation and maintenance of scientific instruments. Supported OSs include Linux, Solaris, Windows, MacOS X, and DOS. Programming in C, shells, Perl, Python, & Fortran. Travel the world and spend extended periods at sea. Operate and maintain Cisco and Foundry network equipment and satellite communications equipment. Carefully manage limited bandwidth resources.

Accomplishments:

Wrenchead Inc.

Title: Software Developer

Time Period: Sept 2004 - September 2005

Location: White Plains, NY

Responsibilities: Support development of cross platform database backed car parts lookup software.

Accomplishments:

XTRIA Health Care Systems

Title: Software Developer

Time Period: Summer 2002

Location: Williston, VT

Responsibilities: Support development of Java J2EE web application. Execute performance tests, and analyze collected data.

Accomplishments:

LEDdynamics

Title: Embedded Systems Developer

Time Period: Summer 2001 - Spring 2004

Location: Randolph, VT

Responsibilities: Program PIC microcontrollers in Assembly Language. Design and construct circuits integrating PIC microcontrollers. Some Linux server administration.

Accomplishments:

Together Networks Internet Services Inc.

Title: Technical Support Representative

Time Period: Winter 1996 - Winter 1997

Location: Burlington, VT

Responsibilities: Provide telephone support to dial-up ISP customers with Macs and PCs.

Projects

Doubly Linked List Library

In the interest of having some recent code samples to show off, I've developed this trivial doubly linked list library over the last few days. My goal is to demonstrate not only my ability to program in C, but also my ability to manage a complete project, including documentation and integration with other languages.

The core library is written in C. I've embedded documentation in the header file, and used Doxygen to extract and format it. I've used SCons (an advanced replacement for make) to build everything. I've used SWIG to compile the library as modules for both Perl and Python, and written a trivial demonstration program for each one. I wrote a report on the project in DocBook.

Ham::APRS::Parser

The Automatic Position Reporting System (APRS) is a protocol for distributing real time positional and other information in an amateur radio mesh network. I implemented a pure-Perl clean-room APRS parser from scratch. I worked from the official APRS spec, which was challenging because the spec is incomplete. I had to reverse engineer portions of the protocol and also examine other application's parsing code for a few things. I released my project on Sourceforge.

Distributed Amateur Radio Tracking System

The Distributed Amateur Radio Tracking System (DARTS) was a project to build a distributed computerized radio direction finding system. The idea is that multiple radio direction finding devices can work cooperatively to pinpoint the location of a transmitter. I developed the system for my college senior project.

I took an off-the-shelf Doppler direction finding kit and constructed a USB interface for it using a PIC microcontroller from Microchip Intl. Using a kit was advantageous because it was cheap and it came with complete schematics. I wrote a Linux 2.4 kernel device driver to talk to my unit. I wrote userland fuzzy logic code to interpret the output of the DFer and present it to the user. The distributed portion was to leverage an existing DF packet format in APRS, however I did not have time to implement it, nor did I have the resources to build more than one unit. Overall the system worked well enough to allow me to graduate.

I've posted some information about the project, including my final presentation and the embedded Shockwave animations. You can also peruse the source code for the PIC, the kernel driver, and the userland application.

VTC Solar Car Club

One of the most amazing groups of people I've ever worked with were the members of the Vermont Technical College Solar Car Club. We built and raced two electric vehicles in the NESEA Tour de Sol. As President of the club I led my team to victory at the steps US Capital building where we had meetings with all three of Vermont's federal legislators to pitch alternative energy technology.

Moorocco

The Moorocco is a 1984 VW Scirocco converted to solar electric power. Solar power is provided by panels on the roof, however due to their small size it is still necessary to plug the vehicle in to charge the batteries in a reasonable amount of time.

Greaseltron

The Greaseltron is a 1994 Chevy S10 long bed. The power company donated it to VTC as an electric vehicle, and VTC promptly neglected it and allowed it to fall into disrepair. We obtained it and replaced most of the electronics save for the motor. We installed a bio-diesel powered generator in the bed thus creating a bio-diesel hybrid electric vehicle. Solar power is provided by a cell on the hood.

PIC Electronic Monitoring System

An ancillary project to the Solar Car Club, the PIC Electronic Monitoring System (PICEMS) was a telemetry system we developed for our vehicles. We designed and constructed PIC based battery voltage and temperature monitoring units and a fiber optic network to deliver the data to a master controller which relayed the data over an amateur radio AX.25 data network to receiving stations. You can read a bit more about it here.

Successive Approximation Digital to Analog Converter Writeup

I was the only student in my class to successfully complete this lab experiment, thus I earned a score of 110%. Please read my lab writeup here.

ARRL/RAC Sections Quiz

I wrote this online quiz program to help amateur radio operators memorize the abbreviations of all the ARRL and RAC sections. This is important for rapid data entry during contests. It's implemented entirely on the client side in JavaScript, all in one HTML file so users can just save the one page locally for offline use.

Education

Bachelor of Science in Computer Engineering Technology

Institution: Vermont Technical College

Year Graduated: 2004

Location: Randolph Center, VT

Course of study: Completed courses in computer hardware, software, and operating system design. Also DC, AC, and digital electronics design and analysis.

Accomplishments:

Telecommunications Program

Institution: Essex Technical Center

Year Completed: 1997

Location: Essex Jct, VT

Course of study: DC and AC electronics. Communication systems.

Accomplishments:

Interests

Computer Programming:I've programmed in many different languages over the years. My current favorite is Python. Before that I was pretty seriously into Perl and C. I've also written one or more programs in assembly, various BASICs, Pascal, shell languages, Java, JavaScript, Forth, and others. I am proficient in several pseudo-languages including SQL, HTML, and XML. I have special interests in programming close to the hardware (including kernel and embedded development), and communication protocols. Recently I've taken a strong interest in Atmel AVR microcontrollers. They are quite similar to PICs, but they are supported by the GNU toolchain. That means that they are supported by great free open source tools like GCC, GDB, etc. GDB even supports AVR JTAG ICE.

Amateur Radio: I got licenced in 1997 and I currently hold an Amateur Extra class license. I enjoy public service communications, contesting, kit building, and home brewing. My latest big project was to build the Elecraft K2 from a kit (over 1000 parts!), which I did while at sea on the R/V Roger Revelle. My favorite ham radio event is Field Day.

Electronics: I enjoy designing and constructing my own circuits. I have been experimenting with various free open source packages for circuit simulation, schematic capture, and PCB design.

Travel: One of the perks of my job at SIO is the opportunity to visit places I'm sure I would never have otherwise seen. I have been to Australia, Hawaii several times, Japan twice, Mexico, New Zealand, Samoa both Western and American, Singapore, South Africa twice, South Korea, Tahiti twice, Taiwan, and Thailand. I think Japan and Samoa are my two favorite places.

Jeepin': I own a 1990 Jeep Cherokee with 33" tires and 200,000 miles. I get a lot of Jeep therapy working on it and driving it. I like exploring the South West Desert and finding secret places rarely seen by other people. It's a good way to keep my mechanical skills up.

Sports: I am an expert skier; I even instructed for one winter. I dabble in body boarding and surfing although I am terrible and I usually eat sand. I also enjoy hiking and biking.

Music: I play a mean blues harmonica. In the past I have played the clarinet and tenor sax.

Biography

I am 29 years old. I was born in Brooklyn, grew up in Vermont, and I currently reside in San Diego, CA. I work for the Scripps Institution of Oceanography at UCSD as a Shipboard Computer Programmer Analyst. I have been a computer and electronics hobbyist since a very young age. I wrote my first LOGO program when I was 7 and I learned Pascal when I was 12. I am happily married.

Contact Info

6216 Agee St.
Apt 125
San Diego, CA 92122

858-232-2005

jeff.laughlin@gmail.com