Replication Package for "What's in a Software Engineering Job Posting?"
收藏资源简介:
Summary of Artefacts These artefacts accompany a research article submitted to the ICSE'26 Research Track. They include JupyterNotebooks, TSVs, Excel, JSONs, design files, PDFs, and READMEs. Running these artefacts is fairly straightforward, as they are all JupyterNotebooks designed to run in a Python virtual environment. Any system that supports those two things should be able to run these artefacts. Simply follow the intructions under INSTALL.md and open the notebooks. What you'll find is that the results are already displayed within the outputs of the notebooks. If you want more details regarding the scientific work that these artefacts support, check out the title and abstract in the following section of this README. Live Interactive Visualisation of the Thematic Map: https://docs.google.com/spreadsheets/d/1Cfkgx2Uhz4rsnYZ-OnDE6uryXLOU-GknrtpK5J8WsQY Author and Article Details Marvin Wyrich - wyrich@cs.uni-saarland.de - Saarland University, Saarbrücken, Germany Lloyd Montgomery - lloyd.montgomery@uni-hamburg.de - University of Hamburg, Hamburg, Germany Please cite this work as: Wyrich M, Montgomery L. What’s in a Software Engineering Job Posting? In Proceedings of the IEEE/ACM 48th International Conference on Software Engineering 2026 Apr 12. https://doi.org/10.1145/3744916.3773188 Title: What’s in a Software Engineering Job Posting? Abstract: A well-rounded software engineer is often defined by technical prowess and the ability to deliver on complex projects. However, the narrative around the ideal Software Engineering (SE) candidate is evolving, suggesting that there is more to the story. This article explores the non-technical aspects emphasized in SE job postings, revealing the sociotechnical and organizational expectations of employers. Our Thematic Analysis of 100 job postings shows that employers seek candidates who align with their sense of purpose, fit within company culture, pursue personal and career growth, and excel in interpersonal interactions. This study contributes to ongoing discussions in the SE community about the evolving role and workplace context of software engineers beyond technical skills. By highlighting these expectations, we provide relevant insights for researchers, educators, practitioners, and recruiters. Additionally, our analysis offers a valuable snapshot of SE job postings in 2023, providing a scientific record of prevailing trends and expectations. Description of Artefacts The artefact is split into multiple folders. Most of the folders are for different stages of the analysis process, while others hold standard data needed and produced by the scripts. Here is an explanation of everything in this repo: 0_job_postings: The PDFs of the collected job postings. Also includes a README explaining the data collection process. 1_data_transformation: Transforms the extracted text of the job postings (n=100) into our analysis lines to be copied back into the Google Sheet (number of lines = 4,165). 2_coding_support: A multi-purpose analysis script that supported the "coding" portion of the Thematic Analysis. The script pulls from both TSV exports of the "SEJP Thematic Analysis.xlsx" sheet, and optionally directly from GoogleSheets using the GoogleCloud API. As this script was used to support the analysis, and not the reporting of the results, there is no need to run this script in order to replicate the findings in the article. NOTE: Getting the direct pulling of data from a GoogleSheet requires quite heavy configuration and is not necessary to run unless you wish to also do a similar analysis. The included ".tsv" files in this folder enables running the scripts to see them function and test the output. Notable functions of this script include: Code-to-Texts Lookup: Enter which codes you'd like to investigate, and the script outputs all evidence pieces under those codes. Code Merger: Enter the codes you wish to merge, and the script outputs a tab-separated list of all codes to be pasted back into the analysis GoogleSheet. Report Code Statistics: Enter the codes you wish to investigate, and the script outputs statistics from the analysis sheet, including number of evidence pieces, number of postings which have that code, and the number of coders who noted that code. 3_data_transformation: Transforms the results of the Thematic Analysis (rows are themes, subthemes, and codes), into the interactive visualisation where the rows are evidence pieces and the columns display the thematic organisation. 4_frequent_set_analysis: Script that outputs all sets of thematic themes (and subthemes). 5_position_analysis: Script that outputs the results of the positional analysis. figs: Output figures are stored here, as well as the design file used to create figure 1 in the article. Thematic Analysis: Scientific analysis artefacts for the Thematic Analysis: Research Protocol.pdf: Assorted notes of meetings and decisions taken. SEJP Thematic Analysis.xlsx: Primary analysis sheet used during the Thematic Analysis. Contains all important stages of the analysis. Originally conducted in GoogleSheets, this is an export to Excel. Theme Creation Ideation Sessions.pdf: Assorted mind maps created during the analysis, particularly the theme creation process. INSTALL.md: Instructions how to get the scripts running. LICENSE.md: The licence for the code. Live Interactive Visualisation: Includes the link to our Live Interactive Visualisation of the Thematic Map. README.md: Top-level explanation of the entire repository. This file. requirements.txt: Lists the packages needed for the Python virtual environment. These are installed automatically when following the instrutions in the INSTALL.md file. Licenses The code is licensed under MIT. The license is included in this repository and further information can be found here:https://opensource.org/licenses/MIT The data is licensed under CC BY 4.0. What’s in a Software Engineering Job Posting? © 2025 by Marvin Wyrich and Lloyd Montgomery is licensed under CC BY 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/



