Post Job Free
Sign in

C, C++, Java, UNIX/Linux/Embedded

Location:
Brighton, TN
Posted:
November 25, 2024

Contact this candidate

Resume:

Randall D DuCharme

*** ****** **. ********, ** **011

Cell: 901-***-**** (No Text please)

E-mail: *****.*****@*****.***

Self-motivated, performance-driven IT professional with 23 years of extensive hands-on experience in all aspects of creating software programs including software development, engineering, and testing. Analytical, critical thinker adept at pinpointing issues to debug and quickly solve problems. Excellent communication and active listening skills lend to clearly conveying complex technical information to multiple tiers with varying proficiencies. Keen collaborator and team contributor able to deliver results in high-pressure, dynamic environments.

Objective

A long-term, permanent position as a programmer, software developer/engineer or technical lead preferably within a UNIX/Linux, Macintosh, Android or embedded software environment I could also handle, and be interested in Linux administration. At this time I’m only considering Memphis-metro local or fully remote work. Relocation is not an option, nor are hybrid roles in locations significantly distant from my home. (address above) House, property, barn, horses; relocation is not a trivial thing nor is it inexpensive for me.

Skills Summary

Hardware:

PCs of various descriptions and their components, Sun workstations, managed and unmanaged hubs and switches, Cisco and Ascend routers, Motorola and Paradyne CSU/DSUs, Digi serial port servers, Wyse terminals, Castelle and Intel remote print servers, Telxon and Symbol handheld computer/scanner devices, Modicon PLCs and I/O cards, and brief experience with PIC and AVR microcontrollers.

Software:

Development Software: SCO C/C++, Sun Microsystems C/C++, GNU C/C++, IBM Visual Age C/C++, Microsoft Visual Studio C/C++, SCO, Sun, GNU,IBM and Microsoft Debuggers. Android Studio and the Android Java SDK, core Java, Bourne, korn, bash and c-shell scripts. Some Perl, Python, Ruby, Java, XML, assembly language (MASM, NASM, PIC & AVR), some HTML, Javascript and other web-oriented languages and tools, brief exposure to cloud and IOT technology, various UNIX based web, graphics, and software development tools and toolkits, ZPL printer control language, Android Studio, Eclipse and IBM RSA, IEC Function block and structured text automation programming languages and tools for PLC development.

Operating Systems: SCO OpenServer, SCO Unixware, BSD/OS, Solaris 7 through 11, AIX (software development only), Linux (RedHat, Debian, SuSE and OpenSuSE, ArchLinux, CentOS, Fedora, Ubuntu, Raspbian etc) and FreeBSD, Microsoft DOS, Windows 3.1x, Windows 95/98/ME, XP, Windows 7, NT Server and Workstation 3.1 and up, Windows 2000, Novell NetWare 3.11, 3.12, 4.10, 4.11, IBM OS/4690, IBM OS/400, Cisco IOS and Ascend Pipeline operating system software.

Databases: Raima Velocis, Sybase SQL Server, Informix, Microsoft SQL Server, DB2, PostgreSQL, mySQL, Solid, Typhoon, Berkeley DB, Teradata 10 and Oracle 8.

Server Software: Apache, Sendmail, Bind, Ntpd, Sshd, Popd, Ftpd, Telnetd, Routed, Gated, Amd, Vold.

Other: Embedded SQL/C (ESQL/C), Bourne shell scripting, AWK, Curses and the usual UNIX tools (sed, cut, sort, wc etc.), QT, WxWidgets, Motif and GTK toolkits, POSIX threads and OpenMP, some OpenGL,-various source code version management systems, (RCS, SCCS, CVS, Subversion, Mercurial, Git, Dimensions, Rational Clear Case/Clear Quest etc.) and a little IBM SI-GUI.

SDL Methodologies:

Experienced in several software development life cycle methodologies from the early “sketch on a napkin during lunch” designs, on to more formal detailed techniques such as “waterfall” and “Agile” (both XP and Scrum). Have been involved in all aspects of design/development from scope/requirements phases all the way through to implementation, training and support.

Test Frameworks:

Test-based development. I’ve been very test-centric throughout my career in software development in that my approach is largely test-based from inception to completion. Test cases usually start before coding begins and evolve as the software does

Experienced with cppunit. Regularly used JMeter and have used JUnit for unit and system testing.

Have built and enhanced proprietary scripted automated regression testing tools in several roles for the purpose of automating the testing of new functionality in regression test labs, to further help ensure that existing functionality is needed and newly added functionality can be repeatedly tested as the deliverables continue to evolve.

Open Source Experience

Maintained several different custom Android ROMs based on the Google AOSP project for numerous Android devices. This included building the system from source, board bring-up, kernel customization and patching. Submitting some patches upstream. See my Github: https://github.com/AD5GB/ for this work.

Submitted bug fix patches to the Apache Traffic Server project.

Submitted patches to the Maximus5/ConEmu project.

Contributed to the OpenSolaris project before Oracle bought Sun and closed down the project.

Professional Experience

Freelance work (numerous) Remote 06/21 to present

Sr. Software Developer

Performed numerous small freelance tasks for numerous individuals and small businesses while working with staffing companies to find more substantial work. Some examples are:

Maintenance upgrades to an in-house GitLab server.

Conversion of web pages from Dream weaver to PHP

Create new PHP web pages.

Migrate MySQL database to PostgreSQL

Cook Systems (contractor) Memphis, TN 03/21 to 05/21

Sr. Software Developer

Contracted to IMC for UNIX/Linux software development work.

Enhancements and maintenance of existing C code.

Assisted in porting efforts to migrate software from the 32bit SCO platform to 64bit Linux.

Environment: UNIX/Linux, C/C++,TCP/IP

QuikQ LLC Franklin, TN 01/18 to 03/21 Sr. Software embedded Engineer

Helped to maintain and enhance fuel payment processing system programs running on the IBMI platform, mostly written in C++.

Worked on supporting and maintaining mobile and remote fueling applications on remote embedded Linux systems.

Worked on developing a couple remote fueling applications for RFID-enabled Android devices in Android Studio using Java, JNI, the Java Android SDK and Volley to access RESTful web services. This provided for remote fueling upon scanning an RFID tag with the mobile device.

Began porting IBMI-based payment processing applications to the Linux platform with DB2 LUW and PostgreSQL database backends (as proof of concept).

Performed maintenance and enhancement tasks on a Core Java-based application called “the balancer” that ran on the IBMI platform. The application performed recalculations of purchase and spending limits set by a carrier as they were modified or as the spending limits were consumed by a driver.

Took over maintaining the company’s Gitlab server software. Developed several Gitlab hook services in Ruby and ported an existing one from NodeJS to Ruby.

Ported an embedded Linux pump management system from an ARM/Raspberry Pi platform to and embedded Intel/x86_64 platform. This was problematic at first due to numerous code problems. Made heavy use of Valgrind, Helgrind, GDB and GCC’s built-in diagnostics to find and fix numerous thread contentions (race conditions) memory leaks, buffer overruns etc.

Environment: UNIX/Linux, C/C++, SQL, NODEJS, RESTful

Manpower Professional (contractor) Jackson, TN 11/16 to 08/17 Software Developer

Helped with data warehouse systems migration for Ingram Distribution. Perseus Distribution was acquired by Ingram necessitating migration/integration of Perseus’ legacy C/AIX WMS. Assisted with various custom ETL processes and temporary enhancements to the legacy code.

Udig Technologies LLC (contractor) Goodlettsville, TN 05/16 to 11/16 Sr. Developer

Worked at Dollar General performing maintenance and enhancement tasks on their custom Linux-based Point Of Sale applications written in C and C++ running on 4690 hardware.

Cybera Franklin, TN 01/16 to 04/16 Embedded Development Engineer

Worked with secure cloud computing appliances in Perl and C that use embedded Linux on an Intel Atom platform.

QuikQ LLC Franklin, TN 07/14 to 01/16 Sr. Software Engineer

Worked in C++, Java and DB2 on the IBM I-Series (OS/400) and Red Hat Linux platforms maintaining and enhancing the RFID Fuel Payment System, purchase limits balancer, credit and image capture systems ( C++ and Java on the I ) and some of the Java/JSP in the web portal. (RedHat/Tomcat) Also worked on Java-based utility programs that run native OS/400 applications, access DB2 and native APIs on the I-Series machines, mostly for use in automating software releases, database upgrades and monitoring. Helped migrate the version control system from Aldon to Git.

Insight Global (HP Enterprise Services) Nashville, TN 07/13 to 06/14 Sr. Software Engineer

Worked for HP Enterprise Services as a contractor to the State of Tennessee – Department of Tenncare. Designed, built, tested and implemented new applications as well as refactored existing ones to facilitate new functionality mandated by “The Affordable Healthcare Act”. Also assisted with maintenance and bug-fix activities. Applications are mostly in C/Pro*C on Solaris systems. Autosys is the enterprise scheduler used and jobs were written in C-shell.

L.J. Smith & Associates (IBM) Bentonville, AR 09/12 to 07/13 Sr. Software Engineer

Worked for L.J. Smith (an IBM partner) as a contractor to Wal-Mart with their 4690-based POS systems. Worked mostly with defect analysis and mitigation on the terminal sales, self check-out (C and C++) and GUI-based (Java/XML) POS interfaces.

TEK Systems Inc. Collierville, TN 01/12 to 08/12 Sr. Systems Analyst

Worked as a contractor to FedEx Corporation maintaining, enhancing and supporting shell and SQL scripts for an ETL process in the department responsible for web measurements statistics reporting.

AutoZone Inc. Memphis, TN 6/04 to 8/11 Programmer/Analyst

Worked with the development of PCI compliance POS software enhancements, collaborating with card processing agencies.

Worked in the merchandising group to help maintain a few of the merchandising specific applications. Became familiar with the company’s Linux EZ-C based Point Of Sale system.

Developed a ‘limited QA’ application using the POS, a filter application that emulated register hardware and the UNIX shell. This process served to test deals before they were sent to the store. Used C, ESQL/C and shell programming techniques to accomplish this. The business users set up the deal. Then the mainframe sent the deal to the test application. It ran a variety of tests to verify that the POS system would apply the discount as expected, and then notified the user of the test results. This automated process freed up 2 developers time since prior to this, deal transactions were tested manually.

Worked to develop a more robust deals system that will allow the company to distribute many more types of deals to the stores. My work on this project is on an even more robust and fully featured automated QA system and it is hoped it can evolve into a regression testing tool for use by other groups. Also worked on the store-side and back end systems for this application. In this project I again used C, ESQL/C and Bourne shell programming on both the Linux and AIX platforms.

Designed and developed a shared library for processing electronic rebates at the POS system. This allowed printing of rebate coupons on-the-fly rather than having to have pre-printed rebate coupons available thus saving the company those printing costs.

Assisted in maintenance and enhancement of existing legacy software in various areas as needed. Employed advanced analysis and debugging techniques to help improve software quality and reliability.

Designed and developed several ETL programs and scripts for the purpose of extracting product and sales data from corporate data sources, reformatting it and preparing it to be loaded into a 3-dimensional database system provided by SAS/MarketMax which was ultimately to be used for merchandise inventory planning. This was done on the AIX platform using C, ESQL/C, Bourne shell programming, AWK and several common UNIX tools within the scripts. The sheer size of the files and volume of data made application performance critical.

Worked on part of the commercial addition to Znet ( a GUI based parts lookup tool and customer-facing application) using the QT GUI toolkit and C++.

Worked as a C/Unix developer on various supply chain group software; mostly inventory management and shipping/receiving applications. Wrote and enhanced many Informix stored procedures and again made use of C, ESQL/C and shell programming techniques. Also built some Perl scripts that handled file transfer tasks for electronic Facturas.

Tyson Foods Inc. Springdale, AR 7/99 to 6/04 Senior Programmer/Analyst

Maintained existing Sybase backed, UNIX based data collection programs that ran in the processing plants. This involved bug fixes, enhancements, and modifications to match changes in application requirements. Some were background processes and daemons but my main responsibility was the user interface program that was accessed via telnet from remote RF handheld computers. All were C-language programs, most using embedded SQL, with supporting Bourne and korn shell scripts. Made liberal use of UNIX debugging tools such as debug, dbx, truss, bounds-checking compilers, etc.

Maintained several EAN128 barcode scanning applications.

Ported these applications from SCO OpenServer to SCO UnixWare when the company made the decision to change to the UnixWare platform.

Created utility programs to automate tasks such as logfile rotation, inventory reconciliation, user account maintenance, etc.

Designed and built a multi-threaded socket server for a very high visibility automated freezer system. The program ran on UnixWare, was written in C, used Sybase embedded SQL/C and fully exploited the POSIX threads interface. The freezer system had many timing-critical aspects to it thus the interfaces had to be fast and efficient, thus my reason for choosing the threaded implementation. Also wrote a few Windows DLLs in Visual C++ to facilitate communications from the PowerBuilder desktop interface to it.

Ported some of the UNIX EAN128 barcode scanning routines to a Windows NT/2000 DLL using Visual C++, COM and the Microsoft ATL interface for use in a CE-based data collection environment. Became acquainted with XML.

Mentored junior level team members. Became known as one of the "go to" people for solving tough C,C++ and UNIX problems.

Maintained, enhanced, and improved a production costing system that ran on AIX and was written in embedded SQL/C, as well as performed significant code cleanup/re-write to improve both performance and reliability. Made liberal use of the GCC bounds checking extension to locate buffer overflows, memory leaks and other common C coding errors. The end result of this was an application that reliably produced correct calculation results which prior to this it did not. Enhancements were performed regulary as requested by corporate accounting personnel. Application performance was enhanced by greater than 300% by exploiting UNIX SYSV IPC.

Worked briefly with some COBOL batch jobs, modifying some due to datafield size expansion requirements, and re-writing others in ESQL/C to run on UNIX platforms.

Worked in the engineering group developing production process automation solutions using PLCs and standard automation tools. Wrote PLC programs for feed mills, hatcheries, rendering plants and freezer systems.

GMT Technologies, West Allis, WI 1/99 to 7/99 Systems Engineer

Worked as a general PC, Novell, UNIX and Microsoft LAN/WAN support technician/engineer.

Designed and installed FreeBSD-based firewalls for corporate internet customers.

Performed UNIX administration, and some small programming tasks for the internet services provided by the company.

Computer Specialists, Menomonee Falls, WI 5/95 to 1/99 Systems Engineer

Performed general Novell, UNIX and Microsoft based network design, installation, implementation, administration, upgrade, maintenance, and repair services for several local academic, industrial/manufacturing, accounting and retail firms.

Evaluated Solaris, SCO, Linux, BSDI and FreeBSD for their suitability, scalability, and performance for use as internet/intranet database and web servers.

Designed, setup, and maintained the leased line ISP services provided by Computer Specialists. Configured routers and firewalls for several T-1 and ISDN customers. Maintained mail, news, web, and DNS services running on BSD UNIX machines.

Designed several web databases on Microsoft and UNIX platforms. Wrote CGI programs in C and C++.

Increased the company's profitability and residual income with the above skills and expanded the company's marketability with the NT and UNIX networking skills I added to the company.

Environment: C/C++, UNIX, LINUX, Windows, TCP/IP

Kettle Moraine Computers, Hartford, WI 11/94 to 5/95 PC Technician

Assembled, configured, tested, and repaired desktop PCs.

Installed desktop operating system software and general applications.

Econex Explosives, Neosho, WI 3/91-11/94 Blaster/Explosives Tech

Licensed and proficient in the technical aspects of explosive use and deployment.

Designed, setup and initiated various types of blasts for quarrying, trenching, surface mining, construction, and agricultural purposes.

Maintained inventory and transaction records for all types of commercial explosive materials.

Irle Ford and Royal Ford, Hartford WI 8/85 -3/91 Automotive Technician

Performed all aspects of automotive and light truck repairs.

Specialized and certified in the areas of computerized engine controls, automatic transmission repair, manual transmission and drivetrain repair, engine performance and driveability concerns.

US Army 8/82-7/85 Parts/Records clerk

Enlisted as field artilleryman.

Became responsible for equipment maintenance and parts in TAMMS/PLL

Completed my tour of duty as a parts clerk.

Honorably discharged.

Mantel Machine Products, Meno. Falls, WI 1-82 Machine operator/setup

Began as an operator of wire feed hand screw machines.

When they learned of my mechanical aptitude I was put in charge of a small line of hand screws to set up from blueprints to manufacture a wide variety of parts, maintain the same – I.E. sharpen drills, shaping and cutoff tools when they became dull or began producing parts that were out of specification.

Performed some simple toolmaking.

Kept the machines in running condition.

Education

High School. Falls North High. Menomonee Falls, WI – Class of '79

US Army electronics engineering correspondence courses.

Training

Intellicom ISDN and leased line training seminar, fall of '86

Learning Tree Unix/Linux Programming course. Summer of 2000.

Telxon Airgate course. Summer of 2000.

Attended several internet-based C++ programming correspondence courses.

US Army electronics engineering correspondence courses.

Interests and activities

UNIX/Linux, open source and Android software development (mostly kernel, drivers, and Android internals). Horse care and horseback riding (classical dressage), Chinese martial arts, music, electronics, amateur radio, chemistry, pyrotechnics, fishing, hunting, gardening, farming, vehicle maintenance and repair, tinkering with machinery.



Contact this candidate