What You'll Be Doing
Own the full technical stack for a production application used by hardware and prototyping teams, including React frontend, Node.js backend, build pipelines, release packaging, and deployment workflows
Trace and resolve issues that span the UI, APIs, backend services, shell scripts, SQLite databases, Linux and Windows environments, network configurations, and connected hardware
Drive feature development from requirements through design, implementation, testing, packaging, and production release
Diagnose customer issues involving remote scanning, hardware communication, configuration errors, and multi-system dependencies, working directly with users and support teams to resolve them
Coordinate with hardware, systems, and engineering teams to clarify requirements, prioritize work, and align technical decisions with real-world use cases
Improve system reliability and reduce operational risk by writing clear documentation, building repeatable processes, establishing automated tests, and eliminating single points of failure tied to individual knowledge
Make technical decisions about architecture, tooling, dependencies, and workflows that balance immediate needs with long-term maintainability
The Impact You Will Have
Engineers using FPGA prototyping and lab systems will have a more reliable, better-documented application because you own the full lifecycle and do not let technical debt accumulate unchecked
Customer issues that used to take days to diagnose will get resolved faster because you can trace problems across the entire stack and communicate findings clearly to support and hardware teams
New team members and contributors will be able to understand, modify, and release the application without needing to ask you every time because you built the documentation and processes that make the system approachable
The application will ship more predictably and with fewer post-release surprises because you own the build, test, and release pipeline and treat it as part of the product, not an afterthought
Hardware and systems teams will trust the application more because you work directly with them to understand their workflows and prioritize fixes that matter
The codebase will become easier to maintain and extend over time because you make technical decisions that favor clarity and sustainability over quick fixes
The organization will reduce risk and reliance on tribal knowledge because you establish repeatable processes and document what used to live only in someone's head
What You'll Need
Demonstrated ability to own a complex software product end to end, including architecture, development, testing, releases, and production support
Strong hands-on experience with JavaScript or TypeScript, React, and Node.js in real production environments
Proven ability to navigate and debug an existing codebase across frontend, backend, databases, scripts, and operating systems without requiring guided onboarding
Strong Linux troubleshooting skills, including command-line tools, process management, filesystems, networking, SSH, and system-level debugging
Track record of diagnosing and resolving failures that involve multiple systems, external dependencies, or hardware integrations
Experience working directly with users, support teams, or cross-functional stakeholders to clarify issues, communicate technical findings, and follow problems through to resolution
Experience with Next.js, desktop application packaging or distribution, Tcl, shell scripting, SQLite, or hardware and engineering tool integrations is a strong plus
Who You Are
You can analyze a customer-reported issue involving scanning failures, configuration mismatches, and hardware timeouts and determine the investigation path without requiring direction
You establish documentation and repeatable processes proactively because you understand that operational knowledge concentrated in individuals creates organizational risk
You are comfortable serving as the technical authority for a product, which means making architectural decisions, articulating technical tradeoffs to stakeholders, and accepting accountability for system outcomes
You advance work in the presence of incomplete requirements by identifying the critical unknowns, engaging the appropriate stakeholders, and making progress while requirements clarify
You can communicate a multi-layered technical problem to support engineers, hardware specialists, or end users in terms appropriate to their context without sacrificing the technical precision required for resolution
You treat production failures as opportunities to strengthen the system by implementing fixes, documenting root cause, and establishing preventive controls that address the underlying vulnerability