For more than 45 years, TCI has been a market leader in the development of innovative, high-performance communications, spectrum monitoring and signals intelligence systems. TCI’s diverse experience delivers proven solutions for regulatory compliance, monitoring and security, and communications intelligence applications. With advanced spectrum mapping and analytics, data recording capabilities and precision geolocation technology, TCI systems provide vital data for government and military agencies in more than 100 countries worldwide.
Job Summary
TCI is looking for a senior embedded server software engineer to actively participate in the development of radio frequency signal acquisition/processing/storage/retrieval, IQ data transport, direction finding and analysis systems used for spectrum monitoring and communications intelligence purposes. This person will apply their strong real time Embedded Server development background, knowledge of radio frequency communications, reception and signal processing techniques as well as software development skills to meet signal detection, parameter measurement and analysis challenges facing spectrum regulators and intelligence organizations around the globe. Specifically, this person will develop software to implement architectures using TCI’s existing technical base along with new development work that will satisfy both customer specific and market generic requirements.
Essential Duties and Responsibilities include, but are not limited to:
- Develop a deep understanding of TCI’s Embedded server architectures and become a key contributor to architecting and implementing improvements and new features for our products.
- Modify existing software and/or develop new software to implement improvements or add new features to our systems. Support testing and analysis of new hardware and software performance up to the system level.
- Provide technical support to our product support group by interfacing with customers to deploy new products, solve issues found in the field and to understand potential product improvements.
- Other duties as assigned.
Required Experience or Skills:
- Extensive experience in design, implementation and testing of complex real-time multithreaded/multitasking/multicore embedded server software supporting multiple simultaneous clients
- Extensive C/C++ software development experience (6+ years) with proficiency in such language features as templates, Lambda functions, vectors, maps and algorithms etc.
- Experience with designing well-crafted C++ classes/modules
- Cross-platform programming for Linux and Windows targets
- Experience in developing/using Windows and Linux libraries
- Clear understanding of Synchronization primitives, Queueing and task scheduling
- TCP Message based Client/Server communication
- Experience with FPGA co-processing and managing Interrupts/data blocks
- Clear understanding of ADCs, RF Receiver architectures and associated quality metrics
- Realtime hardware control and data acquisition
- SCPI control
- TCP/UDP Networking and socket level programming
- API programming (developing and using)
- GUI design and programming
- Databases and database programming (incl. SQLite)
- XML and XML programming
- Software QA testing
- Ability to quickly learn and support a large existing C++ code base.
- Excellent communications skills
- Ability to write technical product documentation
Desired Experience or Skills:
- Xilinx Zynq and/or UltraScale+ development experience
- Xilinx FGPA development experience
- Extensive math, Digital Signal Processing (DSP) and RF communication signals background
- RF system and Software Defined Radio (SDR) application and test experience
- Signal analysis techniques and tools
- PCIe and NVMe interfaces
- Knowledge of Signal Direction finding / Geolocation concepts
- Programming expertise:
- VITA49 exposure
- AI concepts and programming
- JSON and JSON programming
- Tools:
- Microsoft Visual Studio and TFS
- Eclipse IDEs for C++ and Java development
- Cross-platform development
- MATLAB/Octave experience
- RF Measurement equipment (VSA/spectrum analyzers, signal generators, and other electronic test equipment)
- Windows, including desktop and embedded variants (IoT)
- Intel IPP
- Linux utilities and shells
- Experience with MFC, C# and Windows development tools/APIs
- Creating and maintaining automated software build systems
- Generation and execution of QA testing including writing automated QA test programs
Education and Experience:
- 6+ years relevant work experience.
- MSEE/MSCS (or BSEE/BSCS with extended relevant work experience) with emphasis on Embedded Software and Digital Signal Processing.
- Must be a U.S. citizen or Permanent Resident
Thank you for your interest in our company.