Post Job Free

Resume

Sign in

Software Engineer C++

Location:
Eagan, MN
Posted:
February 21, 2024

Contact this candidate

Resume:

ROBERT L. ODEGARD

**** ****** **.

Eagan, MN ****2

612-***-**** (Cell)

ad3sxn@r.postjobfree.com

Career Summary:

Software Engineer with 30+ years experience using a variety of technologies and platforms to solve real world problems. Demonstrated strengths in learning technologies, object-oriented design and innovative problem solving, from embedded systems to client servers.

Skill Summary:

Languages: 20+ years C++, 12+ years C#, 30+ years SQL, 2 years Python, 1 year Java, 20+ yearsAssembly, and 1 year PowerShell. Web: ASP.NET, Angular, Vue.js, Blazer, Cold Fusion, MVC, ASP, HTML Databases: 20+ years Microsoft SQL, 2 years MySQL, 6 years Sybase, 3 years SQLite Operating Systems: 6 years RTOS, 2 years Ubuntu LINUX, 3 years Raspberry Pi, 20+ years MS-Windows, 30+ years MS-DOS. Networks: TCP/IP, Microsoft COM/DCOM, Embedded (CAN, I2C, SPI and WS2812). Hardware: IBM PC, SUN, HP, Embedded (Arduino, ESP32, Teensy 4.x, Seeeduino Raspberry PI, Raspberry Pi Pico, 68000, 80x86, 68332, 68376, 8051, 8515, SX8, PIC).

IOT: 2 year Home Assistant (ESP32 with C++)

MQTT: 2 years Home Assistant, 2 years Node-Red

Software: GIT, WPF, Intel-J, VS Code, Spring Boot, IIS, TFS, ROS2, Home Assistant, Nana GUI C++, Node-Red, IOT ROS2 (Robot Operating System) using Ubuntu Linux 1 year Design: 20+ years OOD

Graphics: 20+ years Adobe Photoshop, 5 years Corel Paintshop Pro, 2 years Direct X Relevant Experience:

C++ (20 years)

Independent Consultant

Tech-Pro/Global Case

Teradyne

RoboVac Systems Inc

Forth Shift

Jasc Software Inc.

Software Architects

Adia Information Technologies

Cooperative Power

Apertus Technologies

Embedded (12 years)

Independent Consultant

Teradyne

RoboVac Systems Inc

Apertus Technologies

Dairyland Power

RTOS (6 years)

Independent Consultant

RoboVac Systems Inc

Apertus Technologies

SCADA (9 years)

Cooperative Power

Control Data Corporation, Energy Management Division Dairyland Power

Robert Odegard 2 of 5

Work Experience:

Independent Consultant: 2021 – Present

System Designer for local business

Developing a control system using Node-Red on Ubuntu Linux with Arduino microcontrollers, to control the special effects of an entertainment production. This includes developing the printed circuit boards, sensors and output control modules. The Node- Red UI interface, allowing none technical people to update how the system interacts without requiring developers to update the software.

Using Teensy 4.1 with RTOS to control devices for effects.

Using ESP32 for wireless communication to Teensy 4.1 devices.

Using ESP32 with Home Automation to control devices for effects. Talent Software Services on assignment to MN-BCA 2022 – Present Application Developer (C#, MVC, HTML, JavaScript, React, VUE.JS, SQL, Windows Services)

Performed enhancements of the BCA law enforcement Predatory Offender Registry Web site, utilizing C# .Net 4.5, MVC, JavaScript, HTML, and windows services.

Developed a GUI project task tracking application using C++/20 and Nana GUI C++ library that is cross platform (Windows and Linux)

Developed a C++ version on Linq using C++/20

Roehl Transport 2009 – 2022

Application Developer (C#, WCF, WPF, Angular, ASP.NET, MVC, SQL, Windows Services)

Designed and implemented C++ tool FP (File Processor) that can be used to assist in manipulating data to generate command scripts or SQL scripts.

Designed and implemented the .net window services and UI, allowing the central dispatch control system to utilize a new Fuel & Route management system from Manhattan Associates. This include the following technologies and systems: web-based user interface to administer and use the system, web-based report exports to excel, TCP/IP communication, MSMQ inter-process communication, Email notification, WCF services (client and provider), web-services, Windows Services, internet maps to display location of vehicles, PC-Miler integration.

Designed and implemented a web-base application parameter configuration tool, allowing developers to control the values of application parameter settings, and provide audit trail of parameter changes.

Designed and implemented a refrigerated trailer monitoring system using new StarTrak WCF services to monitor the state and temperature of refrigerated trailer moving thru out North America.

Designed and implemented the sub-system for Qualcomm communication that replaced the AS400 Qualcomm communication system. The new sub-system utilizes the new WCF interfaces from Qualcomm and several .net windows services to allow direct communication with Qualcomm devices and our central dispatch control system.

Designed and implemented the sub-system for DriverTech (TruckPC) that replaced a custom DriverTech SQL base interface. The sub-system utilized the new WCF interfaces from DriverTech and several .net windows services to allow direct communication with DriverTech devices and our central dispatch control system.

Created new Qualcomm and DriverTech macros for DOT DVIR reporting along with the changes in background processes to support the validation, logging and reporting of DVIR messages.

Designed and implemented a .net windows service to retrieve and store HOS (Hours of Service) data from Qualcomm and DriverTech, using new WCF services. Plus, altered existing web-pages on the central dispatch control system to display the HOS data to the fleet managers.

Designed and implemented a .net window service to retrieve and store the ELOG (Electronic Log) for drivers from Qualcomm and DriverTech, using the new WCF services. Created new web-pages in the central dispatch control system to graphically display the ELOG information to the fleet managers.

Designed and implemented a .net windows service to automatically report driver hours for all drivers with Qualcomm or DriverTech ELOG equipped trucks.

Designed and implemented .net windows services to retrieve Qualcomm SensorTracs and DriverTech DriverPerformance information from new WCF web-service interfaces and send that data to the Driver Payroll system.

Enhanced functionality of an EDI Microsoft MVC 3.0 Utility Web-Site, allowing EDI implementation personal to directly update control records within the BIZ Talk system, allowing rapid EDI “On Boarding”.

Developed utilities for developers to do their work more efficiently.

Refactored existing code bases to be more testable by adding repositories, isolating external dependencies, allowing tests to use mock software to help test code.

Added OpenLayers and ALK Map functionality to Fuel & Route System and IRIS user interfaces.

On the scrum team to develop Workflow process to aid the drivers in the day to day activities. This process had many parts, from MVC front ends to client server back office applications. Robert Odegard 3 of 5

Tech-Pro 2005 – 2009

Sr. Consultant - On assignment at Target Corporation

Web Applications

Developed enhancements to internal web applications that accessed DB2 database and performed “Stores Order Enhancement” and

“Automated Production Guide” operations.

GUI

Converted VB applications into C++ GUI systems and create new GUI applications (either C++ or C#) as need to support Stores Development.

Web-Services

Designed, developed and implemented Web-Services using ASP.NET to allow corporate applications (web and otherwise) to retrieve the URL of the ISP (In Store Processor) database. Also, designed, developed and implemented the ASP and C++ code required to access the web service.

Win CE SIP

Developed and implemented Win-CE keyboard plug-in, using Visual Studio 2005.

Graphics for web development

Using Adobe Photoshop CS2 was able to combine images to make them look “Real” for use in various business web applications.

Common Printer Efficiency

Modified legacy C++ applications to remove custom label printing code and use a common web service printer engine to print shelf labels. Developed the C++ interface wrapper used by the legacy C++ applications to call a SOAP web service.

C# Inter-Op to existing COM components

Developed and implemented COM objects to interface between C# applications and legacy COM components.

C# Common Function Library

Developed and implemented a Common C#.NET library containing utility functions for application development.

Enhanced Legacy application testing

Developed and implemented methods to automate the testing of existing legacy C++ applications. Designed and implemented tools to support testing of applications (MQ Utility, SQLADO Utility).

Legacy application performance enhancement

Modified an existing legacy C++ application to optimize the SQL queries and processes to increase the number of labels printed per second by 300%.

VC 6.0 to VC 2008 Migration

Assisted in the migration from Microsoft VC 6.0 to VC 2008 and solved various migration problems.

IBM Web Sphere MQ Development

Designed and developed applications using IBM Web Sphere MQ to transfer data from a source (corporate data servers or “In Stores Processor”) to a destination server, storing the data in a database or passing it on to other processes.

Trouble Shooting Store Issues

Performed diagnostics in the store systems to resolve problems encountered at the stores.

Mentoring

Provide mentoring to junior developers on various technologies. Robert Odegard 4 of 5

Teradyne 2004 – 2005

Sr. Software Engineer

Developed a daily testing environment to execute functional tests on updates of the programmable power supply and distribute the results to the development department. Developed a code generator (in Perl) to automatically create the COM code to link the Windows application to the embedded system. Developed a data caching system for the Windows application and the embedded system.

Global Case 2003 – 2004

Sr. Consultant

From UML specifications implemented various upgrades to C++ and Microsoft SQL Server applications for a retail distribution organization. Assisted in the evaluation of Microsoft .NET for future development. RoboVac Systems Inc 2002 – 2003

Sr. Development Engineer

Designed and implemented the embedded “Engine Room” platform of an autonomous robotic system that can navigate in an industrial environment.

Software:

Image processing

Image capture using direct X

Edge detection using various methods: Robert’s, Sobel, etc.

Statistics such as histograms, standard deviation, means and averages

Color segmentation

Pattern matching

Process Control

PWM (Pulse Width Modulation) of drive motors using 68332 TPUs

Quadrature decoding using the 68332 TPU

PID (Proportional Integral Differential) process control

Trajectory Generation for PID using either distance or velocity profile

Dead Reckoning processing for location tracking

CAN (Controller Area Network) - the primary means of communication between all the processors onboard the robot

I2C - Network communication between various sensor modules

Embedded programming of dedicated sub-processors Atmel T89C51CC01 and Sceinx SX8s

Simulation system that allowed for testing new software before it was loaded into the robot Hardware:

Dual H-Bridge Motor Control unit

Embedded CPU board design and layout

Interfacing circuitry:

Power indication via optical-isolation

Caster angle via a signal conditioning op-amp

Bump sensors via a de-bounce circuit

“Stop Cord” via relay and TTL control logic

Multi-Channel Sharp IR sensor interface for the T89C51CC01 cpu

Designed the main power unit and control system with both hardware and software interlocks Forth Shift 1999 - 2001

Senior Software Engineer

Performed tasks to migrate a legacy application to utilize MS-SQL Server, ADO, OLE-DB, COM/DCOM (both MFC and ATL).

Designed and implemented feature and speed enhancements to FSRecordset (a C++ wrapper class for simplifying and isolating access to the database).

Completed implementation of the “Deferred Task Framework” a multi-threaded multi-host library that allowed for multi-threaded server applications to be invoked and controlled from a remote client.

Performed speed enhancements on numerous Microsoft SQL server stored procedures.

Designed and implemented the “Lockless Scroller” (a library that easily allows developers to build interactive screens to access and manipulate information in the SQL database).

Performed tutoring and mentoring to other developers in C++ and SQL. Robert Odegard 5 of 5

Jasc Software Inc. 1999 - 1999

Senior Software Engineer

Implemented new graphics features in the libraries using MS VC++ 6.0 for Paint Shop Pro and Animation Shop. Developed the software to allow Paint Shop Pro to read and write Adobe Photoshop Adjustment layers. Software Architects 1995 - 1999

Software Consultant - On Assignment to Carlson Company - 1997 - 1999 Designed and implemented a three tiered multi-user Client/Server Application for credit card reconciliation, using MS VC++ 5.0, MFC, ODBC, COM/DCOM, TCP/IP, SQL, Sybase SQL Anywhere, and MS-SQL 6.5. This system allows the users to take in charge card statements and match them to expense data to determine the actual billing to the charge card vendors. Software Consultant - On Assignment to West Publishing - 1995 - 1997 Converted windows C based applications to a C++ framework for the Premise Publisher 4.0 system. Designed and implemented a smart data dump utility in Borland C++, allowing user to view Premise data files in a more usable manor. Designed and implemented the virtual data paging system and table access engine for a database system. Adia Information Technologies 1994 - 1995

Software Programmer - On Assignment to 3M

Designed and implemented a C version of a C++ Class Object to access a Sybase database. Designed and implemented various business interface applications using C and SQL, using Sybase Data Server on a HP T-500 platform running UNIX S5V4. This software interfaces the OpenUpTime product (Sybase client/server application) to legacy HP-3000 and IBM mainframe business systems.

Cooperative Power 1992 - 1994

Senior SCADA System Analyst

Designed and implemented a C++ Sybase database wrapper on the SUN Solaris UNIX system, providing faster application development. Designed and implemented C++ container classes (stacks, lists, trees and queues) for the IBM-PC.

Designed and implemented a "Pattern Propagation" tool, using C on an IBM-PC to populate the SCADA database.

Designed and implemented interface applications using C/C++ and SQL using Sybase Open Server on a SUN Solaris 2.2. Apertus Technologies 1987 - 1992

Senior Software Engineer

Designed and implemented applications and features using PL/M on an embedded 80186/IBM-PC platform, for use in the DataStar 5000 cluster controller, including a Keyboard modify utility, an IBM 3270 Screen Presentation system for utilities, a diagnostics utility, and other related features.

Designed and implemented the conversion of the RTE (Real-Time operating system) to allow dynamic configuration of system tables and resources. The conversion merged nine separate versions of the RTE into one easily maintainable version. Redesigned device drivers used in the RTE, and designed and implemented a crash dump analyzer (DMP).

Designed and implemented a multi-tasking MS-DOS operating system, using C. The system replaces conventional MS-DOS and provides all the same services as conventional MS-DOS.

Implemented enhancements to the TCP/IP applications interface system used in the Telnet module. Control Data Corporation, Energy Management Division 1985 - 1987 System Programmer

Analyzed and implemented the enhancements for R&D version of the Supervisory Control Sub-system, used in the SCADA

(Supervisory Control and Data Acquisition) System. Designed and implemented a SCADA development system, allowing developers to unit test their software, without having to reserve limited test-bed hardware. Dairyland Power 1982 - 1985

System Programmer

Designed and implemented a Real-Time Data Acquisition System for a nuclear power station, using FORTRAN and Macro-11 on PDP-11 running RSX11-M. Designed and implemented a Reactor Plant Simulator as a training tool for emergency drills. Designed and implemented scientific applications for the Health and Safety department. EDUCATION

Bachelor of Science in Computer Science - 1982

University of Wisconsin-La Crosse - La Crosse, Wisconsin



Contact this candidate