{"company":{"id":716274,"name":"Constructor","domain":"constructor.com","url":"https://alion.io/company/constructor-3"},"answer":"Constructor builds mostly with Python, SQL, JavaScript, TypeScript. Its stack also includes AWS, GitHub Actions, ClickHouse, PostgreSQL. Python is named in 31 of the 59 job postings Constructor published in the last 12 months (53%). Counted by Alion from the job postings of Constructor, updated Sep 28, 2026.","window_days":365,"postings_analysed":59,"open_postings":40,"technologies_in_use":95,"modernity_score":81,"ai_adoption":true,"technologies":[{"name":"A/B Testing","layer":"practices","postings":33,"share":0.5593,"required":19,"open_postings":22,"first_seen":"2026-05-25","last_seen":"2026-09-22","median_stated_pay_usd":120000},{"name":"Python","layer":"languages","postings":31,"share":0.5254,"required":27,"open_postings":17,"first_seen":"2026-05-25","last_seen":"2026-09-22","median_stated_pay_usd":120000},{"name":"AWS","layer":"cloud","postings":18,"share":0.3051,"required":16,"open_postings":9,"first_seen":"2026-05-25","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"SQL","layer":"languages","postings":16,"share":0.2712,"required":16,"open_postings":10,"first_seen":"2026-05-25","last_seen":"2026-09-22","median_stated_pay_usd":120000},{"name":"Machine Learning","layer":"practices","postings":16,"share":0.2712,"required":11,"open_postings":14,"first_seen":"2026-05-25","last_seen":"2026-09-22","median_stated_pay_usd":120000},{"name":"CI/CD","layer":"practices","postings":11,"share":0.1864,"required":9,"open_postings":5,"first_seen":"2026-05-26","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"JavaScript","layer":"languages","postings":10,"share":0.1695,"required":9,"open_postings":5,"first_seen":"2026-05-25","last_seen":"2026-09-03","median_stated_pay_usd":120000},{"name":"GitHub Actions","layer":"cloud","postings":9,"share":0.1525,"required":8,"open_postings":3,"first_seen":"2026-05-26","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"Terraform","layer":"tools","postings":8,"share":0.1356,"required":7,"open_postings":5,"first_seen":"2026-05-26","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"Azure","layer":"cloud","postings":7,"share":0.1186,"required":6,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-08-06","median_stated_pay_usd":120000},{"name":"GCP","layer":"cloud","postings":7,"share":0.1186,"required":6,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-08-06","median_stated_pay_usd":120000},{"name":"GitHub","layer":"cloud","postings":7,"share":0.1186,"required":6,"open_postings":1,"first_seen":"2026-05-28","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"Grafana","layer":"cloud","postings":7,"share":0.1186,"required":6,"open_postings":3,"first_seen":"2026-05-26","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"Jenkins","layer":"tools","postings":7,"share":0.1186,"required":6,"open_postings":3,"first_seen":"2026-05-26","last_seen":"2026-08-16","median_stated_pay_usd":120000},{"name":"Spark","layer":"cloud","postings":7,"share":0.1186,"required":5,"open_postings":5,"first_seen":"2026-05-25","last_seen":"2026-07-10","median_stated_pay_usd":120000},{"name":"TypeScript","layer":"languages","postings":7,"share":0.1186,"required":4,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-09-03","median_stated_pay_usd":120000},{"name":"NumPy","layer":"frameworks","postings":6,"share":0.1017,"required":6,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-08-06","median_stated_pay_usd":120000},{"name":"ClickHouse","layer":"data","postings":6,"share":0.1017,"required":5,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-09-03","median_stated_pay_usd":120000},{"name":"PostgreSQL","layer":"data","postings":6,"share":0.1017,"required":5,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-08-06","median_stated_pay_usd":120000},{"name":"React.js","layer":"frameworks","postings":6,"share":0.1017,"required":5,"open_postings":3,"first_seen":"2026-05-25","last_seen":"2026-09-03","median_stated_pay_usd":120000},{"name":"Rust","layer":"languages","postings":6,"share":0.1017,"required":1,"open_postings":2,"first_seen":"2026-05-28","last_seen":"2026-08-06","median_stated_pay_usd":120000},{"name":"AI Agents","layer":"practices","postings":5,"share":0.0847,"required":5,"open_postings":5,"first_seen":"2026-06-01","last_seen":"2026-09-16","median_stated_pay_usd":null},{"name":"Amazon CloudWatch","layer":"cloud","postings":5,"share":0.0847,"required":5,"open_postings":2,"first_seen":"2026-05-26","last_seen":"2026-07-06","median_stated_pay_usd":120000},{"name":"CloudFormation","layer":"tools","postings":5,"share":0.0847,"required":5,"open_postings":2,"first_seen":"2026-05-26","last_seen":"2026-06-30","median_stated_pay_usd":120000},{"name":"FastAPI","layer":"frameworks","postings":5,"share":0.0847,"required":5,"open_postings":3,"first_seen":"2026-05-25","last_seen":"2026-07-17","median_stated_pay_usd":120000},{"name":"LLM","layer":"ai","postings":5,"share":0.0847,"required":5,"open_postings":4,"first_seen":"2026-06-02","last_seen":"2026-09-16","median_stated_pay_usd":null},{"name":"ETL/ELT","layer":"practices","postings":5,"share":0.0847,"required":4,"open_postings":4,"first_seen":"2026-05-25","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Prometheus","layer":"tools","postings":5,"share":0.0847,"required":4,"open_postings":1,"first_seen":"2026-05-26","last_seen":"2026-06-08","median_stated_pay_usd":120000},{"name":"pySpark","layer":"tools","postings":5,"share":0.0847,"required":4,"open_postings":3,"first_seen":"2026-05-25","last_seen":"2026-07-10","median_stated_pay_usd":120000},{"name":"Go","layer":"languages","postings":5,"share":0.0847,"required":2,"open_postings":1,"first_seen":"2026-05-28","last_seen":"2026-08-06","median_stated_pay_usd":120000},{"name":"MySQL","layer":"data","postings":4,"share":0.0678,"required":4,"open_postings":2,"first_seen":"2026-05-25","last_seen":"2026-07-17","median_stated_pay_usd":null},{"name":"PagerDuty","layer":"cloud","postings":4,"share":0.0678,"required":4,"open_postings":1,"first_seen":"2026-05-26","last_seen":"2026-06-08","median_stated_pay_usd":null},{"name":"Tokenization","layer":"practices","postings":4,"share":0.0678,"required":4,"open_postings":2,"first_seen":"2026-05-25","last_seen":"2026-09-09","median_stated_pay_usd":null},{"name":"OpenSearch","layer":"data","postings":4,"share":0.0678,"required":3,"open_postings":4,"first_seen":"2026-08-06","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Django","layer":"frameworks","postings":3,"share":0.0508,"required":3,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-07-17","median_stated_pay_usd":null},{"name":"Embeddings","layer":"practices","postings":3,"share":0.0508,"required":3,"open_postings":2,"first_seen":"2026-06-11","last_seen":"2026-07-30","median_stated_pay_usd":null},{"name":"Flask","layer":"frameworks","postings":3,"share":0.0508,"required":3,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-07-17","median_stated_pay_usd":null},{"name":"Kubernetes","layer":"cloud","postings":3,"share":0.0508,"required":3,"open_postings":3,"first_seen":"2026-08-06","last_seen":"2026-08-16","median_stated_pay_usd":null},{"name":"Recommender Systems","layer":"practices","postings":3,"share":0.0508,"required":3,"open_postings":3,"first_seen":"2026-05-26","last_seen":"2026-06-04","median_stated_pay_usd":null},{"name":"AWS Lambda","layer":"cloud","postings":3,"share":0.0508,"required":2,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Docker","layer":"tools","postings":3,"share":0.0508,"required":2,"open_postings":0,"first_seen":"2026-05-25","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"PyTorch","layer":"frameworks","postings":3,"share":0.0508,"required":2,"open_postings":3,"first_seen":"2026-06-02","last_seen":"2026-09-05","median_stated_pay_usd":null},{"name":"Amazon ECS","layer":"cloud","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Amazon S3","layer":"cloud","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"C#","layer":"languages","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"CircleCI","layer":"tools","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Databricks","layer":"cloud","postings":2,"share":0.0339,"required":2,"open_postings":1,"first_seen":"2026-06-04","last_seen":"2026-07-06","median_stated_pay_usd":null},{"name":"DynamoDB","layer":"data","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Fine-tuning","layer":"practices","postings":2,"share":0.0339,"required":2,"open_postings":2,"first_seen":"2026-06-02","last_seen":"2026-06-04","median_stated_pay_usd":null},{"name":"Java","layer":"languages","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"NLP","layer":"practices","postings":2,"share":0.0339,"required":2,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-09-09","median_stated_pay_usd":null},{"name":"Platform Engineering","layer":"practices","postings":2,"share":0.0339,"required":2,"open_postings":2,"first_seen":"2026-07-24","last_seen":"2026-08-06","median_stated_pay_usd":null},{"name":"Pulumi","layer":"tools","postings":2,"share":0.0339,"required":2,"open_postings":0,"first_seen":"2026-06-24","last_seen":"2026-06-30","median_stated_pay_usd":null},{"name":"Reranking","layer":"practices","postings":2,"share":0.0339,"required":2,"open_postings":2,"first_seen":"2026-06-02","last_seen":"2026-09-09","median_stated_pay_usd":null},{"name":"VictoriaMetrics","layer":"tools","postings":2,"share":0.0339,"required":2,"open_postings":2,"first_seen":"2026-08-10","last_seen":"2026-08-16","median_stated_pay_usd":null},{"name":"dbt","layer":"tools","postings":2,"share":0.0339,"required":2,"open_postings":1,"first_seen":"2026-07-30","last_seen":"2026-08-02","median_stated_pay_usd":null},{"name":"Metabase","layer":"cloud","postings":2,"share":0.0339,"required":1,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-06-04","median_stated_pay_usd":null},{"name":"Sentry","layer":"cloud","postings":2,"share":0.0339,"required":1,"open_postings":2,"first_seen":"2026-07-06","last_seen":"2026-08-10","median_stated_pay_usd":null},{"name":"C++","layer":"languages","postings":2,"share":0.0339,"required":0,"open_postings":1,"first_seen":"2026-06-04","last_seen":"2026-08-06","median_stated_pay_usd":null},{"name":"Pytest","layer":"frameworks","postings":2,"share":0.0339,"required":0,"open_postings":0,"first_seen":"2026-05-28","last_seen":"2026-06-08","median_stated_pay_usd":null},{"name":"Accelerate","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-05","last_seen":"2026-09-05","median_stated_pay_usd":null},{"name":"Angular","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Claude","layer":"ai","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-05","last_seen":"2026-09-05","median_stated_pay_usd":null},{"name":"Claude Code","layer":"tools","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-24","last_seen":"2026-07-24","median_stated_pay_usd":null},{"name":"Cypress","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"DLP","layer":"cloud","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-24","last_seen":"2026-07-24","median_stated_pay_usd":null},{"name":"EU AI Act","layer":"practices","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-05-26","last_seen":"2026-05-26","median_stated_pay_usd":null},{"name":"Feature Store","layer":"practices","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-06-04","last_seen":"2026-06-04","median_stated_pay_usd":null},{"name":"Jest","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"LLM Guardrails","layer":"practices","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-16","last_seen":"2026-09-16","median_stated_pay_usd":null},{"name":"Multimodal AI","layer":"practices","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-06-04","last_seen":"2026-06-04","median_stated_pay_usd":null},{"name":"Okta","layer":"cloud","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-24","last_seen":"2026-07-24","median_stated_pay_usd":null},{"name":"Plotly","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-06","last_seen":"2026-07-06","median_stated_pay_usd":null},{"name":"Postman","layer":"cloud","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-10","last_seen":"2026-07-10","median_stated_pay_usd":null},{"name":"Presto","layer":"data","postings":1,"share":0.0169,"required":1,"open_postings":0,"first_seen":"2026-06-04","last_seen":"2026-06-04","median_stated_pay_usd":null},{"name":"Pure Data","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-30","last_seen":"2026-07-30","median_stated_pay_usd":null},{"name":"Redux","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Reinforcement Learning","layer":"practices","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-06-01","last_seen":"2026-06-01","median_stated_pay_usd":null},{"name":"Rest API","layer":"tools","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-10","last_seen":"2026-07-10","median_stated_pay_usd":null},{"name":"Scikit-learn","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-07-30","last_seen":"2026-07-30","median_stated_pay_usd":null},{"name":"Vue.js","layer":"frameworks","postings":1,"share":0.0169,"required":1,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"BigQuery","layer":"data","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-05-25","median_stated_pay_usd":null},{"name":"FinOps","layer":"practices","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-08-10","last_seen":"2026-08-10","median_stated_pay_usd":null},{"name":"Google BigQuery","layer":"data","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-05-25","median_stated_pay_usd":null},{"name":"Looker","layer":"cloud","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-05-25","median_stated_pay_usd":null},{"name":"Milvus","layer":"data","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-08-06","last_seen":"2026-08-06","median_stated_pay_usd":null},{"name":"Next.js","layer":"frameworks","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Playwright","layer":"frameworks","postings":1,"share":0.0169,"required":0,"open_postings":0,"first_seen":"2026-05-25","last_seen":"2026-05-25","median_stated_pay_usd":null},{"name":"Qdrant","layer":"data","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-08-06","last_seen":"2026-08-06","median_stated_pay_usd":null},{"name":"Storybook","layer":"tools","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Superset","layer":"cloud","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-05-25","last_seen":"2026-05-25","median_stated_pay_usd":null},{"name":"Tableau","layer":"cloud","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-09-05","last_seen":"2026-09-05","median_stated_pay_usd":null},{"name":"Tailwind CSS","layer":"frameworks","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-09-03","last_seen":"2026-09-03","median_stated_pay_usd":null},{"name":"Weaviate","layer":"data","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-08-06","last_seen":"2026-08-06","median_stated_pay_usd":null},{"name":"pgvector","layer":"frameworks","postings":1,"share":0.0169,"required":0,"open_postings":1,"first_seen":"2026-08-06","last_seen":"2026-08-06","median_stated_pay_usd":null}],"own_products":[],"changes":{"first_appeared":[],"rising":[{"name":"SQL","share_from":19,"share_to":34},{"name":"Machine Learning","share_from":19,"share_to":34},{"name":"OpenSearch","share_from":0,"share_to":13},{"name":"JavaScript","share_from":11,"share_to":22},{"name":"TypeScript","share_from":7,"share_to":16},{"name":"LLM","share_from":4,"share_to":13},{"name":"ETL/ELT","share_from":4,"share_to":13},{"name":"Kubernetes","share_from":0,"share_to":9}],"falling":[{"name":"A/B Testing","share_from":74,"share_to":41},{"name":"CI/CD","share_from":30,"share_to":9},{"name":"GitHub Actions","share_from":26,"share_to":6},{"name":"AWS","share_from":41,"share_to":22},{"name":"GitHub","share_from":22,"share_to":3},{"name":"CloudFormation","share_from":19,"share_to":0},{"name":"Prometheus","share_from":19,"share_to":0},{"name":"Rust","share_from":19,"share_to":3}],"not_seen_180d":[]},"similar_stacks":[{"name":"Amazon.jobs","url":"https://alion.io/company/amazon-jobs/technologies","shared_technologies":61},{"name":"Klimb.io","url":"https://alion.io/company/klimb-io/technologies","shared_technologies":71},{"name":"About You","url":"https://alion.io/company/aboutyou/technologies","shared_technologies":64},{"name":"Tekion","url":"https://alion.io/company/tekion/technologies","shared_technologies":70},{"name":"WhiteSnake","url":"https://alion.io/company/whitesnake/technologies","shared_technologies":60},{"name":"Roku","url":"https://alion.io/company/roku/technologies","shared_technologies":70},{"name":"Tiger Analytics","url":"https://alion.io/company/tigeranalytics/technologies","shared_technologies":71},{"name":"Zendesk","url":"https://alion.io/company/zendesk/technologies","shared_technologies":62}],"html_url":"https://alion.io/company/constructor-3/technologies","json_url":"https://alion.io/company/constructor-3/technologies.json","license":"CC BY-SA 4.0","meta":{"source":"Alion","built_at":"2026-09-28T21:26:44Z","generated_at":"2026-09-28T23:07:00Z"}}