Post Job Free

Resume

Sign in

Software Engineer

Location:
Seattle, WA
Posted:
January 14, 2024

Contact this candidate

Resume:

Resume

Edward Hodapp

Sammamish, WA

email: ad2rmq@r.postjobfree.com

phone: 425-***-****

Experience Summary:

Languages: C, C++, Python, Java, Javascript, Perl, Tcl, Verilog

Operating Systems: Linux, FreeBSD, Win16, Win32, WinCE, VxWorks, Segger embOS

Standards: TCP/IP, WinSock, MPEG-1&2 Video, MPEG-1 Audio

Web Application Frameworks: Django

Web Client Frameworks: jQuery

Big Data Processing: ETL

Processors: PDP-11, 6502, 6809, Z80, 68HC16, 68000 x86, i960, TMS32010, TMS32020, TMS320C30, Arm922t

Device Drivers: Windows NT, Linux, FreeBSD

Miscellaneous: Embedded Systems, Logic Synthesis

Employment History:

Software Engineer: Federal Reserve Bank of Boston

(5/21 to Present)

Work on the FedNow program using the federal government Amazon AWS environment. Areas worked are devops, CI/CD and site reliability using gitlab CI/CD, Terraform, bash shell, Python, and Java. Presently writing an AWS Lambda for OpenSearch ETL from CloudWatch log events to Elasticsearch Common Schema in Python.

Software Engineer: Facebook (contract)

(10/19 to 5/21)

Wrote bash shell scripts to help researchers launch machine learning programs on a SLURM GPU compute cluster for state of the art virtual and augmented reality algorithms. Wrote tools in Python to diagnose and repair problems with running MPI programs in docker containers across the nodes.

Software Engineer: Boeing (contract)

(9/18 to 10/19)

Added Occurrence Modeling to the mms component of OpenMBEE, a NASA JPL extension to MagicDraw/Cameo systems engineering software. This includes an Alfresco AMP module added to the mms all-in-one Alfresco project, intercepting xmi UML elements expressed in JSON from within the mms-repo AMP, and building a relational database to model the occurrence enabled elements in a way that allows rapid queries. All work, except utilities to aid development, was written in Java.

Software Engineer: Google (contract)

(7/18 to 9/18)

Modified gsutil, the CLI for Google Cloud Storage, to run in both Python2 and Python3.

Software Engineer: EMC/Isilon Storage Division

(8/12 to 6/18)

Tools Development:

Wrote ETL parsers in Python, Java, and Javascript for information gathered from customer clusters to create a database of customer configuration and log messages. The output formats were not well defined, so developed technique to auto-discover the formats. Unlike most big data projects, we are frequently asked questions about very small subsets of our data, so very few errors may be tolerated in the ETL phase. Used Java with the ANTLR 4 parser generator for some of the file formats.

Sustaining Development:

Analyzed and fixed code in the Isilon OneFS storage cluster. OneFS is a storage cluster based on FreeBSD. In support of the shipping product version, made changes to both user space and kernel code. Fixed memory leaks in Likewise ActiveDirectory authentication code and Likewise SMB/CIFS code. Added call stack logging capability to FreeBSD malloc ktrace feature. Fixed reference counting bugs in the kernel Network Lock Manager (NLM) component of the NFS stack. Fixed i18n character encoding issues in Likewise OneFS driver for NFS paths shared over CIFS. Fixed startup Python and shell scripts. Fixed a segfault in a Python C extension library. Diagnosed and located a patch for a reference counting bug in OpenLDAP.

Software Engineer: Boeing (contract)

(2/11 to 8/12)

Wrote a SLATE importer from the Air Force Tanker database. This was difficult due to many factors - poor and missing requirements, very late delivery of the SOAP interface to the Tanker database (only one week before importer coding was to be completed), and the person working on it previously left with only two weeks left on the coding schedule and very little usable code written with no unit tests. Wrote a framework for integration testing the Context Based Editor application that I worked on previously at Boeing by replacing the SLATE Versant database with MongoDB and the SLATE Tcl API with the Tcl interpreter in Tkinter. Added COM Automation interface to Context Based Editor for automated regression testing via win32com and Pyro Python RMI module. Added support for MIL-STD 1553 bus for Tanker program.

Staff Software Engineer: Dolby Laboratories (contract)

(1/10 to 2/11)

Created a Linux based digital asset management system for MPEG-2 transport streams - this includes stream analysis in Python3 with C/inline assembly Python3 extensions, a MySQL database with VIEWs and Stored Procedures, and Django server backend providing web services for a jQuery based web page providing a user interface. Ongoing research into using the Spin modeler with Promela modeling language for verification of complex distributed processes as well as work using combinatorial test case generation tools such as PICT from Microsoft and ACTS from NIST.

Software Engineer: Intel (contract)

(3/09 to 12/09)

Wrote code in Python for a Linux based build and test automation system used by the Digital Home Group for building, testing, and packaging their code for release to customers using the new x86 SOC processors for consumer electronics.

Software Engineer: Boeing (contract)

(3/08 to 3/09)

Wrote code for Boeing's extensive adaptation of the SLATE systems engineering package. Code written using Boeing's DO-178B process. SLATE is the database that models systems design for the 787 and other aircraft. The new extension provides for a multi-variant data model for extending existing designs to new models. This includes a completely new GUI for accessing the SLATE object-oriented database. Code was written in Python and Tcl. GUI code uses the PyQt library and is cross-platform compatible across Windows, Linux, and Solaris.

Software Engineer: Spacelabs Medical (contract)

(10/07 to 3/08)

Performed codebase maintenance to remove build warnings. Wrote a test Winsock Namespace Provider. Reviewed extensive architectural documents that were written over a two year period. Worked on a device discovery agent and server.

Software Engineer: UIEvolution (contract)

(2/07 to 8/07)

Wrote a video over Bluetooth demonstration using Python and the PyBluez library for Bluez on Linux. Wrote a UJML native component for MP3 ID3v2 tag parsing in C++. UJML is UIEvolution's proprietary language for small embedded systems. Wrote C++ code to implement basic radio functionality for XM Satellite Radio via the XM CBM serial protocol. This code was cross-platform and ran on Linux and WinXP. Ported the physical HAL routines for XMStack from Windows to Linux. Worked on basic radio functionality for a prototype of the latest XM radio using ARM assembly, C, C++ running under Segger's embOS RTOS. The CPU is an Arm922t core as part of a System-On-Chip built by Austria Microsystems (AS3525). Contract ended when XM deal fell through.

Software Engineer: Cray (contract)

(10/05 to 1/07)

Wrote code in C for Linux-based System Management Workstation (SMW) for controlling a large supercomputer. Wrote code for two embedded Linux controllers to execute commands from the SMW. Wrote PIC code for controlling power and environmental monitoring of two PCIe I/O boards. One board used the nVidia Crush HyperTransport to PCIe bridge, and the other used the Broadcom HT-2100. Wrote code to do the HyperTransport scan and routing during a cold boot of a 64-bit Opteron I/O/compute element in the Cray supercomputer.

Software Engineer: Video Networks (contract)

(7/05 to 9/05, part-time)

Wrote utilities for verification toolkit in C++. Wrote C++ code for verifying DES encryption. Provided advice on implementing teletext.

Software Development Engineer/Test: Microsoft

(8/99 to 6/05)

Specified and assembled equipment to create a cable and satellite TV headend to support global TV broadcast standards for the Media Center Edition of Windows XP. Wrote custom utilites in C++ and C# for manipulating captured TV material and creating new material for in-house broadcast. These included transport stream demux and reassembly as well as an in-house transport mux. Performed RF troubleshooting and confidence measurements for both analog and various digital TV formats including QPSK, QAM, and COFDM. Created DVB transport stream test content for Microsoft TV Advanced. Tests included video encoder settings, audio only streams, and DSM-CC MPE and Object Carousel content. Tests were created with PC-based software MPEG encoders, an HP MPEG Scope, a Thales Coral box, and custom tools written in C++. Wrote a program that translated an XML file and bitmaps into DVB Subtitle PES packets. Worked on a WindowsCE based embedded system for a settop box satellite and cable TV receiver. Troubleshooted thread deadlock issues and wrote tests for elements of the Broadcast Services (BCS) component of Microsoft TV (MSTV). The elements tested are Conditional Access, and Broadcast Data Services (BDS). The APIs for these elements are exposed via Common Object Model (COM) interfaces. The two main hardware platforms for MSTV were General Instrument's DCT5000 Advanced Settop Box, running a MIPS R4300 processor, and a satellite reference design based on a PC.

Senior Software Engineer: SkyStream Corporation

(3/98 to 8/99)

Wrote NT kernel mode code for verifying SkyStream MPEG-2 transport stream data injection, including MPE (DVB IP over MPEG-2 transport). Performed network performance tests using a Netcom SmartBits tester. Wrote an automated throughput tester for the SmartBits in Tcl. Instrumented NT kernel mode TDI client code to discover reason for poor network performance. Modified the code for a x7 improvement. Wrote an SNMP agent for NT for retrieving statistics on an MPEG-2 transport stream. Performed performance analysis for kernel mode drivers - this included profiling and instrumenting key sections of the code for timing information. Wrote a DLL for processing command files into ioctl calls to SkyStream's NDIS DVB MPE routing driver. Wrote Perl code to parse C++ class definitions and member functions to be linked with a program used for dumping MFC streaming archive files in human readable form.

Senior Software Engineer: WarpSpeed Communications, Inc

(2/97 to 3/98)

Wrote a device driver for 8x8 VCP video codec under VxWorks. Ported a VxD for Lucent's AV4400 video processor to VxWorks. Full source code was not provided by Lucent, so this entailed reverse engineering their chip setup code with an HP logic analyzer. Wrote a Java based communications package for the first demonstration systems.

ASIC Logic Design: Chitech Corporation, UCSC Ext. classes

(1/97 to 4/98, Part-time)

Completed a certificate in VLSI Design from UC Santa Cruz extension. Worked on logic design and verification using Verilog/Synopsys and C for a video processing ASIC at Chitech Corporation. Implemented DES (Data Encryption Standard) in Verilog and synthesized it for a Xilinx XC4000 series FPGA with an evaluation copy of Synplify.

Senior Software Engineer: Optivision Inc.

(10/95 to 2/97)

Wrote a Windows NT kernel mode device driver for a PCI based MPEG-1 encoder. The PCI interface chip being used is the PLX9060. The driver performs busmastering DMA directly into a user mode buffer. Wrote diagnostics for manufacturing burn-in testing of Optivision's EISA bus based MPEG-2 encoders and decoder in C and i960 assembly. Wrote diagnostics for Optivision's High Speed Quad MPEG-2 transport stream decoder. Wrote an MPEG-2 transport stream syntax verifier. Have taken over maintenance of the MPEG-1 audio encoder software (TMS320C31 based) and added code for improved A/V sync. Wrote a test program for PCI interfaces based on the PLX9060 PCI-local bus bridge. This program is Win16 based and has an interpreted scripting language that allows a range of functions from simple hardware tests to loading C-Cube microcode and executing a video encoder. The parser for the scripting language was written using MKS yacc and lex. PCI memory mapped access is done with DPMI.

Applications Programmer: NewsPager Corporation of America

(1/95 to 10/95)

Wrote software using Visual C++, version 2.1 under Windows NT that connected to a paging receiver with serial output to simulate packet parsing in a NewsPager information pager. Wrote software to demonstrate the new NewsPager interface to paging receivers in C and Motorola MC68HC16 assembly. Ported a real-time kernel to the MC68HC16 and started work on the embedded control software for NewsPager's new pager. NewsPager's current pager is built by Motorola and is called the "Inflo" here in the US.

Senior Software Engineer: Fujitsu Open Systems Solutions Inc

(4/94 to1/95)

Wrote software for a Windows client terminal. This terminal will be used for a new on-line interactive "Cyber-Space" entertainment service called WorldsAway. The current version is being written for Win16, using Visual C++, version 1.5, and MFC. It also uses the Microsoft WinG library for high speed graphics and animations, as well as the Microsoft WaveMix library for playing sounds. TCL is used as a command language. Wrote TCL extensions that enabled the TCL programmers to create Windows dialogs and dialog procedures in TCL. Completed an in-house Alpha version that connects to the server via Winsock, a TCP/IP library for Windows. Wrote UNIX server test scaffold for my client software. The release version will connect via a serial modem.

Senior Software Engineer: Interactive Network

(10/90 to 4/94)

Wrote software for producer client terminals. The purpose of these terminals is to help producers create and organize all of the basic elements of an interactive television show that will be run on the Interactive hand-held game unit. The producer terminal also has the requirement that it must allow producers to create shows "live" while the show is in progress. The terminals connect to the Interactive Network server via Winsock, a TCP/IP library for Windows. One terminal is a Microsoft Windows MDI application written with Borland C++ 3.1 and OWL. Another earlier terminal was written using Microsoft C 6.0 and the Windows 3.0 SDK.

Software Engineer: Bally Gaming

(9/88 to 10/90)

Wrote software in C and Z80 assembly for Bally Wildcat video gaming machines. Wrote communications software for South Dakota and West Virginia video lottery, including a Z80 assembly implementation of DES encryption. Also implemented Bally Best Bet in Z80 assembly. Best Bet calculates expected values for all 32 ways to play a draw poker hand and displays the optimal suggested hold in real-time.

Software Engineer: Intermark Imagineering

(11/87 to 9/88)

Wrote software in C and assembly on a PC/AT for a computerized keno system. Added statistical, audit, and customer tracking databases to the program.

Scientific Programmer: Siemens Medical Labs

(5/85 to 11/87)

Worked with hardware engineers to bring up the first prototype of Siemens' ultrasound medical imaging machine. Wrote software in C and 68000 assembly to produce the first anatomical and blood flow images. Modified the software for two later prototypes. Performed calculations written in Pascal for study of doppler blood flow imaging techniques. Wrote software for the TMS32020 to provide a 64 point complex FFT. Wrote simulation and test vectors for a gate array built through LSI Logic. Calculated approximations needed for real-time computation of the beam steering and focusing delays in the phased array transducer.

Software Engineer: Acoustec

(1/83 to 5/85)

Wrote all of the control software in 6809 assembly for a phased array ultrasound medical imaging machine. This machine was unique at the time for its ability to display 2D doppler images of blood flow in real-time. Started working at Siemens Medical Labs after Acoustec was sold to Siemens.

Programmer: Sirius Software

(2/82 to 12/82)

Wrote video game software in 6502 assembly for the Atari VCS. Published Deadly Duck through Sirius and Fox Video Games.



Contact this candidate