Software Engineer I
Description

Job Summary: The Software Engineer I supports the design, development, and testing of software for embedded, autonomous, and data-driven systems. Working under the guidance of senior engineers, this role assists with coding, debugging, and integration tasks across multiple projects. The position offers hands-on exposure to software development practices within multidisciplinary engineering teams and contributes to prototype and early-stage production solutions used in defense and commercial applications.

Job Duties:

  • Software Development Support: Contribute to the development and testing of software modules that enable autonomous systems, computer vision, and machine learning applications. Assist with implementing and maintaining code under the guidance of senior engineers.
  • Machine Learning & Computer Vision Assistance: Support data preparation, model integration, and performance testing for ML/CV pipelines. Help validate outputs, organize datasets, and apply existing algorithms to project-specific problems.
  • Collaboration & Learning: Work closely with multidisciplinary teams—including systems, electrical, and mechanical engineers—to understand software requirements and contribute to integration efforts. Participate in code reviews and technical discussions to learn established design patterns and development practices.
  • Testing & Debugging: Perform basic functional and regression tests, document findings, and support troubleshooting activities. Verify that implemented features meet expected behavior across software and hardware interfaces.
  • Documentation & Version Control: Maintain clear task notes, update internal documentation, and manage commits using version-control tools (e.g., Git). Follow standard naming conventions and workflow practices to ensure traceability.
  • Continuous Skill Development: Actively pursue mentorship and hands-on learning in ML frameworks (e.g., TensorFlow, PyTorch, OpenCV) and embedded or real-time environments. Stay engaged with emerging technologies relevant to OKSI’s autonomous and sensing systems.
Requirements

Knowledge, Skills, and Qualifications:

  • Bachelor’s degree in computer science, software engineering, or a related field.
  • Strong understanding of software development fundamentals and principles.
  • Proficiency in one or more programming languages (e.g., Java, C++, Python).
  • Familiarity with software development tools and version control systems.
  • Excellent problem-solving and analytical skills.
  • Effective communication and collaboration skills.
  • Successful background screening

Typical Working Environment:

Work is performed indoors in an office setting, sitting at a desk and moving throughout the office space while performing work while in close proximity to others. Moderate noise levels consistent with an office environment; staff, phones, and collaborative dialogue.

Equipment/Tools used:

Computer, Keyboard, Phone, Printer/Copier, and other miscellaneous office equipment 

Interaction/Supervision:

Interact with all levels of staff and vendors 

Physical Demands:

Constantly (67%+): Sitting at a desk, working on a computer, using a keyboard and mouse.

Frequently (34-66%): Repetitive hand motion, fine dexterity of hands. 

Hours of Work:

This position will work the hours necessary to meet the needs of the business and to complete necessary job duties. May include work during days, evenings, nights, weekends, and holidays. Hourly employees are authorized and permitted to take all meal and rest breaks in accordance with company policy, see Employee Handbook.