{"company":{"id":8839,"name":"Harmattan AI","domain":"harmattan.ai","url":"https://alion.io/company/harmattan"},"answer":"Harmattan AI builds mostly with Python, C++, Rust, Embedded C. Its stack also includes Linux, RTOS, ArduPilot, PyTorch. Python is named in 42 of the 94 job postings Harmattan AI published in the last 12 months (45%). Counted by Alion from the job postings of Harmattan AI, updated Sep 26, 2026.","window_days":365,"postings_analysed":94,"open_postings":88,"technologies_in_use":96,"modernity_score":83,"ai_adoption":true,"technologies":[{"name":"Python","layer":"languages","postings":42,"share":0.4468,"required":33,"open_postings":37,"first_seen":"2026-01-21","last_seen":"2026-09-11","median_stated_pay_usd":null},{"name":"C++","layer":"languages","postings":36,"share":0.383,"required":28,"open_postings":33,"first_seen":"2025-10-06","last_seen":"2026-09-15","median_stated_pay_usd":null},{"name":"Linux","layer":"cloud","postings":19,"share":0.2021,"required":16,"open_postings":18,"first_seen":"2026-03-19","last_seen":"2026-09-15","median_stated_pay_usd":null},{"name":"SolidWorks","layer":"tools","postings":17,"share":0.1809,"required":17,"open_postings":15,"first_seen":"2026-02-13","last_seen":"2026-09-16","median_stated_pay_usd":null},{"name":"Computer Vision","layer":"practices","postings":15,"share":0.1596,"required":12,"open_postings":14,"first_seen":"2026-01-21","last_seen":"2026-09-04","median_stated_pay_usd":null},{"name":"Human-in-the-Loop","layer":"practices","postings":13,"share":0.1383,"required":13,"open_postings":12,"first_seen":"2026-03-06","last_seen":"2026-08-03","median_stated_pay_usd":null},{"name":"Machine Learning","layer":"practices","postings":12,"share":0.1277,"required":11,"open_postings":11,"first_seen":"2025-11-06","last_seen":"2026-09-11","median_stated_pay_usd":null},{"name":"Rust","layer":"languages","postings":9,"share":0.0957,"required":7,"open_postings":9,"first_seen":"2026-03-02","last_seen":"2026-09-04","median_stated_pay_usd":null},{"name":"Git","layer":"tools","postings":9,"share":0.0957,"required":6,"open_postings":8,"first_seen":"2026-02-13","last_seen":"2026-08-12","median_stated_pay_usd":null},{"name":"Sensor Fusion","layer":"practices","postings":8,"share":0.0851,"required":8,"open_postings":8,"first_seen":"2026-03-11","last_seen":"2026-08-25","median_stated_pay_usd":null},{"name":"CI/CD","layer":"practices","postings":7,"share":0.0745,"required":7,"open_postings":7,"first_seen":"2026-03-27","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Embedded C","layer":"languages","postings":7,"share":0.0745,"required":7,"open_postings":7,"first_seen":"2026-03-11","last_seen":"2026-09-15","median_stated_pay_usd":null},{"name":"C","layer":"languages","postings":7,"share":0.0745,"required":0,"open_postings":7,"first_seen":"2026-03-11","last_seen":"2026-09-15","median_stated_pay_usd":null},{"name":"Motion Planning","layer":"practices","postings":6,"share":0.0638,"required":6,"open_postings":6,"first_seen":"2026-07-28","last_seen":"2026-09-09","median_stated_pay_usd":null},{"name":"ArduPilot","layer":"frameworks","postings":5,"share":0.0532,"required":5,"open_postings":4,"first_seen":"2026-03-11","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"PyTorch","layer":"frameworks","postings":5,"share":0.0532,"required":5,"open_postings":4,"first_seen":"2026-03-05","last_seen":"2026-08-05","median_stated_pay_usd":null},{"name":"RTOS","layer":"cloud","postings":5,"share":0.0532,"required":5,"open_postings":5,"first_seen":"2026-06-23","last_seen":"2026-08-12","median_stated_pay_usd":null},{"name":"Betaflight","layer":"frameworks","postings":4,"share":0.0426,"required":4,"open_postings":4,"first_seen":"2026-03-11","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"Gazebo","layer":"tools","postings":4,"share":0.0426,"required":4,"open_postings":4,"first_seen":"2026-03-11","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"MATLAB","layer":"languages","postings":4,"share":0.0426,"required":4,"open_postings":3,"first_seen":"2026-08-19","last_seen":"2026-09-11","median_stated_pay_usd":null},{"name":"Multimodal AI","layer":"practices","postings":4,"share":0.0426,"required":4,"open_postings":4,"first_seen":"2026-03-05","last_seen":"2026-08-05","median_stated_pay_usd":null},{"name":"Reinforcement Learning","layer":"practices","postings":4,"share":0.0426,"required":4,"open_postings":4,"first_seen":"2026-02-13","last_seen":"2026-08-03","median_stated_pay_usd":null},{"name":"Reinforcement Learning","layer":"practices","postings":4,"share":0.0426,"required":4,"open_postings":4,"first_seen":"2026-02-13","last_seen":"2026-08-03","median_stated_pay_usd":null},{"name":"Docker","layer":"tools","postings":4,"share":0.0426,"required":3,"open_postings":4,"first_seen":"2026-03-27","last_seen":"2026-06-23","median_stated_pay_usd":null},{"name":"AI Agents","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-02-13","last_seen":"2026-07-28","median_stated_pay_usd":null},{"name":"Edge AI","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-03-05","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"Knowledge Distillation","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-03-05","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"Model Distillation","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-03-05","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"Obstacle Avoidance","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-07-28","last_seen":"2026-08-03","median_stated_pay_usd":null},{"name":"Platform Engineering","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-06-15","last_seen":"2026-09-04","median_stated_pay_usd":null},{"name":"PyTorch C++","layer":"frameworks","postings":3,"share":0.0319,"required":3,"open_postings":2,"first_seen":"2026-03-05","last_seen":"2026-06-18","median_stated_pay_usd":null},{"name":"Sim-to-Real","layer":"practices","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-07-28","last_seen":"2026-08-03","median_stated_pay_usd":null},{"name":"SystemVerilog","layer":"languages","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-03-17","last_seen":"2026-08-21","median_stated_pay_usd":null},{"name":"VHDL","layer":"languages","postings":3,"share":0.0319,"required":3,"open_postings":3,"first_seen":"2026-03-17","last_seen":"2026-08-21","median_stated_pay_usd":null},{"name":"Altium Designer","layer":"tools","postings":3,"share":0.0319,"required":2,"open_postings":3,"first_seen":"2026-08-21","last_seen":"2026-08-21","median_stated_pay_usd":null},{"name":"AWS","layer":"cloud","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-27","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"CLIP","layer":"ai","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-05","last_seen":"2026-06-18","median_stated_pay_usd":null},{"name":"Contrastive Learning","layer":"practices","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-05","last_seen":"2026-06-18","median_stated_pay_usd":null},{"name":"Cortex","layer":"tools","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-06-23","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"FreeRTOS","layer":"cloud","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-06-23","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"GitHub Actions","layer":"cloud","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-27","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"Multi-Agent Systems","layer":"practices","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-02-13","last_seen":"2026-07-28","median_stated_pay_usd":null},{"name":"NumPy","layer":"frameworks","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-07-13","last_seen":"2026-08-10","median_stated_pay_usd":null},{"name":"Pandas","layer":"frameworks","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-07-13","last_seen":"2026-08-10","median_stated_pay_usd":null},{"name":"Qt","layer":"frameworks","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2025-10-06","last_seen":"2026-06-23","median_stated_pay_usd":null},{"name":"Quantization","layer":"practices","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-07-02","last_seen":"2026-08-21","median_stated_pay_usd":null},{"name":"SciPy","layer":"frameworks","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-07-13","last_seen":"2026-08-10","median_stated_pay_usd":null},{"name":"Self-Supervised Learning","layer":"practices","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-05","last_seen":"2026-06-18","median_stated_pay_usd":null},{"name":"Transformers","layer":"frameworks","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-05","last_seen":"2026-06-18","median_stated_pay_usd":null},{"name":"Verilog","layer":"languages","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-03-17","last_seen":"2026-03-17","median_stated_pay_usd":null},{"name":"Visual-Inertial Odometry","layer":"practices","postings":2,"share":0.0213,"required":2,"open_postings":2,"first_seen":"2026-01-26","last_seen":"2026-06-18","median_stated_pay_usd":null},{"name":"CUDA Toolkit","layer":"cloud","postings":2,"share":0.0213,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-06-15","median_stated_pay_usd":null},{"name":"Digital Twin","layer":"practices","postings":2,"share":0.0213,"required":1,"open_postings":2,"first_seen":"2025-11-06","last_seen":"2026-07-29","median_stated_pay_usd":null},{"name":"GitLab CI","layer":"cloud","postings":2,"share":0.0213,"required":1,"open_postings":2,"first_seen":"2026-03-27","last_seen":"2026-04-07","median_stated_pay_usd":null},{"name":"Prometheus","layer":"tools","postings":2,"share":0.0213,"required":0,"open_postings":2,"first_seen":"2026-06-23","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Aider","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-09-17","last_seen":"2026-09-17","median_stated_pay_usd":null},{"name":"Amazon S3","layer":"cloud","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"Ansible","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-27","last_seen":"2026-03-27","median_stated_pay_usd":null},{"name":"Apache Iceberg","layer":"data","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"Bash","layer":"languages","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-17","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"CMake","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-17","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"Docker Compose","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-27","last_seen":"2026-03-27","median_stated_pay_usd":null},{"name":"ETL/ELT","layer":"practices","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"Fine-tuning","layer":"practices","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-07-02","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"Fusion 360","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-08-19","last_seen":"2026-08-19","median_stated_pay_usd":null},{"name":"GCP","layer":"cloud","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-17","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"GStreamer","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-30","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"GitHub","layer":"cloud","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-17","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"Go","layer":"languages","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"JAX","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"Java","layer":"languages","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2025-10-06","last_seen":"2025-10-06","median_stated_pay_usd":null},{"name":"KiCad","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-10","last_seen":"2026-06-10","median_stated_pay_usd":null},{"name":"LLM","layer":"ai","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-17","last_seen":"2026-06-17","median_stated_pay_usd":null},{"name":"LTspice","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-10","last_seen":"2026-06-10","median_stated_pay_usd":null},{"name":"LoRA","layer":"ai","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-07-02","last_seen":"2026-07-02","median_stated_pay_usd":null},{"name":"MAVLink","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2025-10-06","last_seen":"2025-10-06","median_stated_pay_usd":null},{"name":"MinIO","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"Mission Planner","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"OpenOCD","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-08-12","last_seen":"2026-08-12","median_stated_pay_usd":null},{"name":"Pytest","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-23","last_seen":"2026-06-23","median_stated_pay_usd":null},{"name":"QGroundControl","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2025-10-06","last_seen":"2025-10-06","median_stated_pay_usd":null},{"name":"Ray","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"React.js","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"Simulink","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-08-21","last_seen":"2026-08-21","median_stated_pay_usd":null},{"name":"Spark","layer":"cloud","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"TPU","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-06-15","last_seen":"2026-06-15","median_stated_pay_usd":null},{"name":"TensorRT","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":0,"first_seen":"2026-03-06","last_seen":"2026-03-06","median_stated_pay_usd":null},{"name":"Unreal Engine","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":0,"first_seen":"2026-03-19","last_seen":"2026-03-19","median_stated_pay_usd":null},{"name":"Vue.js","layer":"frameworks","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"WebRTC","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"Wi-Fi","layer":"practices","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-09-15","last_seen":"2026-09-15","median_stated_pay_usd":null},{"name":"gRPC","layer":"tools","postings":1,"share":0.0106,"required":1,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"CUDA","layer":"frameworks","postings":1,"share":0.0106,"required":0,"open_postings":1,"first_seen":"2026-06-15","last_seen":"2026-06-15","median_stated_pay_usd":null},{"name":"JavaScript","layer":"languages","postings":1,"share":0.0106,"required":0,"open_postings":1,"first_seen":"2026-03-02","last_seen":"2026-03-02","median_stated_pay_usd":null},{"name":"Jenkins","layer":"tools","postings":1,"share":0.0106,"required":0,"open_postings":1,"first_seen":"2026-04-07","last_seen":"2026-04-07","median_stated_pay_usd":null},{"name":"PEFT","layer":"ai","postings":1,"share":0.0106,"required":0,"open_postings":1,"first_seen":"2026-07-02","last_seen":"2026-07-02","median_stated_pay_usd":null}],"own_products":[],"changes":{"first_appeared":[{"name":"Altium Designer","first_seen":"2026-08-21"},{"name":"MATLAB","first_seen":"2026-08-19"},{"name":"Sim-to-Real","first_seen":"2026-07-28"},{"name":"Motion Planning","first_seen":"2026-07-28"},{"name":"Obstacle Avoidance","first_seen":"2026-07-28"},{"name":"NumPy","first_seen":"2026-07-13"},{"name":"Pandas","first_seen":"2026-07-13"},{"name":"SciPy","first_seen":"2026-07-13"}],"rising":[{"name":"SolidWorks","share_from":0,"share_to":27},{"name":"Motion Planning","share_from":0,"share_to":12},{"name":"MATLAB","share_from":0,"share_to":8},{"name":"Human-in-the-Loop","share_from":9,"share_to":15},{"name":"Reinforcement Learning","share_from":0,"share_to":6},{"name":"Reinforcement Learning","share_from":0,"share_to":6},{"name":"Obstacle Avoidance","share_from":0,"share_to":6},{"name":"Sim-to-Real","share_from":0,"share_to":6}],"falling":[{"name":"Python","share_from":77,"share_to":29},{"name":"C++","share_from":64,"share_to":21},{"name":"CI/CD","share_from":23,"share_to":2},{"name":"Computer Vision","share_from":27,"share_to":8},{"name":"Linux","share_from":36,"share_to":19},{"name":"Machine Learning","share_from":23,"share_to":6},{"name":"Docker","share_from":14,"share_to":0},{"name":"Rust","share_from":18,"share_to":6}],"not_seen_180d":[{"name":"Verilog","last_seen":"2026-03-17"}]},"similar_stacks":[{"name":"Mach Industries","url":"https://alion.io/company/machindustries/technologies","shared_technologies":57},{"name":"Apptronik","url":"https://alion.io/company/apptronik/technologies","shared_technologies":59},{"name":"STARK Defence","url":"https://alion.io/company/stark-defence/technologies","shared_technologies":55},{"name":"Persona AI","url":"https://alion.io/company/persona-ai/technologies","shared_technologies":49},{"name":"1X Technologies","url":"https://alion.io/company/1x-technologies/technologies","shared_technologies":52},{"name":"Archer Aviation","url":"https://alion.io/company/archer/technologies","shared_technologies":71},{"name":"May Mobility","url":"https://alion.io/company/may-mobility/technologies","shared_technologies":44},{"name":"PlusAI","url":"https://alion.io/company/plus/technologies","shared_technologies":47}],"html_url":"https://alion.io/company/harmattan/technologies","json_url":"https://alion.io/company/harmattan/technologies.json","license":"CC BY-SA 4.0","meta":{"source":"Alion","built_at":"2026-09-26T12:02:20Z","generated_at":"2026-09-26T12:02:57Z"}}