Theodoros Tafoni
SUMMARY
Senior software engineer with extensive experience in programming and
analysis. Excellent problem solving skills. Able to work in a team or
individual environment. Hardworking and dependable professional who helps
customers achieve their goals.
PROFESSIONAL SKILLS
Programming Languages: Java, C/C++
Scripting languages: bash
Operating Systems: Linux (Ubuntu, Red Hat, CentOS), Android
Software: GNU GCC/G++, Eclipse, Android SDK,
Microsoft Visual Studio, Microsoft Office,
Sparc C++ Compiler, Qt 5.4.2, Run Time
Infrastructure (RTI), Code Synthesis (to generate
C++ classes from XSD format), NET-SNMP, axis2,
Tomcat
Standard: Distributed Interactive
Simulation (DIS), High Level Architecture (HLA)
Simple Network Management Protocol
(SNMP) - used for unit tests
Government Clearance: Secret Security Clearance
PROFESSIONAL Science Applications International Corporation, Red Bank,
New Jersey (2005 - 2012), Aberdeen Proving Grounds,
Maryland (2012 - Present)
EXPERIENCE Senior Software Engineer
Design, develop, and integrate software solutions in response to customer's
needs. Participate in experiments demonstrating software veracity.
Maintain development LAN. Contribute to briefings and presentations.
. Currently project deals with Content-Based Mobile Edge Networking
(CBMEN). To share real-time data locally at the tactical edge (e.g. a
squad or platoon) without the need to return to headquarters to
connect to a server and download data, which may be out of date. Our
groups' role is the Mobile System Integrators (MSI). Overall task to
integrate sub-contractors software components onto one solution and
run on a testbed of 30 to 100 SmartPhones. My responsibilities
include: run unit tests to verify software components, integrate
components into common solution (included merging code), wrote Android
unit test program to verify integrated solution, modified and added
code to common solution (both in C++ and Java), written bash scripts
to load software onto the phones.
Working on a 2-man configuration tool to generate configuration files
for installed software using the common solution stated above. The
tool is being written using Java Swing. The configuration file(s)
being generated will be based on which software was installed onto the
phones. The tool will be extensible via plug-ins.
. Participated in Internal Research and Development (IRAD) in a "proof
of concept" study to show upper and lower echelons with different
interface criteria can exchange data. A prototype was developed to
translate data between the domains and make the exchange seamless from
each domain's point of view. Upper echelon used web service
interfaces. Lower echelon used the Army Future Combat System (FCS)
System of Systems Common Operating Environment (SOSCOE).
Responsibilities included developing a GUI client in lower echelon
requesting data from upper echelon, registering a web service with
upper echelon, setting up credentials to the web service to check for
authentication and authorization to use the web service. IRAD was
done entirely in Java. Integration testing was done by the team
members to fix bugs. Demonstrated to customer feasibility exchanging
data between echelons. All work was done using java. Used Java Swing
to develop the GUI.
. Team effort to redesign initial IRAD prototype with more
functionality. Added functionality included a web interface to
start/stop processes, transfer blue location data, and pass weather
imagery. Responsibilities included developing a web service to gather
pass/fail statistics for service requests, developed prototype to pass
weather imagery data as binary data between lower and upper echelons,
and registering new web services with proper credentials for
authentication and authorization. The enhanced functionality
continued to be written in Java. Integration test done by the all team
members to verify functionality and fix bugs. Demonstrated to customer
by participating in an experiment. All work was done in java. Web
services were created using axis 1.4 by generating WSDL and
server/client side of the web service. Deployed web service using
Tomcat.
. Team effort to pass static images and video from upper to lower
echelon. Java Business Integration (JBI) was used to connect various
interfaces into a common independent interface. Responsibilities
included writing an interface to interact with lower echelon,
modifying existing code to add more functionality, and add new
functionality to accommodate new requests for the future. The image
and video functionality was written in C++. The interfacing component
was written in Java. Team tested and debugged problems during
integration.
. Participated in Ft. Dix experiment. Experiment demonstrated streaming
live video from lower echelon to upper echelon over satellite using
SOSCOE for data transmission. An Unmanned Aerial Vehicle was used to
stream the video. Our application resided in both the lower and upper
echelons. The application at the lower echelon received video data
and packetized the data. The data was sent, via SOSCOE, over the
satellite, to the upper echelon. The application at the upper echelon
received the packetized data, reconstructed the video, and played the
video with a video player. During field test, fixed any errors/bugs
found.
. Part of a team developing interface to unmanned vehicles. Responsible
for unmanned ground vehicle (UGV). Wrote interface
S/W in C++ to read command data, reformats the command data, and
transmits to UAV. Interface S/W received commands from user from a
Command & Control system. Command data components were in XSD. Used
CodeSynthesis tool to translate XSD to C++ classes. The actual command
data was transmitted in XML format. Team participated in Ft. Dix
experiment to demonstrate end user able to remotely control vehicles.
The experimented both ground and aerial vehicles were instructed to
perform task without a human component manually guiding the vehicles
to perform tasks.
. Developed a test tool to view log messages generated by various
applications. The test tool is a plug-in to an embedded Linux system.
The tool helps the developers detect errors in the system by viewing
the log messages being generated. The plug-in consists of a GUI to
display messages, text field to enter filter strings to restrict which
log messages to view, a clear button to remove current log messages,
and a pause button to allow users to view a specific log message w/o
the necessity of using the scroll bar to find a log message. The tool
was developed using QT 4.5.2, a graphical C++ toolkit. Tested and
debugged
application by creating test driver to input data and verify tool was
filtering incoming messages correctly.
. Modified open source application to interface for GARMIN GPS for
Linux. Modification was to route the data to a socket as client. The
server side was a gateway to read GPS data and pass the data to a map
application. The display showed location of the node. The gateway was
modified to use multicast to allow multiple gateways to exchange GPS
data and have the map application display both local and
remote nodes. The code was ported to Windows to show platform
independence. Demonstrations showed local and remote nodes displayed
on map applications coming from both Linux and Window machines. The
last phase was to show GPS data transmitted over wireless. Both Linux
and Windows machine were configured to transmit GPS data via wireless.
Demonstration showed local and remote nodes were seen on the map
application. The open source and
gateway application was written in C. Tested and debugged modified by
reading GPS data and parsing the data. Fixed bugs found during
testing of application.
. Developed unit tests using NET-SNMP software tool to validate
numerical and textual information described in a Management
Information Base (MIB). Created a generic MIB file containing all the
data types required (e.g. long, float, string). Both individual and
table representations were included in the MIB. The unit tests
verified the ability to get and set the values for all data types. The
next phase was to modify a current test application using SNMP by
converting the application from using hardcoded values to a
configurable application where it would read a configuration file to
determine what data type will be tested. This allows the customer to
edit a configuration file without the need to request a different test
application for each system with a unique system configuration. The
generated unit tests were in C. The test application was written in
C++. The configuration files were in XML format. The data components
were written in XSD format.
. Participating in an Internal Research and Development (IRAD) in a
"proof of concept" developing applications on Smart Phones running
Android OS. Developed service to display local and remote GPS
locations on map image. Using multicast to distribute node locations.
Developed web service to run server side on platform and client side
to run on both platform and Smart phone. Generated WSDL using
eclipse IDE. Generated java code using axis2. Deployed service on
Tomcat. Using ksoap2 API to develop web client to deploy on Smart
phone running Android OS. Used Android's SQLite to create/update
tables.
. Maintained the development LAN in the lab throughout the some of the
projects. These tasks included installing operating systems, setting
up user accounts, installing any software required for the projects,
setting up NIS for client login, and setting up an NFS partition to
allow users to log into any machine in the lab and have the same
environment.
.
Atlantic Consulting Services, Shrewsbury, New Jersey (2002 - 2005)
Senior Software Engineer
Designed, developed, and integrated software solutions in response to
sponsor are needs. Provided demonstration of solutions to
sponsor. Provided support for on-site experiments.
. Team effort to develop a communications effect server (Any
Level Comms Effect Server - ALCES) application on a Linux
platform. Application simulated real world communication
loss due to distance and terrain (rural, forest, or urban
situations) amongst various radios and satellite links.
Responsibilities included terrain mapping, coordinating
conversions, and networking (TCP, UDP, MULTICAST). ALCES
was developed as a multi- threaded application to handle
many tasks such as receiving data, processing data, and
transmitting data. The project was completely written in
C++ with noted exceptions below.
. Responsibilities included: ALCES could read both single and multi-
celled terrain databases. Implemented "sniffer" mode to read and log
messages without processing the data. Implemented feature to store
terrain classification in a text file. This reduced processing
terrain classification for each subsequent simulation run after the
initial terrain classification process. Implemented a Distributed
Interactive Simulation (DIS) interface to interact with other
applications using the DIS interface.
. Converted MATLAB modules to their 'C' equivalent. This cut down
complex algorithm processing time from hours to minutes. Designed and
developed a DIS test driver to test and verify the DIS interface used
by ALCES. Test application was written in C. Participated in
implementing a HLA (High Level Architecture) interface to allow the
application to participate with simulations using the HLA interface.
Interface was written in C++.
. Provided customer on-site support during experiments.
Responsibilities included monitoring ALCES application, solving
interface issues, making code modifications, and fixing bugs that
occurred.
The MITRE Corporation, Eatontown, New Jersey (1995 - 2002)
Senior Software Engineer
Designed, developed, and integrated software solutions in response to
sponsor are needs. Demonstrate solutions to sponsor.
Create scenarios to run on Army simulation system. Prepared and presented
briefings on progress to management.
. Created battle scenario between friendly and enemy units
using Army's Modulated Semi-Automatic Forces (ModSAF)
simulator.Developed and implemented software library for a
Moving Target Indicator (MTI). Library was integrated into
the ModSAF simulator to allow moving vehicles to be
detected by the simulator. The library was written in C.
. Developed and implemented application to allow Maneuver
Control System (MCS), part of Army Battle Command System
(ABCS), to interact with the Eagle simulator. Three major
components were needed to complete task. The task was done
on a Solaris platform.
Responsibilities included:
. Enhanced MCS by developing new GUI interface (using
X/Motif) to allow user to send data outside system's normal
communication channel. Developed a client/server
application written in C. MCS system became the client
that registered with the server. The server was the only
component that communicated with the simulator. Server
transmitted data on behalf of the clients and distributed
data to the clients when data was received.
. Implemented an interface using the Run Time Infrastructure
(RTI). The RTI allowed systems with diverse interfaces to
communicate with each other. This was written in C++. Team
effort to develop an interface between a Battle Plan
Visualization (BPV) system and ModSAF. The BPV received
data from a server written in Java. Contribution was
writing library using
Java Native Interface (JNI) to interface C with Java. The
library allowed data to pass from C environment to Java
environment
Fixed bugs in code during test phase.
. Developed and implemented a Java application prototype to
read data packets from ModSAF. The data was read and
displayed
to the user via a GUI to allow the user to make decisions based on the
information displayed during a battle simulation. Read real data from
ModSAF to verify application was reading data correctly. Fixed any
bugs found during testing.
. Enhanced a Personal Data Assistant (PDA) application to send/receive
data from a C2 simulation running on a PDA. Implemented the Joint
Variable Message Format (JVMF) library by porting library from
UNIX/Linux to Windows CE environment.
EDUCATION: BS in Electrical Engineering, Cornell University, 1981
ACCOMPLISHMENTS:
Published Articles:
. "A Multisensor DIS Package for an Unmanned Airborne Vehicle", Roberts,
John D., SantaPietro, Dr. John J., Tafoni,
Theodoros, Proc. of the 14th DIS Workshop, 1996
. "The Tactical Internet Model(TIM) Provides Realistic Communications
for Task Force XXI", Stanley Manoski, Jon McConnell, Mark Riehl,
Theodoros Tafoni, and Jeffrey Vogel, Proc. of the 15th DIS Workshop,
1997
Awards:
. Program Recognition Award - Digital Leader Reaction Course Prototype -
1999 The MITRE Corporation
. Director's Distinguished Accomplishment Award - 1999 The MITRE
Corporation
. Certificate of Achievement Award - 2008 SAIC
. Certificate of Achievement Award - 2013 SAIC
5 Andiron Ct Phone: 732-***-****
Howell, New Jersey 07731 E-mail: *******@*********.***