Senior Software Developer

POSITION SUMMARY:

Location: Corvallis, OR
Industry: Technology, Mining and Railroad
Manages Others: Not at this time, but may change
Job Type: Information Technology/ Software Engineering
Education: 4 Year
Degree Experience: At least 8 years

Reporting to the CEO, the role as Senior Software Developer will be designing, developing and supporting assigned applications. This position is a key member of the Tunnel Radio of America (TR) technical team that supports all aspects of the business. This is a functional as well as technical position and requires excellent communication skills with interaction with all levels of the organization.

Tunnel Radio builds and sells proprietary radio technology that allows radio signals to propagate underground, in areas such as mine shafts, railroad tunnels, etc. In addition to their primary function of radio signal enhancement and propagation, the Tunnel Radio devices within an installation can report their status information to a local aggregator which can, in turn, send that information to TRCentral, the customer-facing web portal in which Tunnel Radio systems are managed and overseen, a.k.a. the Tunnel Monitoring System (TMS). Conversely, TRCentral can perform field commands on devices through the TMS/TMI gateways, to accomplish activities such as firmware updates.

ESSENTIAL DUTIES AND RESPONSIBILITIES:

MINIMUM QUALIFICATIONS (KNOWLEDGE, SKILLS, AND ABILITIES):

OVERVIEW OF TECHNOLOGIES AND ENVIRONMENTS:

Embedded Microcontrollers (MCUs) used in TR products are an 8-bit AVR® architecture from Microchip Technology Inc.’s ATmega line. Firmware code is written in C, and the Makefiles specify gnu99, GNU’s implementation of the C99 Standard. The GNU C compiler (gcc) is used, but a specific variant of it named avr-gcc, designed for the AVR architecture is employed. https://www.microchip.com/mplab/avrsupport/avr-and-arm-toolchains-c-compilers

PC Software A few pieces of Windows PC software exist to interact with TR products and for functions such as configuration, firmware updating, data collection, etc. Those software products are written in C or C++, GUI ones use the wxWidgets toolkit, gcc is the compiler used, and Code::Blocks is used, at least in some cases, for building the software.

TRCentral (TRC) and TIM (TRC Integration Module) TRCentral is a responsive web application built with ReactJS, Python, and Django, with a MySQL RDBMS. It runs under Nginx, on CentOS Linux.

TIMs (TRC Integration Modules) are built with Raspberry Pis running Raspbian Linux and operate intelligent gateways between the TR products at a given installation (radios, amplifiers, etc.) and TRCentral. TIM communication with the installed field equipment is via serial (RS232), but performed over a USB connection to the Pi, and is coded with pyserial. Communication with TRCentral is via web service calls. Most of the software logic in a TIM device is written in Python and it uses a local Redis data store. TIM device have local web consoles, built with ReactJS, Python and Django. There are Linux systems administration aspects TIM devices that fall within the purview of the TIM software, and so a working understanding of those aspects is important.

In addition to local web access to TIMs, and user access to TRCentral, TR Central provides email alerting for noteworthy events. Some work on SNMP has been done using pysnmp, but it is unfinished. Completing SNMP functionality is a customer requested feature.

General All software source code is hosted at GitLab.com.