Fernando Echeverria
Av. Quilín 10540
Santiago, Chile
[011]+56-2-298-8686
fernando@echev.com
Areas of Interest
- Object-oriented programming (C++ and Java).
- Multithreaded application development.
- Network application development.
- J2ME programming for mobile devices.
- Server development.
- Web development including Java servlets and JSP.
- Database design and programming.
- Educational software.
- Multimedia programming.
- Graphical user interfaces.
Technical Skills
- Extensive experience designing and implementing commercial software using
object-oriented languages, mainly C++ and Java.
- Experience programming in several other languages, including C, JavaScript,
Flash/ActionScript, Python, Perl, PHP, Pascal, FORTRAN, BASIC, and x86 assembler.
- Extensive experience programming on PCs under Windows 95/98/ME/NT/2K/XP.
Extensive knowledge of the Win32 API.
- Experience programming in several flavors of UNIX and Linux. This includes
server code and GUI code.
- Extensive experience using the Java language, its built-in libraries
(JDK 1.0 to 1.5), and 3rd-party libraries.
- Very experienced developing multithreaded applications, both client- and
server-side, in Java and C++ (pthreads & Win32 native threads).
- Experience designing and programming database applications using SQL,
MySQL, Oracle, PostgreSQL, JDBC, ODBC, Access.
- Extensive experience designing and implementing networked applications,
including client-server (CGI, XML-RPC, SOAP, RMI), peer-to-peer collaboration,
real-time streaming, HTTP protocol, etc.
- Experience in web-site programming, including server side (PHP, Perl,
servlets, JSP, JDBC) and client side (HTML, JavaScript, CSS, Java applets, Flash).
- Experience using encryption/decryption for data protection and validation
using symmetric and public-key cipher algorithms.
- Highly experienced in all areas related to multimedia applications,
including digital audio, graphics, video, etc. This includes
knowledge of DirectX for lower-level programming and Flash for higher level.
- Very familiar with internal structure of Windows multimedia drivers.
- Extensive experience in numerical simulation of physical phenomena.
- Familiarity with the Mac OS, including porting of applications from and to
the OS.
- Extensive knowledge of practical requirements for successful localization
of software to multiple languages, including detailed experience with the Unicode
standard.
Professional Experience
March 2003 - present
Independent Contractor
New.net, Inc. / Vendare Media (El Segundo, CA)
- Enhanced the company's domain/search software client to use a secure
upgrade mechanism.
- Improved the client software's robustness against 3rd-party tools that
purport to remove spyware and in the process break New.net's software
and the user's system.
- Added support for more browsers, like Firefox (using an extension), and
multiple AOL browsers.
- Designed and implemented new architecture to allow multiple
differently-branded versions of the same basic client software to coexist on
the same machine using a highly efficient and extensible interprocess
communication mechanism.
- Added multi-session awareness to allow correct behavior, installation,
updating and uninstallation in the case of multiple users simultaneously active
through XP's fast-user-switch mechanism.
June 2003 - present
Independent Contractor
- Trylonix, Corp. : (2005) Designed and implemented a completely new
version of Kid's College, a web based
application from Learning Through Sports, that allows schoolchildren to answer
curriculum questions and play sports as a reward between questions. This
involved a new client-server design, with Flash apps on the client side for
teacher, administrator and student, XML-RPC client-server communication with
servlets implementing the server logic, and with user and performance data
tracked through a PostgreSQL database. A subproject involved an interactive web
tool to perform the gathering of student app usage data from the database
through a long-running Java servlet thread, and the statistical analysis and
presentation of the data.
- Worlds, Inc. : (2004-2005) Completed and tested multithreaded
implementation of their multiuser world server code, developed in C++
on Solaris and Oracle. Also ported server code to use generic ODBC instead
of Oracle-specific code, and tested it on DB port to PostgreSQL.
- Trylonix, Corp. : (2004) Implemented full update for Kid's College,
a web based application from Learning Through Sports, that allows schoolchildren
to answer curriculum questions and play sports as a reward between questions.
This involved developing brand new Flash apps for the teacher and school
administrator interfaces, redesigning the database schema (on PostgreSQL) to
include all new functionality, updating the student's Flash interface to include
many new options to make the game more attractive and to follow new automatic
curriculum sequences. It also involved updating the Perl CGI interface to add
support for changes in teacher, administrator and student client apps. Also new
was Java servlet support for generating performance reports on demand.
- Allegro Multimedia : (2003) Performed debugging and speed
optimization for Piano Wizard, a music education application that teaches
children how to play the piano through an advanced and unique graphical interface.
- Southern Illinois University at Carbondale : (2003) Developed Windows
application to parse, analyze, model and plot statistical data relating
a river's stage (water height) and its discharge (flow), for detecting
long-term trends. Contact: Professor Nicholas Pinter.
January 2001 - February 2003
Software Developer
idealab!, Inc. (Pasadena, CA)
- Developed prototype for Windows application that performs background
web searches and caches results for later instant browsing. Eventually
became the commercial product X1.
- Enhanced New.net client software to work
with special TLDs through proxies, with email, and in other special cases.
- Developed prototype of robot stereo vision code for depth perception.
- Developed prototype code for robot remote control API through a web
interface intended to work through firewalls at both ends.
- Developed prototype for audio/video streaming through NATs/firewalls for
remote robot access.
- Designed and implemented a general framework for developing interactive
educational games in Flash/ActionScript, and implemented several games
using it.
- Worked on two different robot-based educational games for
Evolution Robotics. One involved
using speech recognition to answer questions form the robot. The other game
required developing a full card-based programming language to allow the users
to give sequences of instructions to the robot by showing it a sequence
of cards that the robot recognized using its vision algorithms.
August 2000 - March 2001
Independent Contractor
- idealab! : (2000) Developed prototype for web-browsing enhancement
application.
- Disappearing, Inc. : (2000) Implemented client and server code (applets,
servlets and JSP) to enhance the secure email service provided by the
company. Part of this project involved participating in and introducing
significant speed optimizations to the PJA Toolkit, an Open Source
server-side-graphics implementation for Java.
- Worlds, Inc. : (2000-2001) Optimized C++ server code that handles
multiuser virtual worlds. Specifically, added multithreading to allow fast user
connections and information updates, by handling access to the underlying
Oracle database in a separate thread.
- idealab! : (2000)Did research on state-of-the art movie codecs and
possible improvements.
February 1999 - October 2000
Chief Technology Officer & Software Architect
TopTutors.com, Inc. (Santa Monica, CA)
- Formed and led team that took prototype of peer-to-peer collaboration
tool for tutoring and transformed into a released product (TutorDesk).
- Designed and oversaw the development of central server application for
allowing registered users to connect and find each other to start their
peer-to-peer tutoring sessions, and keep track of all the necessary
information about these sessions.
- Implemented optimized cache for use with the embedded web browser.
- Fine-tuned and optimized different areas of TutorDesk, including the
Voice over IP system, synchronization, interface, connection procedure,
etc.
- Designed data model for SQL database used to handle the user and session
information to be used with both the session server and with the
company's web site that handled user registration and accounts.
- Designed dynamic section of the company's web site, which handled user
registration, account updates, session information, etc. This was done
using JSP technology.
August 1998 - January 1999
Independent Contractor
TopTutors.com, LLC (Pacific Palisades, CA)
- Developed prototype for peer-to-peer Internet collaboration tool, designed
for tutoring, including a kid-friendly interface. This application was
developed entirely in Java, except for a handful of tiny hardware specific
libraries, written in C++.
- Implemented full Voice over IP framework for use in this application,
allowing for free speech interaction between tutor and student. This
involved the development of a full-featured sound-processing pipeline
(input/output, silence detection, automatic gain, compression,
decompression, automatic gain, mixing, recording,
packetizing, streaming, etc.)
- Integrated speech system with module that dynamically extracts mouth
sync information for live simulated display of tutor/student with
cartoon-like characters with synchronized lip movement.
- Integrated embedded web browser to allow the display of educational
web-site contents during tutoring lessons, with annotation capabilites,
and full synchronization between the users.
- Designed and developed a novel, user-transparent, synchronization mechanism
that allowed for fluid collaborative use of the graphical interface
without losing synchronization.
- Implemented a temporary lobby-like mechanism to allow user connection using
an FTP server.
September 1995 - January 1999
Director of Technology
Knowledge Adventure (Glendale, CA)
- Research and design for next-generation, Internet-capable multimedia
engine, using Java as the scripting language.
- Management of several software developers at different levels, to ensure
the development of necessary internal tools, engines, and installation
programs.
- Research of latest software technologies with some application to
multimedia educational products. This included contacting, evaluating, and
recommending new technologies that could be licensed or developed in house.
- Dissemination of the latest technology available for use by multimedia
developers, by means of technical reports, documentation, and internal
lectures.
- Development of advanced virtual wave device driver to allow real-time
mixing of third-party sound sources with sounds from multimedia engine.
- Work on numerous extensions and maintenance fixes to main internal
multimedia engine.
- Development of standalone DLLs encapsulating the sound playback and image
uncompression technologies used in the main engine, to allow generic use in
tools and other engines.
November 1991 - September 1995
Senior Software Engineer
Knowledge Adventure (Glendale, CA)
- Developed several graphical Windows tools to facilitate content
manipulation and development in multimedia engines.
- Worked in the development of generic application frameworks to be reused
in several shipping products that share the same engine. Also worked in the
direct development of specific modules for several shipping products.
- Senior developer in design and implementation of advanced multimedia
engine for Windows and Macintosh. Partial list of features: high-level
interpreted object-oriented language; optimized drawing for 2D and 3D;
integrated playback of multi-channel compressed sound and video;
multithreading; facilities for persistent storage; extended file system with
support for hierarchical archives and soft links, CD-ROM caching and optimized
loading; multi-font, platform-independent, text display; extensive facilities
for localization; and DLL access. This engine was used for shipping more
than a dozen products, in about 20 languages.
- Developed numerous tools and utilities to facilitate content development
for multimedia products, including: sound processing, image compression, text
manipulation, etc.
- Lead developer for design, implementation, and extension of DOS multimedia
engine used to more than a dozen different reference and educational products.
Some of the extensions included use of compressed sound, movie playback,
low-level scripting language, and facilities for internationalization.
October 1990 - April 1992
Software Developer
Wolfram Research, Inc. (Champaign, IL)
- Lead developer for the implementation of the Mathematica front end for X Window System using Motif and Open Look interfaces, including porting of major pieces of code from Macintosh and NeXT versions. (Mathematica is Wolfram Research's flagship product, a large symbolic/graphical/numerical math application, with a complex notebook interface.)
- Work on development of the Mathematica front end for Microsoft Windows, including the printing subsystem and part of the sound subsystem.
- Development of a multimedia player (sound and animation) for the UNIX versions of Mathematica, under the X Window System (Motif and Open Look interfaces).
October 1990 - October 1991
Software Developer
Gross Enterprises (Pasadena, CA)
- Developed multimedia reference engine for MS-DOS, including text, images, hyperlinks, and sound.
- Developed application to display real-time graphical information about traffic in the Los Angeles freeway system.
September 1985 - April 1986
Computer Programmer
ATESA (Santiago, Chile)
- Developed 3D computer graphics animation of aircraft for video documentary.
January-July 1984
Electrical Engineer
INTEC-Chile (Santiago, Chile)
- Designed and implemented hardware and software interface for gas-chromatography data acquisition and analysis with microcomputer.
Education
Ph.D., Physics, August 1992
California Institute of Technology, Pasadena.
M.S., Electrical Engineering, December 1986
University of Chile, Santiago, Chile.
M.S., Physics, September 1986
University of Chile, Santiago, Chile.
B.S., Computer Science, July 1986
University of Chile, Santiago, Chile.
B.S., Physics, July 1985
University of Chile, Santiago, Chile.
B.S., Electrical Engineering, December 1982
University of Chile, Santiago, Chile.
Academic Experience
Research
Physics research in Relativity at Caltech (1987-91 advisor, Dr. Kip S. Thorne). Topics: Extraction of information from black hole gravitational waves; Self-consistency in wormhole spacetimes with closed timelike curves; Gravitational collapse of infinite cylinder.
Publications
- "Gravitational collapse of an infinite cylindrical dust shell", Phys. Rev. D (1992).
- "Billiard balls in wormhole spacetimes with closed timelike curves: I. Classical Theory", Phys. Rev. D. (1991)
- "Cauchy problem in spacetimes with closed timelike curves", Phys. Rev. D (September 15, 1990).
- "Gravitational-wave determination of the mass and angular momentum of a black hole", Phys. Rev. D (November 15, 1989).
Honors and Awards
- Caltech admission to Ph.D. program with special Institute fellowship (1986)
- Institute of Engineers of Chile Award for best 1986 engineering graduate.
- CECS Scholarship for outstanding Chilean young physicist (1985).
- INTEC-Chile Scholarship for outstanding engineering student (1984).
Other Skills
- Foreign languages: Spanish (native); notions of French, German and Russian.