Resume of Eirikur Hallgrimsson
[Send email using form at bottom]
Langhorne, PA USA
Cell: (603)943-3601
Goal
Software Development concentrating on Free and Open Source platforms and
languages. I'm particularly interested in math, Linux, TCP/IP networking, user
interfaces, and the Python, Ruby and Java languages. I like agile development
techniques and thrive in those environments.
Expertise
15 years of Unix engineering experience and 10 years of increasingly technical
Linux experience. Very strong written and verbal communication skills.
Operating Systems: Linux, BSD Unix variants, Macintosh
Linux: Debian, including Knoppix Live CD tailoring, Red Hat including RPM
package system, Ubuntu including dpkg and apt-get, Mandrake/Mandriva, Slackware.
Unix config/admin: Apache, Sendmail, Postfix, Qmail, Webmin, most major Linux
packages.
Desktop GUI design: Java/Swing, GNOME, KDE
Custom-tailored kernels for Alpha, PowerPC, Intel, Athlon.
OS configuration: filesystem layouts, packaging systems.
GNU build system: Autoconf/Automake, GDB, DDD.
Version control and build: cvs, subversion, ant.
Parallel APIs: MPI, PVM (from C, Fortran, Python)
Network protocols: TCP/IP, AppleTalk, DECnet, MIDI. Datascope/Sniffer level.
Languages: Python, Ruby, Java, SmallTalk, C, C++, Perl
Databases: MySQL, Postgres SQL
Web Frameworks: Ruby on Rails
GUI Toolkits: Java/Swing, Tk, GTK, GTK+, GLADE, GNOME, PyQt, QT/KDE, Wx.
Amazon Web Services: EWS, EC2, S3
Full telecommuting setup with Skype, GTalk, GoToMeeting, etc, and multiple
computers.
Tech Support: Commonly work with technical customers to resolve issues.
Leadership: Have lead teams of 10 people and managed the same number.
Managing outsourced development: Managed teams of 4-5 in Israel and India.
Work Experience
Ambriel Technologies, Winchester VA, Telecommuting contract 5/2008 – 6 2008
Router Appliance GUI and control Engineer
Designed and programmed GUI and control software for a new IPv4 to/from IPv6
router. Initial version extended the Python/GTK+/Glade prototype. Analyzed
project and convinced client that moving to an embedded web application for
configuration (as planned for the next version) was more appropriate and not
likely to take longer Used Ruby on Rails for the GUI, Test First, and other
agile methodologies.
MTM Technologies, Inc. Stamford, CT 1/2008 - 4/2008
Linux-based TCP/IP Expert
MTM provides monitoring services for corporate networks, monitoring hardware
online status and verifying functionality of software servers. Telecommuted with
occasional visits to the Stamford, CT corporate offices and the Wilmington, DE
data center. One thing MTM did very well was engineering via distributed team.
Performed design work for a second generation system that would place data
collection appliances at customer datacenters. Used network monitoring tools
such as Nagios, and the classics: WireSharke/Ethereal, Nmap, NetCat, TCPdump.
Wrote prototype plugins in Python. MTM had a layoff because of financial
problems.
Commerce360, Inc, Plymouth Meeting, PA. July/2007 – December/2008
Senior Software Architect
Developing web service data mining software in Python and Java. Wrote code using
WSDL interfaces and Apache Axis 4 (Apache 1.4 Java library for SOAP), getting
data from the search marketing interfaces for Google Adwords, Yahoo Search
Marketing, and MSN AdCenter. The extracted data is stored in the Amazon S3 Simple
Storage Service. The implementations run in Amazon EC2 "elastic compute cloud"
virtual servers. Created AMI virtual server images for EC2. Used a mostly
standard by stripped Linux 2.4.x kernel derived from Red Had sources, and the
latest Apache. Python was Python 2.4 and Java was Java 1.4, both mandated for
stability reasons and the 2.5/1.5 versions didn’t provide significant speed in
our early testing.
Regression Logic, Inc. Nashua NH Feb 2005 – July 2007, Part-time
Chief Technical Officer
Developed Python-based real time valuation engine for this price-verification
and financial modeling web-service firm. Programmed in Python with statistical
functions in C from the Numerical and SciPy libraries. Implemented professor
Marc Rubin's patented recursive multiple-regression analysis process as a web
service (XML-RPC) realtime filter adding predicted prices (valuations) to
consumer products for retail web sites. Added more advanced expert system
designs around the basic patented process, including financial and statictical
goal-seeking and data conditioning. Managed the Java server implementation team
in India. This was a spare-time project for equity in the early-stage startup.
This startup failed due to market research and marketing problems.
DRS Digital (Frankfurt Germany, Princeton, NJ) June 2007 – July 2007
Short part time telecommuting contract to write Ruby code for a secure Ruby on
Rails web application for the buyout sector of the financial services industry.
Added XML and Excel import and export of database information, with Unicode
conversions because of the lack of Unicode support in Ruby. Fixed a showstopper
bug in the Ruby postgresSQL database adapter (Postgress 7 & Postgress 8) which
prevented failover of existing connections. The adapter would later fold into the
Ruby on Rails 2.0 Distribution.
SpiderOak.com April 2007 – July 2007
Telecommuting Contract Software Engineer
This is an all-Python project with Rails-like networking, internal communication
and UI using Twisted. Database was MySQL5 looking for better performance for the
massive customer data. At the time the MySQL5 commit bug actually reduced
performance so development was mostly done under V4. Contract work in Python
specifically on the Qt, PyQt user interface for this huge and complex online
storage and backup program. This is a very agile development project with
constant builds and all developers actually using the end product, working off of
a subversion source repository. Worked with Twisted as the underlying network
and threading model. Created a dozen complex user display screens using all the
Qt widgets, including the Model/View components for showing tree structures.
Many of the pages show widget contents that are the result of Twisted deferred
“threads” that communicate with a server.
Fast Search & Transfer (Google competitor) Needham, MA July 2006 – April 2007
Contract to add high-performance XML processing in Python to the Scopus
(Elsevier) Scientific abstract search system, which uses Fast's enterprise search
platform and is hosted at Fast. Learned the Google-like Fast platform and wrote
custom code to generate XML configuration files directly from customer
requirement spreadsheets. Added stages to the document input pipeline to
normalize data and create synthetic fields. Optimized existing Python code to
run as much as possible in the underlying C runtime for maximum performance.
IBM, working from home March 2006 – July 2006
Short contract to enhance disabled access to Firefox browser and GNOME/Linux.
Rapid/Agile development process based on Bugzilla, CVS and nightly builds.
Learned Firefox disability API and worked on the bugzilla buglist in C++.
Learned IBM's Linux/GNOME accessibility architecture, ATSPI, and contributed
routines for speech output using Python (Linux Screen reader, LSR) from core
GNOME widgets.
Photodetection Systems, Acton MA May 2005 – March 2006
Consulting Software Engineer
Follow-on contract to enhance my previous work (below) to perfect the Java/Swing
user interface and control the CAT scanner subsystem via CAN controller
networking. Photodetection sought me out, though my previous stint was paid for
by Analogic. My user interface design is in all their literature and posters.
PDS is still in the prototype stage. Agile development process with constant
release of user interface updates.
Interactive SuperComputing, Waltham, MA February 2005 – May 2005
Principal Software Engineer. Lead engineer for the Master Control Module of
ISC's
distributed computing system which extends MATLAB to use supercomputing
resources
such as massively multiprocessor systems and Linux clusters. Agile development
using
Python methodologies and constant builds. Worked at home and various locations
for this tiny new MIT-spinoff startup. The entire user interface layer was
Apache 2 with Python using modPython. Programmed extensively in Python including
writing the web interface designs by hand and using SQLobject over XML-RPC to
databases. Company changed direction and didn't need my skills.
Ucentric Systems, Maynard MA January 2005 – February 2005 Ucentric was bought
out by Motorola, eliminating my stock options and most of my benefits.
Linux Multimedia Guru Engineer
Evaluated drivers and libraries for a Linux-based consumer multimedia hub.
Developed music player in C/C++ using the Ucentric middleware that was developed
for playing video. Responsible for all non-video media types, and printing.
Hired away by Interactive Supercomputing, which was significantly more
interesting.
Analogic / Photodetection Systems Peabody & Acton, MA April-December 2004
Contract: User Interface and Systems Integration Software Engineer
Designed and implemented an innovative dual touch-screen interface for this
combined CAT and PET medical scanner. The flash-booted Red Hat Linux system
controls the Analogic CAT system via the CAN industrial controller bus/network,
and the PDS PET system via TCP/IP over gigabit Ether and CORBA. First
implementation at Analogic in C and GTK with prototyping and scaffolding in
Ruby/GTK. Second implementation at PDS in 100% Java 1.4/Swing to provide a common
pluggable look and feel with the remote and offline viewing/scanning software.
Requirements for this system included UI design of a system operable by people
wearing gloves. A key subsystem of the Analogic scanner is replaced by the
touch-screen, so the touch-screen single-board computer must also emulate the
Analogic user interface hardware on the CAN bus.
Signal Trading, Nashua, NH October 2003 - April 2004
Partner (another startup)
Designed innovative filters and displays for realtime streaming stock market
data for this startup. Algorithms were written in Python (2.3) and C++ with some
user interface components in GTK and some in Java/Swing. (1.3, I think)
GNOME Free Desktop Project, Cambridge MA, and Milan Italy (remote) volunteer
This was in the Gnome 1.2/1.4 days. When home systems with multiple CPUs were
rare.
Fixed threading problems revealed only on SMP multi-cpu systems. This
long-lingering issue lived in the thumbnail/icon generator code and happened only
when new thumbnails were generated. The failure occurred deep in the GNOME
virtual file system. Worked with Italian primary developer using on-line
translation and some remaining college Latin.
Alase Technologies, Pepperell, MA October 2002 – October 2003
Contract/Consulting Software Engineer, embedded networking and UI.
Designed and implemented a complex application protocol for laser engraving on
top of TCP/IP. Initial development on Linux/Intel and now running on the target
embedded ThreadX system on ARM. using the Green Hills Multi2000 IDE and C
compiler, and the InterNiche “portable” TCP/IP stack. The result is the firmware
for a networked industrial laser engraver.
IPRX.com, Inc, Nashua, NH April 2002 – October 2002, (startup failed)
Consulting Software Engineer, Network Security
Implemented novel intranet intrusion-detection and countermeasures for a
behind-firewall security device. Coded low-level IP and direct Ethernet packet
manipulation in C/C++,
for detecting subverted hosts. Development on Linux/PowerPC and Intel, for
embedded deployment. Extensive use of Netlib, Libpcap, threading, process
control. The Osiris network security suite that I designed uses two
multi-threaded processes, one for scanning the IP address space with specially
crafted packets and one for analyzing returns and doing notifications. Dealt with
endian issues, Windows syslog mechanism, used OS fingerprinting, and wrote
completely new code to detect sniffers.
[There is more, but it didn't fit.] |