Craig Rodrigues




rodrigc@crodrigues.org
rodrigc@FreeBSD.org


http://crodrigues.org

http://www.linkedin.com/in/rodrigc

 

 


SUMMARY OF QUALIFICATIONS

  • Programming languages: C, C++, Java, Python, Perl, CGI, SQL, HTML, Bourne shell scripting, Microsoft Visual C++ development and MFC
  • Systems Experience: Linux, FreeBSD, Solaris, AIX, Digital Unix, Windows NT/2000/XP
  • Database: Oracle, Informix, Microsoft SQL Server, Mysql, Postgresql
  • Software Configuration Management: RCS, CVS, PVCS, Clearcase, Subversion, Perforce

WORK EXPERIENCE

Member of Technical Staff
Juniper Networks
Sunnyvale, CA

January 2008 to present

  • Software Engineer, worked on the Platform Team for the Juniper EX Switch Platform series
    • Created 32-bit and 64-bit x86-based bootable disk images of the EX software that ran in Virtual Machines.  Tested
      with QEMU, VirtualBox, and VMWare.  Images had the full JUNOS Command Line Interface (CLI) and were
      used for testing, and for CLI training.
    • Led software efforts to have EX platform meet requirements for FIPS-140 Level 1 security standard
    • Helped integrate the NAND Flash File System for FreeBSD developed by Semihalf ( http://semihalf.com ) into JUNOS
    • Work spanned: kernel, userland, startup scripts, and file system unit tests
  • Build engineer on for the JUNOS network operating system, derived from FreeBSD.
    • Worked with John Birrell to implement jbuild, a modified FreeBSD make utility with hooks into the FreeBSD kernel to optimize the the software build of JUNOS.
    • Presented work at BSDCan conference, Ottawa, Canda, May 2010, http://www.bsdcan.org/2010/schedule/events/198.en.html

 

Principal Software Engineer
Avid Technology
Tewksbury, MA

March 2004 to December 2007

  • Obtained MPEG-2 video data from the IPV SpectreView video server, and wrote C++ code using the AAF Toolkit in Linux to encapsulate the video data inside MXF metadata files. The MXF files could then be imported into the Avid MediaComposer video editor.
  • Performed sustaining engineering on the Avid Mediacomposer video editor product in Windows using Visual C++. Focus areas were in import/export of video data using the MXF metadata format and the AAF Toolkit.
  • Worked on the Avid AirSpeed video server product.
    • Developed an On-Screen Display for AirSpeed in FreeBSD and C++. Based on user input from a front-panel with play/stop/record buttons, the program would pop up an On-Screen Display on the AirSpeed LCD. Menu selections such as Brightness/Contrast, were processed using the "Command" Design Pattern in C++.
      Input commands from the front-panel were read in user-space from an input serial port, and commands to display the OSD were sent via an output serial port to a Techwell 8800 OSD.
    • Rewrote the installation process for AirSpeed.  Converted installer from extracting a simple tar, to a scripted installer which installed system components which were FreeBSD packages created with pkg_create.

 

Teaching assistant
Harvard University Extension School
Cambridge, MA

Spring 2006

Performed teaching assistant duties for CSCI-E215 Unix Systems Programming course.

  • Answered technical questions via e-mail and in-person.
  • Corrected assignments written in C under Digital Unix and Linux. Marked code based on style issues and correctness, but also looked at robustness, resilience to errors and failures, and memory management.

 

Software Engineer
Verizon
Cambridge, MA

March 1999 to March 2004

Worked on the Quality Objects (QuO) project, a government-funded R&D project to develop and integrate Quality of Service techniques into CORBA-based middleware at Verizon's BBN Technologies division.

  • Performed Linux and Windows NT C++ development using the TAO CORBA ORB, and the ACE networking library.
  • Led and coordinated experiment activities for BBN's Unmanned Airborne Vehicle (UAV) Open Experimental Platform (OEP) for the DARPA Program Composition for Embedded Systems (PCES) program.
    • Performed systems integration of multiple technologies from DARPA subcontractors in industry and academia.
    • Wrote test plans and schedules for subcontractors to deliver and integrate technologies.
  • granted core CVS committer privileges to ACE/TAO CVS repository and committed following fixes:
    • identified and fixed POSIX pthread priority problems in TAO's RT-CORBA on Linux
    • enhanced ACE QoS API (AQoSA) and TAO Audio/Video Streaming Service
  • Performed low-level protocol analysis and system troubleshooting of RSVP and Diffserv QoS network protocols in the ACE and TAO libraries using the Ethereal protocol analyzer. Submitted to the Ethereal source tree the the capability to decode Real-time CORBA priorities values in GIOP headers.
  • Performed C++ TAO/CORBA development for the Joint Tactical Radio System (JTRS) project. Performed team mentoring for development team
  • Performed standards work at the Object Management Group (OMG) by attending the Real-time and Embedded Systems Workshops (RTWS), and promoting QuO QoS/middleware technologies at these meetings. Program committee member for RTWS in 2003.

 

 

Worked on the Network Monitoring on the Web (Nemow) project, a project to monitor GTE's Global Network Infrastructure (GNI) telecommunications network at Verizon's Verizon Laboratories division.

  • Performed AIX Unix administration to ensure correct levels of compilers and system libraries were installed
  • Wrote an Inprise Visibroker CORBA process in C++ and Java to interface with legacy telecommunications systems and deliver real-time network alarms to system. Real-time alarms were obtained from legacy system over Unix named pipes and sockets. Historical alarms were obtained from Informix database.
  • Wrote a C++ program using RogueWave libraries to interface with a trouble ticketing system
  • Fixed a freeware C++ program Ethereal (a network protocol analyzer) so that it would compile and run under AIX. Needed to become familiar with GTK graphics toolkit, and AIX's Data Link Provider Interface (DLPI)
  • Wrote server programs in C++ and Java to integrate network management systems (Nortel INM and Netcool) with Nemow

 

Software Consultant
Pencom Systems, (Pencom WebWorks division)
Boston, MA

May 1998 to March 1999

Worked for clients of Pencom Web Works on advanced Internet and Web application development.

  • Java development of financial applications for a corporate Intranet, Evergreen Investments, Boston, MA
    • Developed process to transfer data from SQL Server and Informix to Lotus Notes, using an all Java process under Windows NT.
    • Obtained database schemas for data mining purposes using reverse engineering tools such as Sybase PowerDesigner and Intersolv Data Direct Explorer.
    • Mentored developers writing Java servlets using IBM WebSphere Application Server servlet runner.

 

 

Software Engineer
Thomson & Thomson
North Quincy, MA

November 1996 to May 1998

Performed C, Java, and Perl web development under Solaris for Thomson & Thomson's first Web e-commerce service, SAEGIS.

  • Developed web-based search interfaces for Thomson's trademark and copyright databases in C, Java, and Perl under Solaris.
  • Wrote Netscape API (NSAPI) code to do custom user authentication from the Netscape Enterprise server and the Netscape Publishing System.

 

Web Developer
CyberPlex Interactive Media
Toronto, ON, Canada

January 1995 to November 1996

Performed C and Perl web/CGI development and Digital Unix systems administration for one of the first Internet startup companies in Toronto.

EDUCATION

Degrees

  • Masters in Information Technology, Harvard University Extension School. Completed, November 2003, GPA: 3.43
    • Masters thesis, SONET and Network Management. Assembled a small ATM network, and developed C++ CORBA Agents under FreeBSD to propagate SONET alarms and performance information to a network management application.
    • Courses taken included Computer Networks, Java for Distributed Programming, Developing Windows Applications with Visual C++, Advanced Topics in Data Networking, Unix Systems Programming, Theory of Computation, Design Patterns in C++ and Java, Database Design
  • Bachelor of Applied Science, Chemical Engineering, University of Toronto, May 1996

Courses

 

PUBLICATIONS AND PRESENTATIONS

OPEN SOURCE CONTRIBUTIONS

 


BIG DATA INTERESTS

I am currently interested in research and learning about Big Data, and pursuing any opportunities in this space.  I strongly believe that Big Data combines technology such as storage, networking, distributed systems, and algorithms in a unique way which can make businesses more competitive and increase business efficiencies.

My research into Big Data has so far involved the following, primarily on the DevOps and administration side of Hadoop:

1.    Attended this Hadoop training course: Third Eye Consulting Services, Santa Clara, CA, Apache Hadoop - Developer’s Track, August 2012

2.    Set up a 5 machine Hadoop Cluster in the Rackspace OpenCloud

3.    Wrote this document for how to set up a Hadoop cluster using Cloudera’s distribution: http://crodrigues.org/hadoop/hadoop_setup.html

4.    Did basic MapReduce queries in this environment.