Senior Full Stack Software Engineer - Laboratory Testing Inc
Hatfield, PA 19440
About the Job
The sky is the limit at LTI, and we have a wonderful opportunity for a Senior, Full Stack Software Engineer. As a Senior Full-Stack Software Engineer, you’ll play a key role in creating and enhancing Electron desktop applications that drive our real-time mechanical testing systems. You’ll handle both front-end and back-end development, using tools like Node.js, Angular, TypeScript, and Python to deliver intuitive, high-performance applications. This role goes beyond coding; you’ll ensure software quality through best practices, optimize performance, and collaborate closely with our team to manage projects seamlessly. There’s also exciting potential to dive into real-time embedded systems and FPGA programming, adding depth and innovation to our testing solutions. Join us to shape the future of test systems while advancing your skills in a supportive environment.
Please note - This is a full-time, onsite role working at our facility in Hatfield, PA.
RESPONSIBILITIES
Desktop Application Development
- Develop and maintain Electron desktop applications using Node.js, Angular, TypeScript, HTML, and SCSS while collaborating with an existing development team.
- Provide project management support using GitHub project boards and daily team syncs.
- Design and implement responsive, intuitive user interfaces adhering to UI/UX best practices.
- Optimize applications for performance, scalability, and maintainability.
Back-End Integration
- Develop and integrate Python and C++ scripts using Cython, FFI libraries, and RESTful APIs to interface with other software components and Angular front-end applications.
- Handle data serialization (JSON, YAML), including optimization.
- Software Architecture and Quality Control
- Apply best practices in design patterns and architecture including monorepo tools (e.g., Nx, Lerna, Bazel) to build and manage large codebases effectively.
- Ensure software quality through robust engineering practices, code reviews and comprehensive documentation throughout the software lifecycle.
Embedded Systems and FPGA Programming (Optional)
- Build and optimize real-time embedded systems using LabVIEW Real-Time and FPGA on cRIO/sbRIO targets.
- Design and develop high-performance, real-time applications using C++ including memory management, threading, communication, and concurrency, etc. in real-time C++ systems.
- Integrate communication protocols (TCP/IP, WebSockets, SPI, I²C, and CAN), and ensure software-hardware integration.
- Compile C++ code into DLLs or Shared Objects (.so) for cross-platform use, using GNU Compiler Collection (GCC).
- Design and implement data management solutions with NI TDMS for high-performance data streaming and ensure secure data storage using both relational (SQL) and non-relational (NoSQL) databases.
QUALIFICATIONS
- Bachelor’s Degree (BS) in Computer Science, Software Engineering, Electrical Engineering, or a related field from an ABET-accredited institution; Master’s Degree (MS) preferred.
- 8+ years of experience in full-stack Electron desktop app software engineering.
- Preferred: 2+ years of experience with real-time C++, and LabVIEW RT/FPGA for industrial automation (e.g. data acquisition, robotics, I/O, and industrial communication).
- Must be US Citizen or possess a valid green card.
- Must be an independent, self-starter with a strong sense of urgency.
- Must possess strong sense of initiative.
- Must possess strong attention to detail.
- Must be able to prioritize projects.
REQUIRED SKILLS AND EXPERIENCE
Electron and Node.js Development
- Extensive experience developing desktop applications using Electron and Node.js.
- Proficiency in Angular for building complex front-end applications in Electron.
- Strong understanding of TypeScript and JavaScript.
- Experience with inter-process communication (IPC) between Electron’s main and renderer processes.
Front-End Development
- Expertise in the Angular framework.
- Proficiency in HTML, CSS, and SCSS.
- Experience with responsive design and UI/UX best practices.
- Familiarity with front-end build tools and package managers (e.g. npm, yarn).
Back-End Development
- Proficiency in Node.js for server-side development.
- Experience integrating back-end services with Angular front-end applications.
- Knowledge of RESTful API, Cython, FFI and other advanced API methods.
- Knowledge of serialization formats like JSON and YAML.
- Advanced proficiency in Python for scripting, automation, and integration with other software components.
Software Architecture and Solutions
- Strong understanding of software design patterns and architectural principles, especially with monorepo tools and strategies (e.g. Nx, Lerna, Bazel) to manage codebases.
- Experience in designing scalable and maintainable design systems.
PREFERRED SKILLS AND EXPERIENCE
Embedded Systems Development
- Extensive hands-on experience with real-time embedded systems and hardware interfacing.
- Extensive hand-on experience with LabVIEW Real-Time and LabVIEW FPGA programming on CRIO or sbRIO targets.
- Knowledge of real-time communication protocols (e.g. TCP/IP, WebSockets, SPI, I2C, CAN).
- Extensive experience with C++ for developing high-performance, real-time applications, including real-time scheduling, interrupt handling, low-level hardware interactions, memory management, pointers, multithreading, and concurrency.
- Expertise in compiling C++ code into appropriate Dynamic Link Libraries (DLLs) or Shared Objects (.so files) for use across different platforms and applications, with proficiency in build systems and tools such as GNU Compiler Collection (GCC).
Database Integration
- Design and implement data management solutions utilizing NI TDMS file format for high-performance data streaming.
- Knowledge with relational (SQL) and non-relational (NoSQL) databases to store and manage metadata and other application data.
Mechanical Testing and Fracture Mechanics Knowledge
- Familiarity with mechanical testing equipment and servohydraulic test frames.
- Experience with sensor integration such as load cells or crack length monitoring transducers.
- Knowledge of ASTM test standards such as E647 (Measurement of Fatigue Crack Growth Rates) and E1820 (Measurement of Fracture Toughness).
- Understanding of fracture mechanics principles.
Cloud and IoT Technologies
• Experience with cloud services (e.g., AWS, Azure) and Internet of Things (IoT) platforms.
LTI is a great place to work and offers a full and comprehensive benefit package including: 401(k) Savings Plan w/ Company Match, Company Paid Holidays, Paid Time Off (PTO), On the Job Training (OJT), Robust Medical/Dental/Vision/Disability/Life and AD&D and more!
LTI is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, sexual orientation, disability, age or any other legally protected status. If you have a disability and need assistance completing an application, please reach out to hrsupport@labtesting.com.
PI254592193