UI/UX 开发人员(C++ 专家)和嵌入式软件开发人员(C/C++)
UI/UX Developer (C++ Specialist) and Embedded Software Developer (C/C++)
- 地点
- 瑟克尔文,挪威
职责
- UI/UX 开发人员(C++ 专家):将以用户为中心的设计与高性能软件实现相结合,设计直观的用户体验,并使用 C++ 和 Qt/WPF 为任务关键型无人机系统构建图形应用程序。
- 使用 C++(主要)、C#(次要)和 Python(支持脚本/工具)实现用户界面。
- 使用 Qt(跨平台)和 WPF(Windows)框架开发应用程序。
- 优化 GUI 的性能、响应能力和可靠性。
- 与飞行软件工程师合作,将 UI 设计与后端逻辑集成。
- 确保跨平台和应用程序的设计语言的一致性。
- 将用户体验原型转化为功能齐全、可投入生产的应用程序。
- 参与设计和代码审查以保持高标准。
- 文档设计规范、交互流程和编码实践。
- 根据用户反馈和测试结果快速迭代。
- 嵌入式软件开发人员(C/C++):设计、实现和维护基于 ARM 的微控制器(STM32、Atmel SAM)的固件,并为定制的 ArduPilot 飞行控制软件分支做出贡献。
- 使用 C 和 C++ 设计、实现和优化 ARM 微控制器(STM32、Atmel SAM)的固件。
- 开发驱动程序、通信协议(CAN、UART、I2C、SPI)和硬件抽象层。
- 为 ArduPilot fork 的持续开发和维护做出贡献,确保稳定性、性能以及与专有系统的集成。
- 测试和优化嵌入式代码以确保实时环境中的可靠性。
- 与硬件工程师合作,确保固件和电子设备的无缝集成。
- 与飞行软件团队合作,将低级控制与高级飞行逻辑连接起来。
- 支持硬件启动、电路板验证和传感器集成。
- 为嵌入式系统实施单元测试和硬件在环 (HIL) 测试。
- 记录代码、接口和固件更新流程。
- 参与代码和系统架构的同行评审。
必备要求
- UI/UX 开发人员:人机交互、计算机科学、软件工程或相关领域的学士或硕士学位。
- 具有 C++ GUI 开发经验(Qt 必备,WPF 优先)。
- 熟练掌握用户体验设计原则和可用性测试方法。
- 熟练使用 Git、调试工具和软件生命周期最佳实践。
- 嵌入式软件开发人员:计算机工程、电子工程、计算机科学或相关领域的学士或硕士学位。
- 使用 C 和 C++ 进行嵌入式系统编程的丰富经验。
- 具有使用 ARM Cortex-M 微控制器(STM32、Atmel SAM)的经验。
- 了解 RTOS 概念、中断处理和性能优化。
- 具有使用调试工具(示波器、JTAG、逻辑分析仪)的经验。
- 熟悉 ArduPilot 或其他自动驾驶仪框架。
优先条件
- UI/UX 开发人员:具有 C# 和 Python 的实践经验。
- 了解图形/可视化库(OpenGL、Vulkan、GLFW)。
- 熟悉嵌入式系统、航空电子设备或实时环境。
- 具有使用设计工具(Figma、Adobe XD、Sketch)进行原型设计支持的经验。
- 嵌入式软件开发人员:对开源嵌入式/飞行软件项目的贡献。
- 熟悉 Python 脚本编写、自动化或测试。
- 具有通信协议经验(CAN、UAVCAN、MAVLink)。
- 了解安全关键软件标准(DO-178C、MISRA C)。
- 接触传感器集成(IMU、GPS、气压计、LIDAR)。
- 具有嵌入式软件 CI/CD 管道的经验。
Responsibilities
- UI/UX Developer (C++ Specialist): Combine user-centered design with high-performance software implementation, design intuitive user experiences, and build robust graphical applications for mission-critical UAV systems using C++ and Qt/WPF.
- Implement user interfaces using C++ (primary), C# (secondary), and Python (supporting scripts/tools).
- Develop applications using Qt (cross-platform) and WPF (Windows) frameworks.
- Optimize GUI performance, responsiveness, and reliability.
- Collaborate with flight software engineers to integrate UI design with backend logic.
- Ensure consistency of design language across platforms and applications.
- Translate UX prototypes into fully functional, production-ready applications.
- Participate in design and code reviews to maintain high standards.
- Document design specifications, interaction flows, and coding practices.
- Iterate quickly based on user feedback and test results.
- Embedded Software Developer (C/C++): Design, implement, and maintain firmware for ARM-based microcontrollers (STM32, Atmel SAM), and contribute to the custom ArduPilot flight control software fork.
- Design, implement, and optimize firmware for ARM microcontrollers (STM32, Atmel SAM) using C and C++.
- Develop drivers, communication protocols (CAN, UART, I2C, SPI), and hardware abstraction layers.
- Contribute to the ongoing development and maintenance of the ArduPilot fork, ensuring stability, performance, and integration with proprietary systems.
- Test and optimize embedded code to ensure reliability in real-time environments.
- Collaborate with hardware engineers to ensure seamless integration of firmware and electronics.
- Work with the flight software team to connect low-level control with high-level flight logic.
- Support hardware bring-up, board validation, and sensor integration.
- Implement unit tests and hardware-in-the-loop (HIL) tests for embedded systems.
- Document code, interfaces, and firmware update processes.
- Participate in peer reviews of code and system architecture.
Must Have
- UI/UX Developer: Bachelor's or Master's degree in Human-Computer Interaction, Computer Science, Software Engineering, or a related field.
- Experience in C++ GUI development (Qt required, WPF preferred).
- Proficiency in UX design principles and usability testing methods.
- Proficiency with Git, debugging tools, and software lifecycle best practices.
- Embedded Software Developer: Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
- Extensive experience in embedded systems programming using C and C++.
- Experience with ARM Cortex-M microcontrollers (STM32, Atmel SAM).
- Understanding of RTOS concepts, interrupt handling, and performance optimization.
- Experience with debugging tools (oscilloscopes, JTAG, logic analyzers).
- Familiarity with ArduPilot or other autopilot frameworks.
Preferred
- UI/UX Developer: Hands-on experience with C# and Python.
- Knowledge of graphics/visualization libraries (OpenGL, Vulkan, GLFW).
- Familiarity with embedded systems, avionics, or real-time environments.
- Experience with design tools (Figma, Adobe XD, Sketch) for prototyping support.
- Embedded Software Developer: Contributions to open-source embedded/flight software projects.
- Familiarity with Python scripting, automation, or testing.
- Experience with communication protocols (CAN, UAVCAN, MAVLink).
- Knowledge of safety-critical software standards (DO-178C, MISRA C).
- Exposure to sensor integration (IMU, GPS, barometer, LIDAR).
- Experience with CI/CD pipelines for embedded software.
公司简介
Griff Aviation 是一家领先的挪威公司,专注于重型无人机的设计和生产。公司成立于2015年,并迅速发展成为全球无人机领域的先驱,提供全球最强大的无人机。我们的使命是变革航空运输,用高性能重型无人机取代传统直升机。这些无人机注重易用性、模块化设计和卓越的可靠性,以坚固耐用和创新的设计而闻名,并集成了尖端技术,以确保安全、高效和可靠。我们与航空当局紧密合作,确保遵守严格的监管标准,从而巩固与客户和合作伙伴的信任。我们的团队由超过25名专业人士组成,拥有丰富的国际经验和多元化的视角,并充满对创新的热情。在位于瑟克尔文的总部,我们拥有一个专门的无人机开发和测试区域。