Post Job Free

Resume

Sign in

C# Software Engineer

Location:
Norristown, PA
Posted:
November 29, 2023

Contact this candidate

Resume:

ad1jwn@r.postjobfree.com

SUMMARY

Key strengths in real-time data acquisition, statistical, and video processing; with an emphasis in high throughput, and high reliability systems. Skilled with the use of object oriented design philosophy. Experienced with project management through all phases of the project lifecycle. Extensive experience in distributed front-end systems, device/protocol integration, and secure data transfer. Knowledgeable in the use of open source packages and libraries to enhance Software development efforts.

TECHNICAL EXPERIENCE

Programming Languages: C/C++, C#, Objective C, Swift, Python, Lua, HTML, Java, JavaScript, SQL, Assembler (8086 family, 68000, 6502), Pascal

Operating Systems: Windows NT/2000/XP/2003/7/10, Linux, OSX, iOS, Android

Software Development tools: Visual Studio, Eclipse, Xcode

Project Management techniques: Agile, RAD, Waterfall

EMPLOYMENT HISTORY

FREEDOMPAY, Philadelphia, PA August 2019 – June 2023

Senior Software Engineer Working on their legacy product. It worked, but relied on old technology, that was becoming an operations issue. I was tasked with bringing it up to date.

Rewrote Visual Basic libraries in C#.

Wrote CLI interfaces for the C++ libraries, so C++ and C# could call each other directly. Eliminating the need for COM.

Rewrote C++ database calls to use C# database objects.

Updated applications, a mix of C# and C++ code to use the new libraries. In some cases massively simplifying sections of them, since now they could make calls using CLI C++ objects.

Designed and wrote a web app to support a new ACH provider.

CONTENTWATCH, Berwyn, PA December 2017 – May 2019

Senior Software Engineer Working on the new release of NetNanny 10. Primarily responsible for iOS, also Android and OSX. iOS is the problem child, most work done on the iOS client worked without issue on other platforms. For the first 6 months a major measure of my performance was how much wasteful code I could eliminate.

Found and fixed major performance issues.

Redesigned and wrote the new update subsystem.

Redesigned and wrote the new statistics reporting system that uses Amazon Kinesis.

Updated the 3rd party libraries to the current versions.

Started bringing NetNanny 10 to OSX.

PROKARMA, Omaha, NE May 2016 – September 2017

Software Consultant at PSTechnology a subsidiary of Union Pacific Railroad, Norristown PA

Working on automated rail yards. Routing and controlling switches. Speed control in freight classification yards. Industrial process control computers running QNX, front end systems running Windows. Work done in C/C++, Python, and shell script.

Evaluated incident reports, analyze logs, write summary reports advising action.

Based on my own and other evaluations implement fixes to be deployed.

Supporting legacy systems, including releasing new versions of the old base.

Integrate older releases up to a more recent or current code base.

Work with product management to evaluate, design, propose solutions, and implement solutions for end user issues.

ANALYTICAL GRAPHICS, Exton, PA May 2013 – March 2016

Software Consultant

In the STK (System Tool Kit) on Linux project. STK is a simulation and modeling package primarily used in aerospace and defense applications. The project goal is to release on Linux simultaneously with the Windows release, or as near as product testing allows. Using GCC with an interface layer that mimics Windows COM functionality. As work is done in Windows with Visual Studio, the projects are translated to makefiles, and built on the Linux continuous integration system using Quickbuild Work done in C/C++, Python, Lua. The project is reaching successful completion that exceeds original expectations.

Designed and developed the Premake portion of the system that builds the makefiles. Including modifying the Premake Lua code, which read pseudo code produced by the Python translation program, to better manage the scope of the project.

Documenting and educating the development team in good programming practice for Windows/Linux compatability.

Updating and building open source 3rd party libraries from source distros, such as OpenSSL, ffmpeg, Boost, GDAL, POCO, JSON.

Converted Windows graphic window to X window for graphical displays that use OpenGL.

Supporting and debugging Java user interface, and JNI.

Ongoing work keeping the current C/C++ code compliant with GCC, running clean under valgrind, both 32 and 64 bit.

HARRIS BROADCAST COMMUNICATIONS, Limerick, PA February 2006 – January 2013

Software Engineer 3

Working on the QuiC Video QA system team from its beginning. Eventually becoming project lead working with 3 engineers in Budapest Hungry. The system supports multiple Windows XP servers each with a custom logic board, designed to run unattended. Analyzing, reporting, and in some cases correcting problems with video files. Supporting the divisions Videotek products running embedded Linux. Became a member of SMPTE, to keep up with advances in the industry. Work primarily done in C/C++.

Designed and developed the control service that scans for new files, dispatched jobs to be analyzed, collected results, provide status of files to be analyzed, in process, and the results.

Wrote a published API used with broadcast automation systems.

To operate in conjunction with the Harris Nexio video servers, wrote an interface that queries and updates the Nexio's internal database.

Wrote a multi-threaded FTP client library that streams files directly in the application, to achieve maximum throughput.

Developed code to read and write industry standard file formats (LXF, GXF, MXF, Quicktime, MPEG-2).

Upon becoming responsible for other components of the system, reworking existing code to fix problems. Which in some cases required re-designing portions of the application.

When new formats were introduced or existing ones modified, extending the system to handle them.

Added handling of 10 bit video. Which required translating between 3 different 10 bit formats for what decoders, custom logic board, and encoders handled.

As the system grew in complexity over time. XML configuration files, and result reporting in XML which via XSLT could produce CSV and HTML files, was added.

Added capability to process audio and rebuild AV files without re-encoding video to help comply with federal loudness regulations, and not suffer quality loss from video re-encoding.

Used several video codecs (DV, MPEG-2, H.264, DNxHD, ProRes(decode only)), and audio codecs (MPEG, AAC, AC3, Dolby E).

Wrote applications and support libraries for other devices running embedded Linux.

COMCAST CABLE, Radnor, PA January 2005 – February 2006

Senior Software Engineer

Continued performing QVC duties, after Comcast acquired the TargetTV division. Work done in C/C++ embedded SQL, JavaScript, and HTML.

Researched, architected, spec’ed an iSCSI SAN network system.

Wrote Web interfaces with dynamically generated JavaScript, CSS and HTML. Based on a system of templates, which define data definitions and presentation, allowing easy change of end result presentation without binary code modification. Some pages used asynchronous display and forms through scripting, a type of AJAX.

QVC, West Chester, PA January 2000 – December 2004

Senior Software Engineer

In the TargetTV division, a joint venture between Comcast & QVC, contributed in design, developed, modified and enhanced server side programs. Work done in C/C++, embedded SQL, JavaScript, and HTML.

Conceived and implemented anonymous tracking system for privacy assured data gathering of television viewing behavior. This allowed tracking of an individual’s viewing behavior, without being able to know who they are. A patent has been applied for this process.

Re-designed the TargetTV Viewership server software and data structures to be dynamically extensible and support aggregation, allowing the processes to scale by adding additional inexpensive servers.

Developed server side support services for interactive television, for cable systems using Scientific Atlanta and Motorola systems digital cable boxes (STBs).

Developed and enhanced DLLs and CGIs for Microsoft, IIS for chart display, as well as, display of past transactions and interactions through STBs or computer browser.

Designed and developed interactive commerce transaction collection, forwarding, archiving, and historical reporting.

Created and developed an encrypted http (non-HTML) request and response for a web CGI serving a custom client, for use where https and other secure protocols were not available.

BAJA SYSTEMS, Aston, PA September 1990 – December 2000

Senior Software Engineer

At the time I left the company was responsible for all software development, with 4 engineers under me.. Designed, wrote, and maintained statistical, billing, operations, and customer support software for telephone carriers, primarily cellular and long distance. Work done in C, Unix shell script and Informix SQL.

Worked with customers to develop custom solutions to meet their needs.

Projects used various software tools including TCP/IP sockets, RPC, C-tree, an ISAM file systems I developed, Informix, X.25.

Developed data collection software to read call records from digital switches manufactured by Lucent, DCS, Nortel, Alcatel, and Motorola. Transport protocols included X.25, HDLC, RPC, TLI, and serial.

Internal and external data transfer systems using raw sockets, FTP, and uucp.

Created a real-time usage monitoring system with usage level alerts, and automatic customer shutdown, for an inexpensive debt or pay as you go billing system.

Designed and developed a real time database system for customer service, engineering, and law enforcement that stores and reports on all call activity in the system. Capable of handling over a gigabyte of data per day on an inexpensive Pentium based server, with a true two-tier client server application suite.

Held responsible for data translation, which converted raw call records to various external formats.

Automatically updated external devices via their human or computer-to-computer interfaces. Connections via serial, telnet, raw sockets, and X.25.

Compiled various statistical reports on call and statistical records from digital switches.

Wrote an alarm, status monitoring and reporting system, with automatic paging on critical levels and an interface to a GIS display system.

Used serial and telnet interfaces to automatically and manually communicate interfaces to external devices.

ADP-BISG, Moorestown, NJ May 1988 – June 1990

Member Technical Staff

Modified and enhanced the LifeNet network operating system running on IBM PS/2's using IBM NetBIOS and Token Ring. Most work performed in C, 8086/286-Assembler.

ARCHIMEDES, Philadelphia, PA May 1987 – May 1988

Software Engineer

Designed and wrote an object-oriented Information Management System for MSDos, all work completed in C.

MCTEL, Philadelphia, PA May 1984 – May 1987

Software Engineer

Designed and wrote software, firmware, and drivers for a 68000 based telecommunications processor. Work performed in C, and 68000-assembler. Various projects for MSDos in C, and 8086-assembler

UNIVERSITY OF PENNSYLVANIA MEDICAL SCHOOL, Philadelphia, PA May 1983 – May 1984

Computer Specialist

Worked in Pascal on a Z80 based CP/M system and 6502 assembler on an Apple II.

EDUCATION

Philosophy program, University of Pennsylvania 1979 - 1983

Strong concentration in Computer Science.

Work 95% complete



Contact this candidate