Entry Level Software Engineer

Avicena TechSunnyvale, CA
Onsite

About The Position

AvicenaTech is looking for a motivated Software Engineer to join our growing team. In this role you will work across the full product stack from desktop software and internal tooling to low level firmware. Helping to design, test, and ship reliable systems for our customers. You will collaborate closely with hardware and software engineers, contribute to real products from day one, and grow quickly in an environment where hands-on depth is valued. This is a fully on-site position. You will work directly alongside hardware and software engineers in a lab and office environment. Some bench work with electronic equipment should be expected. The role is hands-on by nature, and you will regularly move between writing code and working with physical hardware.

Requirements

  • Proficient in Python for automation, data collection, and software testing
  • Experience with GUI development using PyQt6 or a comparable framework (Tkinter, Kivy, etc.)
  • Experience writing multithreaded applications with awareness of concurrency and thread safety
  • Solid understanding of object-oriented programming principles and design patterns
  • Comfortable with Git including branching, merging, rebasing, and pull request workflows
  • Strong problem-solving skills with the ability to troubleshoot across hardware and software
  • Ability to read and interpret hardware documentation, datasheets, and interface specifications
  • Strong written and verbal communication skills, able to explain technical systems concisely to peers and stakeholders
  • Highly organized, detail-oriented, and able to manage parallel tasks in a fast-paced environment
  • Able to work both independently and collaboratively as part of a small, cross-functional team

Nice To Haves

  • Experience with C or C++ in an embedded or systems context
  • Familiarity with firmware development for microcontrollers (STM32, RP2040, or similar)
  • Familiarity with Python data and scientific libraries: NumPy, Pandas, Matplotlib
  • Experience with SPI, I2C, UART, and SWD/JTAG interfaces at the hardware level
  • Understanding of PCB bring-up processes and basic bench debugging (oscilloscope, logic analyzer)

Responsibilities

  • Develop and maintain Python-based automation scripts, test harnesses, and internal deployment tools
  • Build and support desktop GUI applications (PyQt6 or similar) used in manufacturing, test, and field environments
  • Write multithreaded application code with attention to thread safety, resource management, and long-running stability
  • Perform hardware bring-up tasks including SWD/JTAG programming, SPI/I2C/UART debug, and PCB-level troubleshooting
  • Review and validate driver code and register-level configurations against hardware datasheets and specs
  • Maintain version-controlled codebases and participate in code reviews via Git/GitHub
  • Document systems, processes, and findings clearly for internal and external audiences
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service