Andrew Eidsness
[ resume.pdf ]
I'm based in
Ottawa Canada and have experience building embedded software as well as related professional tools. I have worked in
several industry verticals including telecom, consumer devices, and avionics and have been involved in the development and
maintenance of popular software tools such as Eclipse and
Rational RoseRT.
Clients
Selected clients include:
Lumentum Operations LLC
TrueNorth Avionics
QNX Software Systems
JDSU
DRS Technologies
Zeligsoft Inc.
Edgewater Computer Systems
Espial Group Inc.
TrueNorth Avionics
QNX Software Systems
JDSU
DRS Technologies
Zeligsoft Inc.
Edgewater Computer Systems
Espial Group Inc.
Presentations and Publications
2010:
Models, Generated Code, and Eclipse
A presentation describing a process for integrating generated code UML editors. The code is stored as an attribute within the model, but presented as part of a flat source code file.
A presentation describing a process for integrating generated code UML editors. The code is stored as an attribute within the model, but presented as part of a flat source code file.
2004:
Branding your Application
An article that I co-authored with Pascal Rapicault on the process
for applying your own branding to an Eclipse-based application.
1999: Generating Java Class Files from Smalltalk Objects
A JVM compiler for running Smalltalk code on a Java virtual machine. I implemented this compiler
as the topic of my university honour's project.
Projects
My consulting projects can be broadly categorized as tools development on the Eclipse platform and
embedded development using C/C++.
CDT (c. present day)
A significant amount of my development work since January 2013 has been for Eclipse CDT. I have implemented features
in client's private forks as well as the upstream repository at eclipse.org. I've generated a list of details for
my public contributions.
The largest feature has been changes to the core indexer to support indexing of Qt-related meta data.
Platform UI (c. 2004)
As a member of the Eclipse PlatformUI team during the Eclipse 3.0 release I was able to contribute
many features and bug fixes. Some highlights:
RCP Application Development
I designed, implemented, and continue to support an Eclipse
RCP-based application for editing and packaging content for the client's proprietary content system. The environment provides
editing of html and javascript content with some propriatary customizations. It calls external tools to process the created artifacts.
Code Generators
I have implemented multiple production C/C++ code generators for Eclipse-based modeling tools. As part
of developing these code generators I implemented a technique for integrating with the Eclipse CDT editor.
I presented this technique at an Eclipse Demo Night, the
slides are available here.
Event Framework
I designed and implemented a publish/subscribe library for use in a linux-based embedded system. Shared
memory was used to hold the subscription table and event payloads. Unix domain sockets were used for
signaling.
Fault/Alarm Framework
I designed and implemented a fault detection and reporting framework for use on an Analog Devices DSP.
The framework applied hysteresis to the raw readings and hold-offs to the detection times.
Embedded State Machine Frameworks
I have implemented multiple state machine frameworks in C for use in embedded devices. The state
machines typically support storage for the currently active state and allow a way to associate behaviour
with transitions between the states.
Logging Framework
I designed and implemented a logging framework which wrapped syslogd. A unique feature of the
framework was the ability to suppress messages in the client application, rather than only in syslogd. This
reduced inter-application messaging which improved overall system performance.
Open Source Porting
I have ported a number of open source libraries for inclusion in an embedded
middleware platform. In all cases these projects needed to be adapted to the platform’s build environment, the types
needed to be mapped, and the middleware’s existing API needed to be implemented. Some of the projects that I’ve
ported in this manner include:
OpenSSL | MatrixSSL | |
libPNG | libJPEG | |
zlib | LZMA | |
FreeType | Expat (XML parser) |
Web Services
I have designed, deployed, and continue to maintain a web service using JSON data and REST-based paths. The
service was originally deployed on Google AppEngine, but has since
been ported to a cluster of Ubuntu 12.04-based computers (AMI instances on AWS).
The application is deployed on Jetty and uses memcached
for distribution among the multiple edge servers. PostgreSQL is used as the database.
Web Sites
I have designed, deployed, and continue to maintain a web site for time tracking and invoice generation. The
backend uses PostgreSQL as the database, which is accessed from a
Jetty-based application that returns JSON data.
The front-end of the application makes heavy use of jQuery and Backbone.js.