From decbfaa3f23ee2208fb3f2bcdaddb8ce63dfee1d Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Wed, 31 Jul 2024 14:03:05 -0400 Subject: [PATCH 01/12] Tidy YAML errors --- _data/collections.yaml | 13 +++++++------ _data/services.yaml | 3 ++- _data/site.yaml | 6 +++--- admin/config.yml | 7 ++++--- dependabot.yml | 1 + 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/_data/collections.yaml b/_data/collections.yaml index a81b235d..4ebae7a9 100644 --- a/_data/collections.yaml +++ b/_data/collections.yaml @@ -1,19 +1,20 @@ +--- # We can add any kind of data in this _data folder and this file. -# In this example, we create a simple array of options and then in the _pages/collections.md file we -# Reference this data file in 'datafile' in the Front Matter and _layouts/list.html renders it +# In this example, we create a simple array of options and then in the _pages/collections.md file we +# Reference this data file in 'datafile' in the Front Matter and _layouts/list.html renders it # This is simple, hopefully provides you with a good enough example to make changes as needed - name: GSA url: https://gsa.gov - description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. + description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. - name: USDA url: http://usda.gov/ - description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. + description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. - name: Performance.gov url: http://performance.gov/ - description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. + description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. - name: Login.gov url: https://login.gov - description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. + description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus interdum pellentesque. Integer eu vehicula elit. Sed cursus magna in dui suscipit rhoncus. diff --git a/_data/services.yaml b/_data/services.yaml index f0215aac..721b6d4f 100644 --- a/_data/services.yaml +++ b/_data/services.yaml @@ -1,3 +1,4 @@ +--- services: - name: USAGov link: https://usa.gov @@ -106,7 +107,7 @@ services: link: https://18f.gsa.gov link_alt_text: link to 18F homepage logo: _img/18f-logo.svg - logo_alt_text: 18F + logo_alt_text: 18F category: people description: A digital consulting office that partners with agencies to help them build or buy digital services. diff --git a/_data/site.yaml b/_data/site.yaml index 499ce5a7..804be900 100644 --- a/_data/site.yaml +++ b/_data/site.yaml @@ -1,3 +1,4 @@ +--- title: Technology Transformation Services email: tts-info@gsa.gov description: >- # this means to ignore newlines @@ -53,7 +54,7 @@ dap: # Configuration for Google Analytics ga: - # ua: your-ua +# ua: your-ua # Site Navigation primary_navigation: @@ -99,8 +100,7 @@ searchgov: "foobar" # Replace this with your search.gov account. # affiliate: federalist-uswds-example -# Replace this with your access key. -# access_key: xX1gtb2RcnLbIYkHAcB6IaTRr4ZfN-p16ofcyUebeko= +# access_key: replace_this_with_your_access_key # This renders the results within the page instead of sending to user to search.gov. # inline: true diff --git a/admin/config.yml b/admin/config.yml index f77fb1d5..68a9cf45 100644 --- a/admin/config.yml +++ b/admin/config.yml @@ -1,3 +1,4 @@ +--- ## Comment out when doing local development backend: name: github @@ -15,9 +16,9 @@ backend: # # See https://www.netlifycms.org/docs/beta-features/#working-with-a-local-git-repository # # -backend: - name: git-gateway -local_backend: true +# backend: +# name: git-gateway +# local_backend: true media_folder: _img public_folder: _img diff --git a/dependabot.yml b/dependabot.yml index b6961c29..862a9889 100644 --- a/dependabot.yml +++ b/dependabot.yml @@ -1,3 +1,4 @@ +--- # To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. # Please see the documentation for all configuration options: From c5864eca63e5c6595d305e510d98aef46d75df11 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Wed, 31 Jul 2024 14:04:15 -0400 Subject: [PATCH 02/12] Fix Checkov errors --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 91b72554..8f4aab6b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,6 +5,7 @@ name: Build and Test on: pull_request: +permissions: read-all jobs: build: From ae28e6b1777bb868d174405cdee2cca6ff3696d7 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Wed, 31 Jul 2024 14:48:50 -0400 Subject: [PATCH 03/12] Tidy Markdown errors --- .github/pull_request_template.md | 5 +- CONTRIBUTING.md | 2 +- README.md | 127 +++++++++--- about/index.md | 9 +- allstar.md | 3 +- overview.md | 41 +++- pages/jointts/positions/designer.md | 308 ++++++++++++++++++++-------- pages/jointts/rolling-hiring.md | 147 ++++++++++--- 8 files changed, 478 insertions(+), 164 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 39ca41e7..b794ec5c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,7 +1,10 @@ -## Changes proposed in this pull request: + +## Changes proposed in this pull request + - - - ## security considerations + [Note the any security considerations here, or make note of why there are none] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec79fab7..f373d675 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Welcome! +# Welcome We're so glad you're thinking about contributing to a [open source project of the U.S. government](https://code.gov/)! If you're unsure about anything, just ask -- or submit the issue or pull request anyway. The worst that can happen is you'll be politely asked to change something. We love all friendly contributions. diff --git a/README.md b/README.md index f6264627..61384386 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,27 @@ # Technology Transformation Services website -This is the code for https://tts.gsa.gov. Our tech stack in short is: +This is the code for [tts.gsa.gov](https://tts.gsa.gov/). +Our tech stack in short is: - [11ty](https://www.11ty.dev/) - [U.S. Web Design System v 3.0 (USWDS)](https://designsystem.digital.gov/) -This site strives to be compliant with requirements set by [21st Century IDEA Act](https://www.meritalk.com/articles/senate-passes-idea-act/). The standards require that a website or digital service: +This site strives to be compliant with requirements set by +[21st Century IDEA Act](https://www.meritalk.com/articles/senate-passes-idea-act/). +The standards require that a website or digital service: - is accessible to individuals with disabilities; - has a consistent appearance; -- does not duplicate any legacy websites (the legislation also requires agencies to ensure that legacy websites are regularly reviewed, removed, and consolidated); +- does not duplicate any legacy websites (the legislation also requires + agencies to ensure that legacy websites are regularly reviewed, removed, + and consolidated); - has a search function; - uses an industry standard secure connection; -- is designed around user needs with data-driven analysis influencing management and development decisions, using qualitative and quantitative data to determine user goals, needs, and behaviors, and continually test the website, web-based form, web-based application, or digital service to ensure that user needs are addressed; +- is designed around user needs with data-driven analysis influencing + management and development decisions, using qualitative and quantitative + data to determine user goals, needs, and behaviors, and continually + test the website, web-based form, web-based application, or digital + service to ensure that user needs are addressed; - allows for user customization; and - is mobile-friendly. @@ -34,7 +43,7 @@ This site strives to be compliant with requirements set by [21st Century IDEA Ac The Netlify CMS can be configured in [`/admin/config.yml`](./admin/config.yml) and you will update the `repo` key to be your Github organization and repository name. -```yml +```YAML backend: name: github repo: / @@ -47,28 +56,36 @@ backend: ### Running Locally -You can run the Netlify CMS locally to more easily customize and troubleshoot the CMS to you content. -We provide comments in the [`/admin/config.yml`](./admin/config.yml) instructing you how to change the `backend` values from your production site to the local development. +You can run the Netlify CMS locally to more easily customize and troubleshoot +the CMS to you content. -> *Note: Make sure to not commit and push the config with the `backend` set for local develop to Github or -else you will break your production site's Netlify CMS. +We provide comments in the [/admin/config.yml](./admin/config.yml) +instructing you how to change the `backend` values from your production site +to the local development. -```yml +> *Note:* Make sure to not commit and push the config with the `backend` +set for local develop to Github or else you will break your production site's +Netlify CMS. + +```YAML # Local development backend backend: name: git-gateway local_backend: true ``` -Once you [`/admin/config.yml`](./admin/config.yml) is set to local development, you run `npm run dev:cms` to -serve as a development authentication server. +Once your [/admin/config.yml](./admin/config.yml) is set to local development, +you run `npm run dev:cms` to serve as a development authentication server. ## How To - ### Creating links -For preview links generated on the platform, we automatically set the `pathPrefix` in the [`.eleventy.js`](/.eleventy.js) file base on the `BASEURL` environment variable. We use the built-in 11ty filter for `url` to properly append the prefix path for the linked page. When adding new links, use the following syntax: +For preview links generated on the platform, we automatically set the +`pathPrefix` in the [`.eleventy.js`](/.eleventy.js) file base on the +`BASEURL` environment variable. We use the built-in 11ty filter for +`url` to properly append the prefix path for the linked page. +When adding new links, use the following syntax: ```liquid Link to My Dir @@ -78,46 +95,82 @@ See the [11ty docs](https://www.11ty.dev/docs/filters/url/) ### Referencing Images -All of your images will be stored in the `_img/` directory. To reference your images in your templates you can use the `shortcodes` built into the template. +All of your images will be stored in the `_img/` directory. To reference your +images in your templates you can use the `shortcodes` built into the template. -For referencing an image without a style class, you will pass the template shortcode the image's source path and the alternative image name in that order. ie: +For referencing an image without a style class, you will pass the template +shortcode the image's source path and the alternative image name in that order, i.e., -``` +```NJK {% image "_img/my-image.png" "My PNG Image Alternative Name" %} ``` -For referencing an image with a style class, you will pass the template shortcode the image's source path, class names, and the alternative image name in that order. ie: +For referencing an image with a style class, you will pass the template +shortcode the image's source path, class names, and the alternative image name in +that order, i.e., -``` +```NJK {% image_with_class "_img/my-image.png" "img-class another-class" "My PNG Image Alternative Name" %} ``` ### Referencing USWDS Sprite Icons -USWDS has sprite icons available for use. Here is the [list of icons](https://designsystem.digital.gov/components/icon/) available when using the sprite shortcode `uswds_icon` in the template. The following example is how you can reference the icon in a template. +USWDS has sprite icons available for use. Here is the +[list of icons](https://designsystem.digital.gov/components/icon/) +available when using the sprite shortcode `uswds_icon` in the template. +The following example is how you can reference the icon in a template. -``` +```NJK {% uswds_icon "" %} ``` ### Expanding SCSS Styles -CSS and SASS can be added or imported into the `styles/styles.scss`. This template uses [esbuild](https://esbuild.github.io/) and [autoprefixer](https://github.com/postcss/autoprefixer) to bundle your SASS/CSS and fingerprint the files in the site build. +CSS and SASS can be added or imported into the `styles/styles.scss`. +This template uses [esbuild](https://esbuild.github.io/) and +[autoprefixer](https://github.com/postcss/autoprefixer) to bundle +your SASS/CSS and fingerprint the files in the site build. ### Asset pipeline / build process -`config/buildAssets.js` is initiated first when executing `npm run dev`. This file initiates the esbuild build step which processes the SCSS and JS files into the `outdir` which is currently `_site/assets`. Since the esbuild `entryNames` config option template is set to `'[dir]/[name]-[hash]' -`, the asset files will have fingerprint IDs placed on the end of the file names to assist with browser caching. Once the esbuild build step is done, there's a call to a function whose job is to look at any CSS or JavaScript file inside `_site/assets`, read its hash ID, and write out key/value data to `_data/assetPaths.json`. This key in this data is the filename of the asset and the value is the full asset filename as it exists in `_site/assets`. An example of this would be: - -The function finds a file `_site/assets/styles/styles-C4XNB42.css` and it ends up adding a key/value entry to `_data/assetPaths.json` that reads: `"styles.css": "styles-C4XNB42.css"`. - -We make use of this `_data/assetPaths.json` file in our templates, namely `_includes/meta.html` and `_includes/scripts.html` to load scripts and assets using a constant known name (such as `styles.css`) and don't have to worry about updating those linkages each time the content inside the assets causes the hash ID to change. - -Once this function inside `config/buildAssets` is complete it returns control to the esbuild build step when then concludes. The next step is Eleventy begins its build step, looking at `.eleventy.js` for its configuration. Once Eleventy has completed its build process, browsersync begins serving the local repo and a plugin named `chokidar` along with Eleventy's own watch targets begin watching for CSS/JS file changes or changes to pages inside Eleventy, ready to hot reload when changes are detected. +`config/buildAssets.js` is initiated first when executing `npm run dev`. +This file initiates the esbuild build step which processes the SCSS and +JS files into the `outdir` which is currently `_site/assets`. Since +the esbuild `entryNames` config option template is set to +`'[dir]/[name]-[hash]'`, the asset files will have fingerprint IDs placed +on the end of the file names to assist with browser caching. Once the +esbuild build step is done, there's a call to a function whose job is +to look at any CSS or JavaScript file inside `_site/assets`, read its +hash ID, and write out key/value data to `_data/assetPaths.json`. +This key in this data is the filename of the asset and the value is the +full asset filename as it exists in `_site/assets`. An example of this would +be: + +The function finds a file `_site/assets/styles/styles-C4XNB42.css` +and it ends up adding a key/value entry to `_data/assetPaths.json` +that reads: `"styles.css": "styles-C4XNB42.css"`. + +We make use of this `_data/assetPaths.json` file in our templates, +namely `_includes/meta.html` and `_includes/scripts.html` to load +scripts and assets using a constant known name (such as `styles.css`) +and don't have to worry about updating those linkages each time the +content inside the assets causes the hash ID to change. + +Once this function inside `config/buildAssets` is complete it returns +control to the esbuild build step when then concludes. The next step +is Eleventy begins its build step, looking at `.eleventy.js` for its +configuration. Once Eleventy has completed its build process, browsersync +begins serving the local repo and a plugin named `chokidar` along with +Eleventy's own watch targets begin watching for CSS/JS file changes or +changes to pages inside Eleventy, ready to hot reload when changes are +detected. ### Adding custom Javascript -Javascript can be added to the admin UI or site UI by adding or importing code into the `js/admin.js` or `js/app.js` files respectively. This template uses [esbuild](https://esbuild.github.io/) to bundle your javascript and fingerprint the files in the site build. +Javascript can be added to the admin UI or site UI by adding or importing +code into the `js/admin.js` or `js/app.js` files respectively. This +template uses [esbuild](https://esbuild.github.io/) to bundle your +javascript and fingerprint the files in the site build. ## Contributing @@ -125,8 +178,14 @@ See [CONTRIBUTING](CONTRIBUTING.md) for additional information. ## Public domain -This project is in the worldwide [public domain](LICENSE.md). As stated in [CONTRIBUTING](CONTRIBUTING.md): +This project is in the worldwide [public domain](LICENSE.md). +As stated in [CONTRIBUTING](CONTRIBUTING.md): -> This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). +> This project is in the public domain within the United States, +> and copyright and related rights in the work worldwide are waived +> through the +> [CC0-1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). > -> All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest. +> All contributions to this project will be released under the +> CC0-1.0 dedication. By submitting a pull request, you are +> agreeing to comply with this waiver of copyright interest. diff --git a/about/index.md b/about/index.md index dfaa019b..afe17b55 100644 --- a/about/index.md +++ b/about/index.md @@ -6,4 +6,11 @@ eleventyNavigation: order: 3 --- -Every interaction with the public is an opportunity to improve trust in the government. For over 50 years, GSA has been working to improve access to government services. Today, GSA’s Technology Transformation Services (TTS) exists to design and deliver a digital government with and for the American people. We apply modern methodologies and technologies to improve the lives of the public and public servants. We help agencies make their services more accessible, efficient, and effective with modern applications, platforms, processes, personnel, and software solutions. +Every interaction with the public is an opportunity to improve trust in the +government. For over 50 years, GSA has been working to improve access to +government services. Today, GSA’s Technology Transformation Services (TTS) +exists to design and deliver a digital government with and for the +American people. We apply modern methodologies and technologies to +improve the lives of the public and public servants. We help agencies make +their services more accessible, efficient, and effective with modern +applications, platforms, processes, personnel, and software solutions. diff --git a/allstar.md b/allstar.md index f937e3b6..25f9ceb9 100644 --- a/allstar.md +++ b/allstar.md @@ -1 +1,2 @@ -Created this Markdown file for documenting Allstar integration to this repo and to serve as a file diff for a PR \ No newline at end of file + +Created this Markdown file for documenting Allstar integration to this repo and to serve as a file diff for a PR diff --git a/overview.md b/overview.md index 2c60b244..954e7e8a 100644 --- a/overview.md +++ b/overview.md @@ -1,13 +1,40 @@ # Technology Transformation Services -Every interaction with the public is an opportunity to improve trust in the government. For over 50 years, GSA has been working to improve access to government services. Today, GSA's Technology Transformation Services (TTS) exists to design and deliver a digital government with and for the American people. We apply modern methodologies and technologies to improve the lives of the public and public servants. +Every interaction with the public is an opportunity to improve trust in the +government. For over 50 years, GSA has been working to improve access to +government services. Today, GSA's Technology Transformation Services (TTS) +exists to design and deliver a digital government with and for the +American people. We apply modern methodologies and technologies to +improve the lives of the public and public servants. -We help agencies make their services more accessible, efficient, and effective with modern applications, platforms, processes, personnel, and software solutions. TTS services include [18F](https://18f.gsa.gov/),[Centers of Excellence](https://coe.gsa.gov/), [Presidential Innovation Fellows](https://presidentialinnovationfellows.gov/), [FedRAMP](https://www.fedramp.gov/), [USA.gov](https://www.usa.gov/), [digital.gov](https://digital.gov/), [cloud.gov](https://cloud.gov/), [login.gov](https://login.gov/), and more. +We help agencies make their services more accessible, efficient, and +effective with modern applications, platforms, processes, personnel, +and software solutions. TTS services include +[18F](https://18f.gsa.gov/), +[Centers of Excellence](https://coe.gsa.gov/), +[Presidential Innovation Fellows](https://presidentialinnovationfellows.gov/), +[FedRAMP](https://www.fedramp.gov/), +[USA.gov](https://www.usa.gov/), +[digital.gov](https://digital.gov/), +[cloud.gov](https://cloud.gov/), +[login.gov](https://login.gov/), +and more. TTS offices and programs include: -* [18F](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/18f): A digital consulting office that partners with agencies to help them build or buy digital services. -* [IT Modernization Centers of Excellence (CoE)](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/the-centers-of-excellence): A centralized team of technical experts that accelerate agency-wide IT modernization. -* [Presidential Innovation Fellowship (PIF)](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/the-presidential-innovation-fellows): A program that pairs top technologists with civil-servants to spend 12 months tackling some of our nation’s biggest challenges. -* [United States Digital Corps](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/united-states-digital-corps): Fellowship program for early-career technologists to launch impactful careers in public service and create a more effective, equitable government. -* [TTS Solutions](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/tts-solutions): A diverse portfolio of mature products and services that help agencies improve delivery of information and services to the public. +* [18F](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/18f): + A digital consulting office that partners with agencies to help them build + or buy digital services. +* [IT Modernization Centers of Excellence (CoE)](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/the-centers-of-excellence): + A centralized team of technical experts that accelerate agency-wide IT + modernization. +* [Presidential Innovation Fellowship (PIF)](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/the-presidential-innovation-fellows): + A program that pairs top technologists with civil-servants to spend 12 + months tackling some of our nation’s biggest challenges. +* [United States Digital Corps](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/united-states-digital-corps): + Fellowship program for early-career technologists to launch impactful + careers in public service and create a more effective, equitable + government. +* [TTS Solutions](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/tts-solutions): + A diverse portfolio of mature products and services that help + agencies improve delivery of information and services to the public. diff --git a/pages/jointts/positions/designer.md b/pages/jointts/positions/designer.md index 261c397d..bda90f58 100644 --- a/pages/jointts/positions/designer.md +++ b/pages/jointts/positions/designer.md @@ -8,7 +8,7 @@ job_post_type: usajobs # INSTRUCTIONS UPCOMING: These fields are required for upcoming role_name: TTS Designer -opens: 'June 14, 2022 at 9:00 am EDT' +opens: 'June 14, 2022 at 9:00 am EDT' closes: 'June 13, 2023 at 11:59 pm EDT' weeks_open: 52 location: 'Virtual (100% Remote)' @@ -47,117 +47,207 @@ supervisory_status: 'No' ## Opportunity overview -These opportunities are located in the General Services Administration (GSA), Federal Acquisition Service (FAS), Technology Transformation Services (TTS). TTS applies modern methodologies and technologies to improve the lives of the public and public servants. We help agencies make their services more accessible, efficient, and effective with modern applications, platforms, processes, personnel, and software solutions. +These opportunities are located in the General Services Administration (GSA), +Federal Acquisition Service (FAS), Technology Transformation Services (TTS). +TTS applies modern methodologies and technologies to improve the lives of +the public and public servants. We help agencies make their services more +accessible, efficient, and effective with modern applications, platforms, +processes, personnel, and software solutions. -We will be interviewing and hiring for this role on an ongoing basis and to help navigate the process, we’ve created a [guide](https://join.tts.gsa.gov/rolling-hiring/) to help explain what to expect after submitting your resume. +We will be interviewing and hiring for this role on an ongoing basis and +to help navigate the process, we’ve created a +[guide](https://join.tts.gsa.gov/rolling-hiring/) +to help explain what to expect after submitting your resume. ## Role summary -Designers at TTS work across design contexts. They drive research activities, derive insights, generate concepts, communicate those concepts clearly, and work with cross functional teams to build and test them. They model best practices in user-centered design within TTS and across the federal government through advocacy and coaching. +Designers at TTS work across design contexts. They drive research activities, +derive insights, generate concepts, communicate those concepts clearly, and +work with cross functional teams to build and test them. They model best +practices in user-centered design within TTS and across the federal +government through advocacy and coaching. -Our Designers have deep experience in user research (generative, foundational and evaluative). In addition to research, we look for strong craft skills, confidence, and sophistication in at least one of the following areas: interaction design, product design, service design, content design and/or information architecture. +Our Designers have deep experience in user research (generative, +foundational and evaluative). In addition to research, we look for strong +craft skills, confidence, and sophistication in at least one of the +following areas: interaction design, product design, service design, +content design and/or information architecture. -As a Designer, you’ll work in cross-functional teams made up of experts in design, product strategy, technical architecture, software engineering, data science, and procurement. In addition to building useful and usable digital services, you will be helping teams improve their user-centered design practice, and helping teams without those practices get started. +As a Designer, you’ll work in cross-functional teams made up of experts +in design, product strategy, technical architecture, software engineering, +data science, and procurement. In addition to building useful and usable +digital services, you will be helping teams improve their user-centered +design practice, and helping teams without those practices get started. -If you are committed to improving government services for all who need them this is the position for you. +If you are committed to improving government services for all who need +them this is the position for you. Types of designers we are currently hiring for: + - UX Design - Service Design - Content Strategy - Product Design Some of the teams we are currently hiring for (not a complete list): -Please note, while a candidate's preference on teams may be taken into consideration, a final hiring decision on which team a candidate will join depends on the candidate's skillsets as well as current needs of each team. -- [18F](https://18f.gsa.gov/): Cross-discipline teams that work on projects supporting agencies across the federal government. -- [USAGov](https://www.usa.gov/): A team supporting a large web presence, including the government’s “front door” that routes the public to government agency resources. -- [Centers of Excellence](https://coe.gsa.gov/): Cross-discipline teams work with agency partners and industry to accelerate enterprise-wide IT & data modernization with emphasis on improving the customer and employee experience. -- [Login.gov](https://login.gov/): Teams supporting a product that manages identity for interactions with the federal government. +Please note, while a candidate's preference on teams may be taken into +consideration, a final hiring decision on which team a candidate will +join depends on the candidate's skillsets as well as current needs of +each team. + +- [18F](https://18f.gsa.gov/): Cross-discipline teams that work on + projects supporting agencies across the federal government. +- [USAGov](https://www.usa.gov/): A team supporting a large web + presence, including the government’s “front door” that routes + the public to government agency resources. +- [Centers of Excellence](https://coe.gsa.gov/): Cross-discipline + teams work with agency partners and industry to accelerate + enterprise-wide IT & data modernization with emphasis on improving + the customer and employee experience. +- [Login.gov](https://login.gov/): Teams supporting a product that + manages identity for interactions with the federal government. ## Key objectives -### 1. Demonstrate excellence in design, while grasping the core questions and responsibilities of at least one design discipline. -In addition to strong skill in experience design, we expect expertise in at least one of the following disciplines: +### 1. Demonstrate excellence in design, while grasping the core questions and responsibilities of at least one design discipline + +In addition to strong skill in experience design, we expect expertise +in at least one of the following disciplines: -- Interaction design: Define interface logic and behavior, always keeping human behaviors and needs in mind -- Information architecture: Organize and structure complex information to help diverse audiences easily find what they need -- Service design: Improve the relationship of the customer or user and the service provider across all of their interactions and communication channels -- Product design: Develop clear and accessible visual systems, while advancing human-centered design practices -- Content strategy & design: Deliver high-quality, user-centered content and lead projects from a content perspective +- Interaction design: Define interface logic and behavior, always + keeping human behaviors and needs in mind +- Information architecture: Organize and structure complex information + to help diverse audiences easily find what they need +- Service design: Improve the relationship of the customer or user + and the service provider across all of their interactions and + communication channels +- Product design: Develop clear and accessible visual systems, while + advancing human-centered design practices +- Content strategy & design: Deliver high-quality, user-centered content + and lead projects from a content perspective **GS15 objectives for successful TTS Designers:** -- Zoom in and out. Generate high-level product strategies as well as practical project steps and considerations to get there -- Support collaborative decision making by telling compelling stories drawn from research to build shared understanding + +- Zoom in and out. Generate high-level product strategies as well as + practical project steps and considerations to get there +- Support collaborative decision making by telling compelling stories + drawn from research to build shared understanding - Show persistent commitment to thoughtful, inclusive, ethical user research -- Deliver whatever’s needed to guide development — this could include wireframes, sitemaps, flowcharts, storyboards, user stories, or other innovative approaches -- Create written materials and visual presentations that are accessible to non-experts as well as being legally and technically accurate. -- Incorporate UX into agile development sprints, coordinating with visual and content designers, developers, and product managers to achieve a strategic vision -- Use modern interaction design patterns and best practices, understanding that there are exceptions to every rule +- Deliver whatever’s needed to guide development — this could include + wireframes, sitemaps, flowcharts, storyboards, user stories, or other + innovative approaches +- Create written materials and visual presentations that are accessible + to non-experts as well as being legally and technically accurate. +- Incorporate UX into agile development sprints, coordinating with visual + and content designers, developers, and product managers to achieve a + strategic vision +- Use modern interaction design patterns and best practices, + understanding that there are exceptions to every rule - Commit to making what we build fully accessible to the people we serve - Create a work environment that fosters trust, respect, and collaboration **GS14 objectives for successful TTS Designers:** -- Support collaborative decision-making by telling compelling stories drawn from research to build shared understanding + +- Support collaborative decision-making by telling compelling stories + drawn from research to build shared understanding - Show persistent commitment to thoughtful, inclusive, ethical user research -- Deliver whatever’s needed to guide development — this could include wireframes, sitemaps, flowcharts, storyboards, user stories, or other innovative approaches -- Create written materials and visual presentations that are accessible to non-experts as well as being legally and technically accurate -- Incorporate UX into agile development sprints, coordinating with visual and content designers, developers, and product managers to achieve a strategic vision -- Use modern interaction design patterns and best practices, understanding that there are exceptions to every rule +- Deliver whatever’s needed to guide development — this could include + wireframes, sitemaps, flowcharts, storyboards, user stories, or other + innovative approaches +- Create written materials and visual presentations that are accessible + to non-experts as well as being legally and technically accurate +- Incorporate UX into agile development sprints, coordinating with visual + and content designers, developers, and product managers to achieve a + strategic vision +- Use modern interaction design patterns and best practices, + understanding that there are exceptions to every rule - Commit to making what we build fully accessible to the people we serve - Create a work environment that fosters trust, respect, and collaboration **GS13 objectives for successful TTS Designers:** -- Support collaborative decision-making by telling compelling stories drawn from research to build shared understanding + +- Support collaborative decision-making by telling compelling stories + drawn from research to build shared understanding - Show persistent commitment to thoughtful, inclusive, ethical user research -- Deliver whatever’s needed to guide development — this could include wireframes, sitemaps, flowcharts, storyboards, user stories, or other innovative approaches -- Create written materials and visual presentations that are accessible to non-experts as well as being legally and technically accurate -- Incorporate UX into agile development sprints, coordinating with visual and content designers, developers, and product managers to achieve a strategic vision -- Use modern interaction design patterns and best practices, understanding that there are exceptions to every rule +- Deliver whatever’s needed to guide development — this could include + wireframes, sitemaps, flowcharts, storyboards, user stories, or other + innovative approaches +- Create written materials and visual presentations that are accessible + to non-experts as well as being legally and technically accurate +- Incorporate UX into agile development sprints, coordinating with visual + and content designers, developers, and product managers to achieve a + strategic vision +- Use modern interaction design patterns and best practices, understanding + that there are exceptions to every rule - Commit to making what we build fully accessible to the people we serve - Create a work environment that fosters trust, respect, and collaboration ### 2. Advance design practices **GS15 objectives for successful TTS Designers:** + - Clearly communicate user-centered methods and their value to non-designers -- Mentor and coach colleagues and partners who are taking on new tasks and roles within design and research -- Share knowledge, techniques, tools, patterns, and expert advice with colleagues, partners, and the public -- Promote empathy not just for members of the public, but also for our partners across the government and our co-workers -- Contribute to team-wide resources and training materials, including methods, tutorials, guides, presentations, and design toolkits +- Mentor and coach colleagues and partners who are taking on new tasks and + roles within design and research +- Share knowledge, techniques, tools, patterns, and expert advice with + colleagues, partners, and the public +- Promote empathy not just for members of the public, but also for our + partners across the government and our co-workers +- Contribute to team-wide resources and training materials, including + methods, tutorials, guides, presentations, and design toolkits **GS14 objectives for successful TTS Designers:** + - Clearly communicate user-centered methods and their value to non-designers -- Collaborate with colleagues and partners who are taking on new tasks and roles within design and research -- Share knowledge, techniques, tools, patterns, and expert advice with colleagues, partners, and the public -- Promote empathy not just for members of the public, but also for our partners across the government and our co-workers -- Contribute to team-wide resources and training materials, including methods, tutorials, guides, presentations, and design toolkits +- Collaborate with colleagues and partners who are taking on new tasks and + roles within design and research +- Share knowledge, techniques, tools, patterns, and expert advice with + colleagues, partners, and the public +- Promote empathy not just for members of the public, but also for our + partners across the government and our co-workers +- Contribute to team-wide resources and training materials, including + methods, tutorials, guides, presentations, and design toolkits **GS13 objectives for successful TTS Designers:** + - Learn to communicate user-centered methods and their value to non-designers -- Collaborate with colleagues and partners who are taking on new tasks and roles within design and research -- Share knowledge, techniques, tools, patterns, and expert advice with colleagues, partners, and the public -- Promote empathy not just for members of the public, but also for our partners across the government and our co-workers -- Contribute to team-wide resources and training materials, including methods, tutorials, guides, presentations, and design toolkits +- Collaborate with colleagues and partners who are taking on new tasks and + roles within design and research +- Share knowledge, techniques, tools, patterns, and expert advice with + colleagues, partners, and the public +- Promote empathy not just for members of the public, but also for our + partners across the government and our co-workers +- Contribute to team-wide resources and training materials, including methods, + tutorials, guides, presentations, and design toolkits - Show a commitment to growing their skills through professional development ### 3. Work effectively in the federal government **GS15 objectives for successful TTS Designers:** -- Skillfully navigate complex organizational relationships to deepen understanding + +- Skillfully navigate complex organizational relationships to deepen + understanding - Build inclusive, respectful partnerships with diverse groups of people - Cooperatively negotiate disagreements and mediate compromises - Conduct design activities and coach others on those activities -- Demonstrate genuine interest in the day-to-day activities that keep our government running +- Demonstrate genuine interest in the day-to-day activities that keep our + government running **GS14 objectives for successful TTS Designers:** + - Build inclusive, respectful partnerships with diverse groups of people -- Participate & lead design activities and work with teammates to coach others on those activities -- Demonstrate genuine interest in the day-to-day activities that keep our government running +- Participate & lead design activities and work with teammates to coach + others on those activities +- Demonstrate genuine interest in the day-to-day activities that keep our + government running **GS13 objectives for successful TTS Designers:** + - Build inclusive, respectful partnerships with diverse groups of people -- Participate in design activities and work effectively with cross-disciplinary teammates -- Demonstrate genuine interest in the day-to-day activities that keep our government running +- Participate in design activities and work effectively with cross-disciplinary + teammates +- Demonstrate genuine interest in the day-to-day activities that keep our + government running ## Basic information @@ -170,19 +260,25 @@ The salary ranges for this position are: - GS-14 Step 1 $111,521 to GS-14 Step 10 $176,300 - GS-15 Step 1 $131,178 to GS-15 Step 10 $176,300 -Your salary, including base and locality, will be determined upon selection, dependent on your actual duty location. +Your salary, including base and locality, will be determined upon selection, +dependent on your actual duty location. -You can find more information about this in the [compensation and benefits section on our site](https://join.tts.gsa.gov/compensation-and-benefits/). +You can find more information about this in the +[compensation and benefits section on our site](https://join.tts.gsa.gov/compensation-and-benefits/). -For specific details on locality pay, please visit [OPM's Salaries & Wages page](https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/) or for a -salary calculator [OPM's 2022 General Schedule (GS) Salary Calculator](https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2022/general-schedule-gs-salary-calculator/). +For specific details on locality pay, please visit +[OPM's Salaries & Wages page](https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/) +or for a salary calculator +[OPM's 2022 General Schedule (GS) Salary Calculator](https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2022/general-schedule-gs-salary-calculator/). Please note the maximum salary available for the GS pay system is **$176,300** -Note: You may not be eligible for the maximum salary as it is locality dependent. Please refer to the maximum pay for your locality. +Note: You may not be eligible for the maximum salary as it is locality +dependent. Please refer to the maximum pay for your locality. **Who May Apply:** -All United States citizens and nationals (residents of American Samoa and Swains Islands). +All United States citizens and nationals (residents of American Samoa and +Swains Islands). **Travel requirement:** Occasional travel may be required up to 10%-20% per year. @@ -194,57 +290,87 @@ Public trust. Background investigation required. Full time. **Appointment type:** -This is a term limited appointment with the ability to extend for a total of eight years. +This is a term limited appointment with the ability to extend for a total of +eight years. **Employee benefits:** [Learn more about the benefits we offer.](https://join.tts.gsa.gov/compensation-and-benefits/) - - Health insurance (choose from a wide range of plans) - - Life insurance coverage with several options - - Sick leave and vacation time, including 10 paid holidays per year - - Thrift Savings Plan (similar to a 401(k) plan) - - Flexible work schedules and telework - - Transit and child care subsidies - - Training and development - - Flexible spending accounts - - Long-term care insurance - - Training and development - - Direct Deposit of salary check to financial organization required. +- Health insurance (choose from a wide range of plans) +- Life insurance coverage with several options +- Sick leave and vacation time, including 10 paid holidays per year +- Thrift Savings Plan (similar to a 401(k) plan) +- Flexible work schedules and telework +- Transit and child care subsidies +- Training and development +- Flexible spending accounts +- Long-term care insurance +- Training and development +- Direct Deposit of salary check to financial organization required. ## Qualifications -Provide as much detail as possible on your resume so that we can evaluate your previous experience. Follow our [guidance on creating a federal style resume.](https://join.tts.gsa.gov/resume/) +Provide as much detail as possible on your resume so that we can evaluate +your previous experience. Follow our +[guidance on creating a federal style resume.](https://join.tts.gsa.gov/resume/) -Qualification determinations can’t be made when resumes don’t include the required information. Failure to provide required information may result in disqualification. +Qualification determinations can’t be made when resumes don’t include the +required information. Failure to provide required information may result in +disqualification. For each job on your resume, provide: -- The exact dates you held each job (from month/year to month/year or “present”) +- The exact dates you held each job (from month/year to month/year or + “present”) - Number of hours per week you worked (if part time) -All applications will be reviewed by a panel of subject matter experts against a scoring rubric created for this role. In order to properly be able to evaluate your previous experience, we recommend being as detailed as possible in your resume and following our general guidance on creating federal style resume. +All applications will be reviewed by a panel of subject matter experts +against a scoring rubric created for this role. In order to properly be +able to evaluate your previous experience, we recommend being as detailed +as possible in your resume and following our general guidance on creating +federal style resume. -To qualify, you must have one (1) year of specialized experience at the next lower GS-grade (or equivalent). Specialized experience is defined as follows: +To qualify, you must have one (1) year of specialized experience at the next +lower GS-grade (or equivalent). Specialized experience is defined as follows: **GS15 qualifications:** -- Experience leading and collaborating on design, content strategy, or service design projects and initiatives -- Experience managing and working on cross-functional teams in an agile or iterative environment -- Experience with content strategy or design methodologies. For example: information architecture, UX writing, editorial design, usability research, user interviews, contextual inquiries, observational research, participatory workshops or product design -- Experience with the creation, design, or delivery of digital products, platforms, systems, or services -- Experience facilitating content strategy, design sessions, or workshops -- Experience leading a team of designers and training them on user centered design, content strategy, content design, or service design methodologies +- Experience leading and collaborating on design, content strategy, or service + design projects and initiatives +- Experience managing and working on cross-functional teams in an agile or + iterative environment +- Experience with content strategy or design methodologies. For example: + information architecture, UX writing, editorial design, usability research, + user interviews, contextual inquiries, observational research, participatory + workshops or product design +- Experience with the creation, design, or delivery of digital products, + platforms, systems, or services +- Experience facilitating content strategy, design sessions, or workshops +- Experience leading a team of designers and training them on user centered + design, content strategy, content design, or service design methodologies **GS14 qualifications:** -- Experience leading and completing a design, content strategy, or service design initiative, engagement, project, or strategy -- Experience working on and leading a cross-functional team in an agile or iterative environment -- Experience with content strategy or design methodologies. For example: information architecture, UX writing, editorial design, usability research, user interviews, contextual inquiries, observational research, participatory workshops or product design -- Experience participating in the design, development, and delivery of digital products, platforms, or services -- Experience participating in content strategy or design sessions or workshops +- Experience leading and completing a design, content strategy, or service + design initiative, engagement, project, or strategy +- Experience working on and leading a cross-functional team in an agile or + iterative environment +- Experience with content strategy or design methodologies. For example: + information architecture, UX writing, editorial design, usability research, + user interviews, contextual inquiries, observational research, participatory + workshops or product design +- Experience participating in the design, development, and delivery of digital + products, platforms, or services +- Experience participating in content strategy or design sessions or workshops **GS13 qualifications:** -- Experience collaborating on design, content strategy, or service design projects and initiatives -- Experience using design methodologies such as information architecture, UX writing, editorial design, usability research, user interviews, contextual inquiries, observational research, participatory workshops or product design -- Experience in designing and/or developing digital products, platforms, or services + +- Experience collaborating on design, content strategy, or service design + projects and initiatives +- Experience using design methodologies such as information architecture, + UX writing, editorial design, usability research, user interviews, + contextual inquiries, observational research, participatory workshops + or product design +- Experience in designing and/or developing digital products, platforms, + or services - Experience with iterative or agile methodologies - Experience participating in content strategy or design sessions or workshops @@ -252,8 +378,10 @@ To qualify, you must have one (1) year of specialized experience at the next low Submit a complete online application prior to {{ closes | date: '%l:%M%P %Z ET on %A, %B %e, %Y' }}. Please fill out all applicable fields. +
Click here to apply
+ **Need Assistance in applying or have questions regarding this job opportunity, please email {{ contact_name }} at** [{{ contact_email }}](mailto:{{ contact_email }}). diff --git a/pages/jointts/rolling-hiring.md b/pages/jointts/rolling-hiring.md index 060bc0dd..053331b8 100644 --- a/pages/jointts/rolling-hiring.md +++ b/pages/jointts/rolling-hiring.md @@ -34,59 +34,148 @@ subnav: href: "#more-about-working-at-tts" --- -We’re excited to be moving forward with your interviews! Below is more information to help you understand the interview and hiring process, along with additional resources covering our benefits and organization. +We’re excited to be moving forward with your interviews! Below is more +information to help you understand the interview and hiring process, along +with additional resources covering our benefits and organization. ## What to expect after submitting your resume -- Applications are being reviewed on an ongoing basis. If the team finds that there is a position match for your skills and experience, we will reach out. Due to a high volume of applications received, we are unable to contact each applicant regarding the status of their application. -- For those who are reviewed and there appears to be a potential match, we’ll move on to the “Interview process and timeline” section below + +- Applications are being reviewed on an ongoing basis. If the team finds + that there is a position match for your skills and experience, we will + reach out. Due to a high volume of applications received, we are unable + to contact each applicant regarding the status of their application. +- For those who are reviewed and there appears to be a potential match, + we’ll move on to the “Interview process and timeline” section below ## Interview process and timeline -The interview process is up to 3 rounds and is as follows. The total process will be up to 3 hours in duration (spread across multiple dates). This process can take place over several weeks. -1. *Phone Screen Interview (60 minutes)* — Phone Interview with a member of the interviewing team to discuss your background - *Note: For Bilingual roles there will be a language proficiency assessment -2. *Technical Interview (60 minutes)* - This is a behavioral style interview which will deeper dive into your technical expertise -3. *Core Values Interview (60 minutes)* - This is a behavioral style interview to evaluate alignment with [TTS core values](https://handbook.tts.gsa.gov/about-us/tts-history/) of inclusion, integrity, and impact -4. A final call with the proposed destination team and candidate may occur at the end of the interview process. It is an open ended conversation and a chance for the candidate and proposed destination team to get to know each other to see if there is mutual interest and skillset fit -We typically use Google Meet for our video interviews — if you are not comfortable or familiar with using Google Meet let your recruiter know and they will be happy to set up a test chat with you prior to your interviews! If you have specific scheduling accommodation needs (such as closed captioning requirements, time of day availability, etc.) please let us know. -In case there are technical issues with a video call, you will also be provided with a dial-in number you can call by phone. -We realize video chats aren’t an option for everyone, so we are also happy to work with a candidate’s individual needs to ensure they have a good interviewing experience and can use their preferred method of communication. +The interview process is up to 3 rounds and is as follows. The total +process will be up to 3 hours in duration (spread across multiple dates). +This process can take place over several weeks. + +1. *Phone Screen Interview (60 minutes)* — Phone Interview with a member + of the interviewing team to discuss your background + *Note: For Bilingual roles there will be a language proficiency assessment* +2. *Technical Interview (60 minutes)* - This is a behavioral style + interview which will deeper dive into your technical expertise +3. *Core Values Interview (60 minutes)* - This is a behavioral style interview + to evaluate alignment with + [TTS core values](https://handbook.tts.gsa.gov/about-us/tts-history/) + of inclusion, integrity, and impact +4. A final call with the proposed destination team and candidate may occur + at the end of the interview process. It is an open ended conversation + and a chance for the candidate and proposed destination team to get to + know each other to see if there is mutual interest and skillset fit + +We typically use Google Meet for our video interviews — if you are +not comfortable or familiar with using Google Meet let your recruiter +know and they will be happy to set up a test chat with you prior to +your interviews! If you have specific scheduling accommodation needs +(such as closed captioning requirements, time of day availability, etc.) +please let us know. + +In case there are technical issues with a video call, you will also be +provided with a dial-in number you can call by phone. +We realize video chats aren’t an option for everyone, so we are also happy +to work with a candidate’s individual needs to ensure they have a good +interviewing experience and can use their preferred method of communication. + +Interviews can take up to several weeks as we try to work with everyone’s +schedule. We encourage our hiring teams to make selections as quickly as +possible, but it can sometimes take a week or two before we are able to +share the team’s decision after your final interview. -Interviews can take up to several weeks as we try to work with everyone’s schedule. We encourage our hiring teams to make selections as quickly as possible, but it can sometimes take a week or two before we are able to share the team’s decision after your final interview. -We want you to be able to present your best self! To help, we will provide Interview questions ahead of the interviews via email. +We want you to be able to present your best self! To help, we will provide +Interview questions ahead of the interviews via email. -Please note, we will request references if you are selected to move forward in the process. +Please note, we will request references if you are selected to move forward +in the process. ## Time to hire -It’s important to note that once we have made a hiring decision, it can often take 2 - 2.5 months to move through the onboarding process and confirm your final start date. This part of the process includes some background checks for security clearance needs, sorting out IT gear,badging, direct deposit, and negotiating your start date. We have a member of the Talent Team fully dedicated to ensuring that this part of the process moves as smoothly as possible. -Please let your recruiter know if this estimate conflicts with your required timeline for securing a new role. + +It’s important to note that once we have made a hiring decision, it can often +take 2 - 2.5 months to move through the onboarding process and confirm your +final start date. This part of the process includes some background checks +for security clearance needs, sorting out IT gear,badging, direct deposit, +and negotiating your start date. We have a member of the Talent Team fully +dedicated to ensuring that this part of the process moves as smoothly as +possible. + +Please let your recruiter know if this estimate conflicts with your +required timeline for securing a new role. ## Length of role -Government hiring is different from industry hiring. This role is a DHA (Direct Hire Authority) term appointment in the 2210 technical job series, with an initial term of 3 years which can be extended up to 8 years in duration based on solid performance in the role and organizational need. + +Government hiring is different from industry hiring. This role is a +DHA (Direct Hire Authority) term appointment in the 2210 technical job series, +with an initial term of 3 years which can be extended up to 8 years in +duration based on solid performance in the role and organizational need. ## Grade levels and calculating pay -This position is subject to the GS pay scale so if you haven't already, please be sure to check out the pay for your locality using [OPM’s pay calculator](https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2022/general-schedule-gs-salary-calculator/). GSA’s max salary has increased to $176,300. You cannot be offered more than this under any circumstance. -Understanding the relationship between GS grade level, location, and compensation is important to understanding how salaries work at TTS. -Each GS grade level contains a series of 10 steps. New employees are usually hired at Step 1 of a GS grade. However, in special circumstances, agencies may authorize a higher step rate for a newly-appointed federal employee based on a [special need of the agency or superior qualifications of the prospective employee](https://www.opm.gov/policy-data-oversight/pay-leave/pay-administration/fact-sheets/superior-qualifications-and-special-needs-pay-setting-authority/). -This job posting includes roles at the GS13, GS14, and GS15 level. Your approved GS level will depend on qualification from an HR specialist if you are selected at the end of the interview process. -If you have questions or concerns about the salary for this role, please let your recruiter know so you can have a more in-depth conversation. + +This position is subject to the GS pay scale so if you haven't already, +please be sure to check out the pay for your locality using +[OPM’s pay calculator](https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2022/general-schedule-gs-salary-calculator/). +GSA’s max salary has increased to $176,300. You cannot be offered more than +this under any circumstance. + +Understanding the relationship between GS grade level, location, and +compensation is important to understanding how salaries work at TTS. + +Each GS grade level contains a series of 10 steps. New employees are +usually hired at Step 1 of a GS grade. However, in special circumstances, +agencies may authorize a higher step rate for a newly-appointed federal +employee based on a +[special need of the agency or superior qualifications of the prospective employee](https://www.opm.gov/policy-data-oversight/pay-leave/pay-administration/fact-sheets/superior-qualifications-and-special-needs-pay-setting-authority/). + +This job posting includes roles at the GS13, GS14, and GS15 level. +Your approved GS level will depend on qualification from an HR specialist +if you are selected at the end of the interview process. + +If you have questions or concerns about the salary for this role, please +let your recruiter know so you can have a more in-depth conversation. ## Benefits -In addition to joining a passionate, nationwide team, there are many other benefits and perks associated with joining TTS. -The benefits package for federal employees includes medical, vision, and dental insurance, FSA accounts, life insurance, paid leave, and the Thrift Savings Plan (the government version of a 401K) with up to five percent matching. Our telework policy affords increased flexibility, and employees who use public transit to commute may access commuter benefits. -TTS also supports employees’ ongoing professional development by providing training opportunities and encouraging employees to participate in conferences, training, and other industry events. + +In addition to joining a passionate, nationwide team, there are many other +benefits and perks associated with joining TTS. + +The benefits package for federal employees includes medical, vision, +and dental insurance, FSA accounts, life insurance, paid leave, and the +Thrift Savings Plan (the government version of a 401K) with up to five +percent matching. Our telework policy affords increased flexibility, and +employees who use public transit to commute may access commuter benefits. + +TTS also supports employees’ ongoing professional development by providing +training opportunities and encouraging employees to participate in +conferences, training, and other industry events. + The [TTS Handbook](https://handbook.18f.gov/) includes: - [Benefits](https://handbook.18f.gov/benefits/) - [Leave](https://handbook.18f.gov/benefits/#leave) - [Telework and virtual worker policy](https://handbook.18f.gov/telework/) - [Professional development and training processes](https://handbook.18f.gov/attending-conferences/) -Note: If you are coming over from another agency where you received award leave, unfortunately it will not carry over to GSA. Sick leave and annual leave do transfer, however. +Note: If you are coming over from another agency where you received award +leave, unfortunately it will not carry over to GSA. Sick leave and annual +leave do transfer, however. ## More about working at TTS -The Technology Transformation Service (TTS) exists under the domain of the General Services Administration (GSA). TTS is home to the following offices: 18F, Centers of Excellence, Office of Acquisition, Office of Solutions, and Presidential Innovation Fellows. You can read more info about each office on our [Join page](https://join.tts.gsa.gov/tts-offices/). + +The Technology Transformation Service (TTS) exists under the domain of the +General Services Administration (GSA). TTS is home to the following offices: +18F, Centers of Excellence, Office of Acquisition, Office of Solutions, and +Presidential Innovation Fellows. You can read more info about each office on +our [Join page](https://join.tts.gsa.gov/tts-offices/). + You can also read more about each of these groups at their TTS Handbook Pages: - [Acquisition](https://handbook.18f.gov/acqstack/) | [cloud.gov](https://cloud.gov/) | [Design](https://handbook.18f.gov/design/) | [Engineering](https://handbook.18f.gov/engineering/) | [login.gov](https://login.gov/) | [Product](https://handbook.18f.gov/product/) | [Strategy ](https://handbook.18f.gov/strategy/) + [Acquisition](https://handbook.18f.gov/acqstack/) | + [cloud.gov](https://cloud.gov/) | + [Design](https://handbook.18f.gov/design/) | + [Engineering](https://handbook.18f.gov/engineering/) | + [login.gov](https://login.gov/) | + [Product](https://handbook.18f.gov/product/) | + [Strategy](https://handbook.18f.gov/strategy/) Thank you for taking the time to talk to our team and for your interest in public service! From bdf15967b1f3dc604920120712411347d9088b62 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Thu, 1 Aug 2024 09:39:14 -0400 Subject: [PATCH 04/12] More YAML tidying --- _data/site.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/_data/site.yaml b/_data/site.yaml index 804be900..7d1087e1 100644 --- a/_data/site.yaml +++ b/_data/site.yaml @@ -2,7 +2,15 @@ title: Technology Transformation Services email: tts-info@gsa.gov description: >- # this means to ignore newlines - Every interaction with the public is an opportunity to improve trust in the government. For over 50 years, GSA has been working to improve access to government services. Today, GSA’s Technology Transformation Services (TTS) exists to design and deliver a digital government with and for the American people. We apply modern methodologies and technologies to improve the lives of the public and public servants. We help agencies make their services more accessible, efficient, and effective with modern applications, platforms, processes, personnel, and software solutions. + Every interaction with the public is an opportunity to improve trust in + the government. For over 50 years, GSA has been working to improve access + to government services. Today, GSA’s Technology Transformation Services + (TTS) exists to design and deliver a digital government with and for the + American people. We apply modern methodologies and technologies to + improve the lives of the public and public servants. We help agencies + make their services more accessible, efficient, and effective with + modern applications, platforms, processes, personnel, and software + solutions. # Twitter handle. Only the handle, not the URL. twitter: GSA_TTS From 68026b3673f32a7ba6badce743f48ea6f3632594 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Thu, 1 Aug 2024 09:46:21 -0400 Subject: [PATCH 05/12] Prettier tidying --- .github/workflows/megalinter.yml | 1 - .github/workflows/pa11y.yml | 4 +- .github/workflows/scorecard.yml | 2 +- .github/workflows/test.yml | 3 +- .grype.yaml | 9 +-- .mega-linter.yml | 9 +-- _data/services.yaml | 42 +++++++---- admin/config.yml | 126 ++++++++++++++++++------------- 8 files changed, 110 insertions(+), 86 deletions(-) diff --git a/.github/workflows/megalinter.yml b/.github/workflows/megalinter.yml index 879b8f93..a9214729 100644 --- a/.github/workflows/megalinter.yml +++ b/.github/workflows/megalinter.yml @@ -9,7 +9,6 @@ on: - main workflow_dispatch: - permissions: contents: write issues: write diff --git a/.github/workflows/pa11y.yml b/.github/workflows/pa11y.yml index 8dd55cff..807055e0 100644 --- a/.github/workflows/pa11y.yml +++ b/.github/workflows/pa11y.yml @@ -1,7 +1,6 @@ --- name: Pa11y Testing - # yamllint disable-line rule:truthy on: pull_request: @@ -22,7 +21,6 @@ jobs: pull-requests: write steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Install Chrome @@ -37,7 +35,7 @@ jobs: - name: Use Node uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # pin@v3 with: - node-version: '18' + node-version: "18" - name: Install Pa11y run: npm install pa11y diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b1c7577d..de58f5f7 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -13,7 +13,7 @@ on: # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained schedule: - - cron: '43 7 * * 3' + - cron: "43 7 * * 3" push: branches: - "main" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8f4aab6b..a9a083eb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,13 +17,12 @@ jobs: - name: Use Node uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # pin@v3 with: - node-version: '17.x' + node-version: "17.x" - name: Install NPM dependencies run: npm install - name: Build site run: npm run build - # - name: Run tests # run: npm run test diff --git a/.grype.yaml b/.grype.yaml index 3c442f39..4bcd6c5b 100644 --- a/.grype.yaml +++ b/.grype.yaml @@ -2,13 +2,12 @@ fail-on-severity: "high" exclude: - - './node_modules/**' - - './.git/**' - - './.github/**' - - './_site/**' + - "./node_modules/**" + - "./.git/**" + - "./.github/**" + - "./_site/**" ignore: - # Ignored by default; disputed and unwarranted CVE that causes Megalinter to fail # @link https://nvd.nist.gov/vuln/detail/CVE-2018-20225 - vulnerability: CVE-2018-20225 diff --git a/.mega-linter.yml b/.mega-linter.yml index b442c93d..f597109a 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -1,12 +1,7 @@ --- # don't test the reports Mega-Linter created, docs, or test files -ADDITIONAL_EXCLUDED_DIRECTORIES: [ - report, - megalinter-reports, - docs, - node_modules, - _site, -] +ADDITIONAL_EXCLUDED_DIRECTORIES: + [report, megalinter-reports, docs, node_modules, _site] # don't lint test files or documentation FILTER_REGEX_EXCLUDE: (.venv/|/test/|\.test\.|_test\.|/docs/|/index.html|.github/.*\.html) diff --git a/_data/services.yaml b/_data/services.yaml index 721b6d4f..7fb3afe1 100644 --- a/_data/services.yaml +++ b/_data/services.yaml @@ -34,7 +34,8 @@ services: logo: _img/People_PIF.png logo_alt_text: PIF category: people - description: A program that pairs top technologists with civil-servants to spend + description: + A program that pairs top technologists with civil-servants to spend 12 months tackling some of our nation’s biggest challenges. - name: DAP link: https://digital.gov/guides/dap/ @@ -42,7 +43,8 @@ services: logo: _img/Product_DAP.png logo_alt_text: logo not yet available category: products - description: Offering advanced, easy web analytics tools, training, and support + description: + Offering advanced, easy web analytics tools, training, and support to help the government make data-driven decisions to improve the digital public experience. - name: SAM.gov @@ -68,7 +70,8 @@ services: logo: _img/digitalgov-logo.svg logo_alt_text: digital.gov category: products - description: Creating community connections and providing guidance on building + description: + Creating community connections and providing guidance on building digital services to transform how the government interacts with the public. - name: Vote.gov @@ -84,7 +87,8 @@ services: logo: _img/coe-logo.svg logo_alt_text: Centers of Excellence category: people - description: A centralized team of technical experts that accelerate agency-wide + description: + A centralized team of technical experts that accelerate agency-wide IT modernization. - name: Search.gov link: https://search.gov @@ -92,7 +96,8 @@ services: logo: _img/search-gov.png logo_alt_text: Search.gov category: products - description: Creating a standard search experience across government websites, + description: + Creating a standard search experience across government websites, providing the public with quick, easy access to the government information and services they need. - name: Login.gov @@ -101,7 +106,8 @@ services: logo: _img/logo.svg logo_alt_text: Login.gov category: products - description: Providing the public one account to access participating government + description: + Providing the public one account to access participating government services online. - name: 18F link: https://18f.gsa.gov @@ -132,7 +138,8 @@ services: logo: _img/touchpoints-logotype.png logo_alt_text: Touchpoints category: products - description: Offers a simple, flexible, and convenient way to start collecting + description: + Offers a simple, flexible, and convenient way to start collecting customer feedback so you can focus on serving customers rather than managing surveys. - name: FedRAMP @@ -151,7 +158,8 @@ services: logo: _img/data-gov.png logo_alt_text: APIData.gov category: products - description: Saving money and speeding development of federal APIs by offering a + description: + Saving money and speeding development of federal APIs by offering a hosted shared service for API management. Enables greater developer adoption and cross-agency metrics through the use of government-wide API keys. @@ -161,7 +169,8 @@ services: logo: _img/data-gov.png logo_alt_text: Data.gov category: platforms - description: Offering the public open access to datasets from across the federal + description: + Offering the public open access to datasets from across the federal government. - name: Challenge.gov link: https://challenge.gov @@ -169,7 +178,8 @@ services: logo: _img/challenge-logo.svg logo_alt_text: Challenge.gov category: platforms - description: Catalyzing public engagement and participation in innovation and + description: + Catalyzing public engagement and participation in innovation and problem solving through crowdsourcing and prize competitions. - name: Cloud.gov link: https://cloud.gov/ @@ -185,7 +195,8 @@ services: logo: _img/code-gov-dark.svg logo_alt_text: Code.gov category: products - description: Helping agencies meet the requirements of the Federal Source Code + description: + Helping agencies meet the requirements of the Federal Source Code Policy and providing a platform to make federal code publicly available. - name: Digital Corps link: https://digitalcorps.gsa.gov/ @@ -202,7 +213,8 @@ services: logo: _img/FAC1.png logo_alt_text: FAC category: platforms - description: Supporting the collection, distribution, and oversight of audits as + description: + Supporting the collection, distribution, and oversight of audits as guided by the Single Audit Act. - name: US Web Design System (USWDS) link: https://designsystem.digital.gov/ @@ -219,7 +231,8 @@ services: logo: _img/Logo_Regulations.gov.png category: platforms logo_alt_text: eRulemaking logo - description: Increasing access to and participation in developing regulations + description: + Increasing access to and participation in developing regulations and other related documents that impact you and promoting more efficient and effective rulemaking through public involvement. - name: eSRS @@ -235,7 +248,8 @@ services: link_alt_text: link to CPARS homepage logo: _img/cpars.png logo_alt_text: CPARS - description: The official U.S. government website for people who make, receive, + description: + The official U.S. government website for people who make, receive, and manage federal awards. It contains data on federal contractors, including both past performance information and integrity records. category: platforms diff --git a/admin/config.yml b/admin/config.yml index 68a9cf45..190306b3 100644 --- a/admin/config.yml +++ b/admin/config.yml @@ -32,17 +32,23 @@ collections: create: true slug: "{{slug}}" fields: - - {label: 'Layout', name: 'layout', widget: 'hidden', default: 'layouts/page'} - { - label: 'Page link', - name: 'permalink', - hint: "The URL this page will be accessible at.", - pattern: ['^.*\/$', "Must end with a slash"], - widget: 'string', - default: '{{slug}}'} + label: "Layout", + name: "layout", + widget: "hidden", + default: "layouts/page", + } + - { + label: "Page link", + name: "permalink", + hint: "The URL this page will be accessible at.", + pattern: ['^.*\/$', "Must end with a slash"], + widget: "string", + default: "{{slug}}", + } - - {label: "Title", name: "title", widget: "string"} - - {label: "Body", name: "body", widget: "markdown"} + - { label: "Title", name: "title", widget: "string" } + - { label: "Body", name: "body", widget: "markdown" } - label: Site Alert name: hero-alert create: false @@ -52,24 +58,30 @@ collections: name: "hero-alert" file: "_data/heroAlert.json" fields: - - {label: 'Message', name: 'message', widget: 'string'} + - { label: "Message", name: "message", widget: "string" } - label: Join TTS Info Pages name: jointtspages folder: pages/jointts/ create: true slug: "{{slug}}" fields: - - {label: 'Layout', name: 'layout', widget: 'hidden', default: 'layouts/page'} - { - label: 'Page link', - name: 'permalink', - hint: "The URL this page will be accessible at.", - pattern: ['^.*\/$', "Must end with a slash"], - widget: 'string', - default: '{{slug}}'} + label: "Layout", + name: "layout", + widget: "hidden", + default: "layouts/page", + } + - { + label: "Page link", + name: "permalink", + hint: "The URL this page will be accessible at.", + pattern: ['^.*\/$', "Must end with a slash"], + widget: "string", + default: "{{slug}}", + } - - {label: "Title", name: "title", widget: "string"} - - {label: "Body", name: "body", widget: "markdown"} + - { label: "Title", name: "title", widget: "string" } + - { label: "Body", name: "body", widget: "markdown" } - label: "Services Page" name: Services create: true @@ -85,13 +97,13 @@ collections: label_singular: "service" order: "{{fields.name}}" fields: - - {label: Name, name: name, widget: string} - - {label: Link, name: link, widget: string} - - {label: Link Alt Text, name: link_alt_text, widget: string} - - {label: Logo, name: logo, widget: image} - - {label: Logo Alt Text, name: logo_alt_text, widget: string} - - {label: Category, name: category, widget: string} - - {label: Description, name: description, widget: text} + - { label: Name, name: name, widget: string } + - { label: Link, name: link, widget: string } + - { label: Link Alt Text, name: link_alt_text, widget: string } + - { label: Logo, name: logo, widget: image } + - { label: Logo Alt Text, name: logo_alt_text, widget: string } + - { label: Category, name: category, widget: string } + - { label: Description, name: description, widget: text } - label: "Jobs Page" name: Jobs create: true @@ -100,30 +112,38 @@ collections: extension: "md" format: "yaml-frontmatter" fields: - - {label: Title, name: title, widget: string} - - {label: Page Link, name: permalink, widget: string} - - {label: Tags, name: tags, widget: string} - - {label: Job State, name: state, widget: string} - - {label: Job Post Type, name: job_post_type, widget: string} - - {label: Role Name, name: role_name, widget: string} - - {label: Open Date, name: opens, widget: string} - - {label: Close Date, name: closes, widget: string} - - {label: Weeks Open, name: weeks_open, widget: number} - - {label: Location, name: location, widget: string} - - {label: GS Level, name: gs_level, widget: string} - - {label: Mininum Salary, name: salary_min, widget: string} - - {label: Maximum Salary, name: salary_max, widget: string} - - {label: Organization, name: org, widget: string} - - {label: Contact Name, name: contact_name, widget: string} - - {label: Contact EMail, name: contact_email, widget: string} - - {label: Job Announcement Number, name: job_announcement_number, widget: string} - - {label: PD Job Title, name: pd_job_title, widget: string} - - {label: Number of Vacancies, name: num_vacancies, widget: number} - - {label: series, name: series, widget: string} - - {label: Application URL, name: apply_url, widget: string} - - {label: OHRM Contact Email, name: ohrm_contact_email, widget: string} - - {label: OHRM Contact Name, name: ohrm_contact_name, widget: string} - - {label: Bargaining Unit, name: bargaining_unit, widget: string} - - {label: Promotion Potential, name: promotion_potential, widget: number} - - {label: Supervisory Status, name: supervisory_status, widget: string} - - {label: "Body", name: "body", widget: "markdown"} + - { label: Title, name: title, widget: string } + - { label: Page Link, name: permalink, widget: string } + - { label: Tags, name: tags, widget: string } + - { label: Job State, name: state, widget: string } + - { label: Job Post Type, name: job_post_type, widget: string } + - { label: Role Name, name: role_name, widget: string } + - { label: Open Date, name: opens, widget: string } + - { label: Close Date, name: closes, widget: string } + - { label: Weeks Open, name: weeks_open, widget: number } + - { label: Location, name: location, widget: string } + - { label: GS Level, name: gs_level, widget: string } + - { label: Mininum Salary, name: salary_min, widget: string } + - { label: Maximum Salary, name: salary_max, widget: string } + - { label: Organization, name: org, widget: string } + - { label: Contact Name, name: contact_name, widget: string } + - { label: Contact EMail, name: contact_email, widget: string } + - { + label: Job Announcement Number, + name: job_announcement_number, + widget: string, + } + - { label: PD Job Title, name: pd_job_title, widget: string } + - { label: Number of Vacancies, name: num_vacancies, widget: number } + - { label: series, name: series, widget: string } + - { label: Application URL, name: apply_url, widget: string } + - { label: OHRM Contact Email, name: ohrm_contact_email, widget: string } + - { label: OHRM Contact Name, name: ohrm_contact_name, widget: string } + - { label: Bargaining Unit, name: bargaining_unit, widget: string } + - { + label: Promotion Potential, + name: promotion_potential, + widget: number, + } + - { label: Supervisory Status, name: supervisory_status, widget: string } + - { label: "Body", name: "body", widget: "markdown" } From 7f222f6fcaa2beadea5fd42cf3b6eea27a1ce1b9 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Thu, 1 Aug 2024 09:48:03 -0400 Subject: [PATCH 06/12] Prettier JavaScript and JSON --- .eleventy.js | 107 ++++++++++++++++++++++-------------------- _data/assetPaths.json | 2 +- config/buildAssets.js | 50 ++++++++++---------- js/admin.js | 2 +- js/app.js | 5 +- postcss.config.js | 2 +- 6 files changed, 86 insertions(+), 82 deletions(-) diff --git a/.eleventy.js b/.eleventy.js index 179b240f..b156d34a 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,28 +1,33 @@ -const { DateTime } = require('luxon'); -const esbuild = require('esbuild'); -const fs = require('fs'); -const path = require('path'); -const pluginRss = require('@11ty/eleventy-plugin-rss'); -const pluginNavigation = require('@11ty/eleventy-navigation'); -const markdownIt = require('markdown-it'); -const markdownItAnchor = require('markdown-it-anchor'); +const { DateTime } = require("luxon"); +const esbuild = require("esbuild"); +const fs = require("fs"); +const path = require("path"); +const pluginRss = require("@11ty/eleventy-plugin-rss"); +const pluginNavigation = require("@11ty/eleventy-navigation"); +const markdownIt = require("markdown-it"); +const markdownItAnchor = require("markdown-it-anchor"); const yaml = require("js-yaml"); -const { sassPlugin } = require('esbuild-sass-plugin'); +const { sassPlugin } = require("esbuild-sass-plugin"); const svgSprite = require("eleventy-plugin-svg-sprite"); -const { imageShortcode, imageWithClassShortcode } = require('./config'); +const { imageShortcode, imageWithClassShortcode } = require("./config"); module.exports = function (config) { // Set pathPrefix for site - let pathPrefix = '/'; + let pathPrefix = "/"; // Copy the `admin` folders to the output - config.addPassthroughCopy('admin'); + config.addPassthroughCopy("admin"); // for #80 (update site favicon) // copy files from `_img/favicon/` to `_site/` - config.addPassthroughCopy({ "_img/favicon/favicon.ico": "/assets/favicon.ico" }); + config.addPassthroughCopy({ + "_img/favicon/favicon.ico": "/assets/favicon.ico", + }); // Copy USWDS init JS so we can load it in HEAD to prevent banner flashing - config.addPassthroughCopy({'./node_modules/@uswds/uswds/dist/js/uswds-init.js': 'assets/js/uswds-init.js'}); + config.addPassthroughCopy({ + "./node_modules/@uswds/uswds/dist/js/uswds-init.js": + "assets/js/uswds-init.js", + }); // Add plugins config.addPlugin(pluginRss); @@ -31,23 +36,23 @@ module.exports = function (config) { //// SVG Sprite Plugin for USWDS USWDS icons config.addPlugin(svgSprite, { path: "./node_modules/@uswds/uswds/dist/img/uswds-icons", - svgSpriteShortcode: 'uswds_icons_sprite', - svgShortcode: 'uswds_icons' + svgSpriteShortcode: "uswds_icons_sprite", + svgShortcode: "uswds_icons", }); //// SVG Sprite Plugin for USWDS USA icons config.addPlugin(svgSprite, { path: "./node_modules/@uswds/uswds/dist/img/usa-icons", - svgSpriteShortcode: 'usa_icons_sprite', - svgShortcode: 'usa_icons' + svgSpriteShortcode: "usa_icons_sprite", + svgShortcode: "usa_icons", }); // Allow yaml to be used in the _data dir - config.addDataExtension("yaml", contents => yaml.load(contents)); + config.addDataExtension("yaml", (contents) => yaml.load(contents)); // This is an example of creating an Eleventy collection from // a data file, in this case it's _data/services.yml - config.addCollection('services', (collection) => { + config.addCollection("services", (collection) => { const allServices = collection.getAll()[0].data.services; return allServices; }); @@ -57,7 +62,7 @@ module.exports = function (config) { function sortByProp(values, prop) { let vals = [...values]; return vals.sort((a, b) => { - if (typeof a[prop] == 'string' && typeof b[prop] == 'string') { + if (typeof a[prop] == "string" && typeof b[prop] == "string") { return a[prop].localeCompare(b[prop]); } else { return Math.sign(a[prop] - b[prop]); @@ -65,21 +70,21 @@ module.exports = function (config) { }); } - config.addFilter('sortByProp', sortByProp); + config.addFilter("sortByProp", sortByProp); - config.addFilter('readableDate', (dateObj) => { - return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat( - 'dd LLL yyyy' + config.addFilter("readableDate", (dateObj) => { + return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat( + "dd LLL yyyy", ); }); // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string - config.addFilter('htmlDateString', (dateObj) => { - return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat('yyyy-LL-dd'); + config.addFilter("htmlDateString", (dateObj) => { + return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat("yyyy-LL-dd"); }); // Get the first `n` elements of a collection. - config.addFilter('head', (array, n) => { + config.addFilter("head", (array, n) => { if (!Array.isArray(array) || array.length === 0) { return []; } @@ -91,20 +96,20 @@ module.exports = function (config) { }); // Return the smallest number argument - config.addFilter('min', (...numbers) => { + config.addFilter("min", (...numbers) => { return Math.min.apply(null, numbers); }); function filterTagList(tags) { return (tags || []).filter( - (tag) => ['all', 'nav', 'post', 'posts'].indexOf(tag) === -1 + (tag) => ["all", "nav", "post", "posts"].indexOf(tag) === -1, ); } - config.addFilter('filterTagList', filterTagList); + config.addFilter("filterTagList", filterTagList); // Create an array of all tags - config.addCollection('tagList', function (collection) { + config.addCollection("tagList", function (collection) { let tagSet = new Set(); collection.getAll().forEach((item) => { (item.data.tags || []).forEach((tag) => tagSet.add(tag)); @@ -120,26 +125,26 @@ module.exports = function (config) { linkify: true, }).use(markdownItAnchor, { permalink: markdownItAnchor.permalink.ariaHidden({ - placement: 'after', - class: 'direct-link', - symbol: '', + placement: "after", + class: "direct-link", + symbol: "", level: [1, 2, 3, 4], }), - slugify: config.getFilter('slug'), + slugify: config.getFilter("slug"), }); - config.setLibrary('md', markdownLibrary); + config.setLibrary("md", markdownLibrary); // Override Browsersync defaults (used only with --serve) config.setBrowserSyncConfig({ callbacks: { ready: function (err, browserSync) { - const content_404 = fs.readFileSync('_site/404/index.html'); + const content_404 = fs.readFileSync("_site/404/index.html"); - browserSync.addMiddleware('*', (req, res) => { + browserSync.addMiddleware("*", (req, res) => { // Provides the 404 content without redirect. - res.writeHead(404, { 'Content-Type': 'text/html; charset=UTF-8' }); + res.writeHead(404, { "Content-Type": "text/html; charset=UTF-8" }); res.write(content_404); -const svgSprite = require("eleventy-plugin-svg-sprite"); + const svgSprite = require("eleventy-plugin-svg-sprite"); res.end(); }); }, @@ -149,8 +154,8 @@ const svgSprite = require("eleventy-plugin-svg-sprite"); }); // Set image shortcodes - config.addLiquidShortcode('image', imageShortcode); - config.addLiquidShortcode('image_with_class', imageWithClassShortcode); + config.addLiquidShortcode("image", imageShortcode); + config.addLiquidShortcode("image_with_class", imageWithClassShortcode); config.addLiquidShortcode("uswds_icon", function (name) { return ` ${alt}`; -}; - +} async function imageShortcode(src, alt) { - return await imageWithClassShortcode(src, '', alt) -}; + return await imageWithClassShortcode(src, "", alt); +} module.exports = { imageWithClassShortcode, - imageShortcode -} + imageShortcode, +}; From 98a6303261373c5baf4459bbfc178fa3d50d4598 Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Mon, 5 Aug 2024 12:19:15 -0400 Subject: [PATCH 09/12] Add auto-applied fixes --- .mega-linter.yml | 2 ++ SECURITY.md | 2 +- pages/jointts/hiring-process.md | 2 +- styles/tts-custom-styles.scss | 11 +++++++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.mega-linter.yml b/.mega-linter.yml index f597109a..f6796f41 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -50,3 +50,5 @@ REPOSITORY_DEVSKIM_ARGUMENTS: "--skip-git-ignored-files" BASH_SHFMT_ARGUMENTS: -i 2 -bn -ci -sr -kp REPOSITORY_TRUFFLEHOG_ARGUMENTS: "--exclude-paths=.trufflehogignore" + +YAML_V8R_FILTER_REGEX_EXCLUDE: ".*_data.*" diff --git a/SECURITY.md b/SECURITY.md index 8e99a1e7..1062d5b0 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -19,7 +19,7 @@ Please consult our policy for: Please note that only certain branches are supported with security updates. | Version (Branch) | Supported | -| ---------------- | ------------------ | +|------------------|--------------------| | main | :white_check_mark: | | other | :x: | diff --git a/pages/jointts/hiring-process.md b/pages/jointts/hiring-process.md index f145daa6..738f1b37 100644 --- a/pages/jointts/hiring-process.md +++ b/pages/jointts/hiring-process.md @@ -33,7 +33,7 @@ averages, and length of process stages can vary based on a number of factors such as the number of applications received. | Process Stage | Average Duration/Days | -| :--------------------------------------------- | :-------------------: | +|:-----------------------------------------------|:---------------------:| | [Application](#application) collection | 12 to 14 | | TTS application review | 10 | | [Interviews](#interviews) | 30 | diff --git a/styles/tts-custom-styles.scss b/styles/tts-custom-styles.scss index aa216e9f..e1824f17 100644 --- a/styles/tts-custom-styles.scss +++ b/styles/tts-custom-styles.scss @@ -4,7 +4,7 @@ // Alternatively, you could create an overrides folder and create individual override files // custom tts color -$tts-tagline-bg: #1F303E; +$tts-tagline-bg: #1F303E;AddanyUSWDSoverrideshereAlternatively,youcouldcreateanoverridesfolderandcreateindividualoverridefilescustomttscolor$tts-tagline-bg // USWDS Hero component .usa-hero--tts { @@ -14,6 +14,7 @@ $tts-tagline-bg: #1F303E; background-position-x: right; background-size: cover; padding: 0; + @include at-media('mobile-lg') { // This shifts the hero over to the right so that most of the background image isn't covered by the tagline. The left side of the hero image will not line up perfectly with the right side of the tagline, since the widths of both elements will vary depending on screen width. A bit of overlap on this edge will prevent empty space between the two. position: absolute; @@ -40,7 +41,7 @@ $tts-tagline-bg: #1F303E; .tts-tagline { @include at-media('mobile-lg') { // Setting a min height so that the hero height doesn't need to rely on tagline length - min-height: 350px; + min-height: 350px;Thisshiftstheheroovertotherightsothatmostofthebackgroundimageisn../_img/TTS_Header_Dev.pngmobile-lgtneedtorelyontaglinelengthmin-height } } @@ -71,6 +72,7 @@ footer { text-decoration: none; } + a:hover { text-decoration: underline; } @@ -82,6 +84,7 @@ footer { .tts-service-logo { height: 50px; + img { object-fit: contain; max-width: 180px; @@ -89,14 +92,14 @@ footer { } .tts-title-banner { - background: url(../_img/Services_Background.png) center no-repeat #000000; + background: url("../_img/Services_Background.png") center no-repeat #000; } .tts-title-banner h1 { text-transform: uppercase; font-size: 3.25rem; - color: #ffffff; + color: #fff; padding: 4.75rem 0; margin: 0; text-align: center; From 1e9eb72e6ca64b22bb2fc9cb018a22b3865f294c Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Mon, 5 Aug 2024 13:42:48 -0400 Subject: [PATCH 10/12] More tidying, mostly spellcheck stuff --- .cspell.json | 56 +++++++++++++++++++ .mega-linter.yml | 8 ++- .trufflehogignore | 1 + docs/CM.md | 4 +- docs/IR.md | 4 +- .../0002-use-a-static-site-architecture.md | 6 +- 6 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 .cspell.json diff --git a/.cspell.json b/.cspell.json new file mode 100644 index 00000000..75f2454f --- /dev/null +++ b/.cspell.json @@ -0,0 +1,56 @@ +{ + "version": "0.2", + "language": "en_US", + "ignorePaths": [ + "node_modules/**", + "styles.**" + ], + "words": [ + "Allstar", + "sidenav", + "telework", + "USAJOBS", + "captioner", + "neurodiversity", + "socio", + "jointts", + "FASC", + "LUOTR", + "SYSANALYSIS", + "ohrm", + "endunless", + "skillset", + "skillsets", + "skinless", + "wireframe", + "wireframes", + "toolkit", + "toolkits", + "OPM", + "refactorization", + "USWDS", + "uswds", + "subnav", + "endfor", + "USDA", + "usda", + "exfiltrate", + "browsersync", + "outdir", + "Snyk", + "sitrep", + "ISSO", + "SDLC", + "automations", + "ISSM", + "timeframe", + "pdate", + "sitreps", + "Joomla", + "dependency", + "Grype", + "dependencies", + "hotfixes", + "Nygard" + ] +} diff --git a/.mega-linter.yml b/.mega-linter.yml index f6796f41..1947ee95 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -14,8 +14,8 @@ DISABLE_LINTERS: [ REPOSITORY_DEVSKIM, SPELL_MISSPELL, - SPELL_CSPELL, SPELL_PROSELINT, + SPELL_LYCHEE, COPYPASTE_JSCPD, BASH_EXEC, ] @@ -52,3 +52,9 @@ BASH_SHFMT_ARGUMENTS: -i 2 -bn -ci -sr -kp REPOSITORY_TRUFFLEHOG_ARGUMENTS: "--exclude-paths=.trufflehogignore" YAML_V8R_FILTER_REGEX_EXCLUDE: ".*_data.*" + +SPELL_CSPELL_ANALYZE_FILE_NAMES: false +SPELL_CSPELL_FILE_EXTENSIONS: + - ".md" + +CLEAR_REPORT_FOLDER: true diff --git a/.trufflehogignore b/.trufflehogignore index 6b8710a7..354eebdb 100644 --- a/.trufflehogignore +++ b/.trufflehogignore @@ -1 +1,2 @@ .git +node_modules/ diff --git a/docs/CM.md b/docs/CM.md index f44b9860..f6ff4f20 100644 --- a/docs/CM.md +++ b/docs/CM.md @@ -19,7 +19,7 @@ site: - NetlifyCMS testing-suites: - Codeql - - Synk + - Snyk - Dependabot --- @@ -81,4 +81,4 @@ Steps taken from a Pull Request for any change to application within our Product - That PR is then run in continuous integration (CI) server to ensure they are valid and pass all applied testing and ansible playbook verification/test runs. If checks pass and a developer peer reviews and approves the Pull Request it can be merged into the "main" branch. - All changes are deployed from the develop branch to staging environment, and automated or manual tests and/or verifications are run to ensure intended changes are applied correctly. - Proposed changes are then discussed, any uptime concerns or timing preferences on deployment to production are communicated. - - If there is agreement to proceed between 2 or more members then changes are applied to production, followed by active monitoring and logging to ensure there are no issues after deployment. If there are, changes can be reverted to the previous state. \ No newline at end of file + - If there is agreement to proceed between 2 or more members then changes are applied to production, followed by active monitoring and logging to ensure there are no issues after deployment. If there are, changes can be reverted to the previous state. diff --git a/docs/IR.md b/docs/IR.md index 866d227b..e666a178 100644 --- a/docs/IR.md +++ b/docs/IR.md @@ -27,11 +27,11 @@ site: Whoever acts on an alert/email/etc would follow this process. You are now the Incident Commander (IC). 1. `Acknowledge` the alert if available e.g. New Relic, Email, Github, etc. -1. Open an Issue/Ticket/Card/etc in the team's project manangement tool with incident information. Copy the link to it and use it to document the `Incident` in real-time. +1. Open an Issue/Ticket/Card/etc in the team's project management tool with incident information. Copy the link to it and use it to document the `Incident` in real-time. - This team uses: `{{ site.project-management-tool }}` 3. Notify the team - use the team's Google Group email or Slack `@channel` with a link to the `Incident` in the project management tool. - Acknowledge your role as the `Incident Commander` e.g. "Looking into this". Use a Slack thread to communicate updates within the team. -1. Request assistance from specfic teammates to pair with if needed. Others teammates should acknowledge, verify, and offer support in the Slack thread. +1. Request assistance from specific teammates to pair with if needed. Others teammates should acknowledge, verify, and offer support in the Slack thread. 6. If the site is down, email the team ([ {{ site.google-group-email }}](mailto:{{ site.google-group-email }})). 7. If this is a **Security Incident** , follow the [TTS Incident Response guide](https://handbook.18f.gov/security-incidents/#reporting-other-incidents), CCing [{{ site.google-group-email }}](mailto:{{ site.google-group-email }}) in the loop. 1. Assign and delegate tasks to person(s) most technically capable to resolve `Incident`. diff --git a/docs/architecture/decisions/0002-use-a-static-site-architecture.md b/docs/architecture/decisions/0002-use-a-static-site-architecture.md index bcfea211..02286b00 100644 --- a/docs/architecture/decisions/0002-use-a-static-site-architecture.md +++ b/docs/architecture/decisions/0002-use-a-static-site-architecture.md @@ -8,7 +8,7 @@ Accepted ## Context -This decision was proposed in the context of Technoloy Transformation Services wanting a platform to host both current and future webpages at a single domain. We see the benefits of a static site architecture as: +This decision was proposed in the context of Technology Transformation Services wanting a platform to host both current and future webpages at a single domain. We see the benefits of a static site architecture as: * Reduced infrastructure costs * Opportunities to add enhancements in the future @@ -23,7 +23,7 @@ We propose using a static site architecture for tts.gsa.gov. We predict that using a static site architecture will: * Allow TTS to easily meet any high traffic needs -* Reduce the cost, pain, and delays of maintaining infrastructure in comparison with a more complicated CMS (Wordpress, Drupal, Joomla) architecure +* Reduce the cost, pain, and delays of maintaining infrastructure in comparison with a more complicated CMS (Wordpress, Drupal, Joomla) architecture * Improved security by presenting a reduced attack surface ## Alternatives @@ -38,7 +38,7 @@ However, using one of these CMS tools would require us to run a server, which wo As of Jan 2022, Federalist supports a variety of static site solutions such as Jekyll, Gatsby, and Hugo. -We chose Eleventy because of its flexability and for the large amount of JavaScript knowledge across TTS. Although Eleventy is newer, it's gaining adoption quickly and as this project matures there will be more and more examples and plugins to make use of. +We chose Eleventy because of its flexibility and for the large amount of JavaScript knowledge across TTS. Although Eleventy is newer, it's gaining adoption quickly and as this project matures there will be more and more examples and plugins to make use of. ### Federalist From 85d62b25c3d0ce82717cd1d70ba2c3b3c8cfdcbb Mon Sep 17 00:00:00 2001 From: Wes Dean Date: Mon, 5 Aug 2024 14:50:20 -0400 Subject: [PATCH 11/12] More linter tidying --- .cspell.json | 5 +---- .markdown-link-check.json | 1 + README.md | 2 +- SECURITY.md | 2 +- docs/IR.md | 2 +- kics.config | 6 ++++++ pages/jointts/compensation-and-benefits.md | 2 ++ pages/jointts/positions/designer.md | 4 ++++ pages/jointts/rolling-hiring.md | 4 ++-- pages/services/people.md | 2 ++ pages/services/platforms.md | 2 ++ pages/services/products.md | 2 ++ 12 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 kics.config diff --git a/.cspell.json b/.cspell.json index 75f2454f..3a244bc6 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,10 +1,7 @@ { "version": "0.2", "language": "en_US", - "ignorePaths": [ - "node_modules/**", - "styles.**" - ], + "ignorePaths": ["node_modules/**", "styles.**"], "words": [ "Allstar", "sidenav", diff --git a/.markdown-link-check.json b/.markdown-link-check.json index afee61b2..295dfba8 100644 --- a/.markdown-link-check.json +++ b/.markdown-link-check.json @@ -2,6 +2,7 @@ "retryOn429": true, "retryCount": 5, "aliveStatusCodes": [200, 203], + "projectBaseUrl": "https://github.com/GSA-TTS/tts-website/", "ignorePatterns": [ { "pattern": "^https?://github.com/" diff --git a/README.md b/README.md index 61384386..b4357023 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ you run `npm run dev:cms` to serve as a development authentication server. ### Creating links For preview links generated on the platform, we automatically set the -`pathPrefix` in the [`.eleventy.js`](/.eleventy.js) file base on the +`pathPrefix` in the [`.eleventy.js`](./.eleventy.js) file base on the `BASEURL` environment variable. We use the built-in 11ty filter for `url` to properly append the prefix path for the linked page. When adding new links, use the following syntax: diff --git a/SECURITY.md b/SECURITY.md index 1062d5b0..b7f94267 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -5,7 +5,7 @@ seriously our responsibility to protect the public's information, including financial and personal information, from unwarranted disclosure. Software developed by the U.S. General Services Administration (GSA) -is subject to the [GSA Vulnerability Disclosure Policy ](gsa.gov/vulnerability-disclosure-policy). +is subject to the [GSA Vulnerability Disclosure Policy](https://www.gsa.gov/vulnerability-disclosure-policy). Please consult our policy for: * How to submit a report if you believe you have discovered a vulnerability. diff --git a/docs/IR.md b/docs/IR.md index e666a178..adca5f0a 100644 --- a/docs/IR.md +++ b/docs/IR.md @@ -17,7 +17,7 @@ site: - [ ] Initiate - [ ] Assess -- [ ] Activate the [Contingency Plan](../CP.md) if needed. +- [ ] Activate the Contingency Plan if needed. - [ ] Remediate - [ ] Retrospective diff --git a/kics.config b/kics.config new file mode 100644 index 00000000..ac166ad0 --- /dev/null +++ b/kics.config @@ -0,0 +1,6 @@ +--- + +exclude-paths: + - "node_modules/" + - "megalinter-reports/" + - ".git/" diff --git a/pages/jointts/compensation-and-benefits.md b/pages/jointts/compensation-and-benefits.md index 18e0798e..24d78888 100644 --- a/pages/jointts/compensation-and-benefits.md +++ b/pages/jointts/compensation-and-benefits.md @@ -39,7 +39,9 @@ level are based on education, background, accomplishments, and experience. The specific requirements will always be listed in the job posting. Salaries of federal employees are public information, and your salary may become publicly available on sites such as + [FederalPay.org](https://www.federalpay.org/employees). Find + out more about the GS system from the [Office of Personnel Management](https://www.opm.gov/policy-data-oversight/pay-leave/pay-systems/general-schedule/). diff --git a/pages/jointts/positions/designer.md b/pages/jointts/positions/designer.md index bda90f58..656daa86 100644 --- a/pages/jointts/positions/designer.md +++ b/pages/jointts/positions/designer.md @@ -33,6 +33,7 @@ promotion_potential: '15' supervisory_status: 'No' --- + {%- if state == 'upcoming' -%} {{ org }} will soon be accepting applications for GS-{{ gs_level }} - {{ role_name }} roles. {%- if opens == 'tbd' -%} The target date for when these positions will be officially open to application has not yet been determined. If you'd like to be @@ -44,6 +45,7 @@ supervisory_status: 'No' learn more about the application process. {%- endunless -%} {%- endif -%} + ## Opportunity overview @@ -379,9 +381,11 @@ lower GS-grade (or equivalent). Specialized experience is defined as follows: Submit a complete online application prior to {{ closes | date: '%l:%M%P %Z ET on %A, %B %e, %Y' }}. Please fill out all applicable fields. +
Click here to apply
+ **Need Assistance in applying or have questions regarding this job opportunity, please email {{ contact_name }} at** [{{ contact_email }}](mailto:{{ contact_email }}). diff --git a/pages/jointts/rolling-hiring.md b/pages/jointts/rolling-hiring.md index 053331b8..90d365f5 100644 --- a/pages/jointts/rolling-hiring.md +++ b/pages/jointts/rolling-hiring.md @@ -153,7 +153,7 @@ conferences, training, and other industry events. The [TTS Handbook](https://handbook.18f.gov/) includes: - [Benefits](https://handbook.18f.gov/benefits/) - [Leave](https://handbook.18f.gov/benefits/#leave) -- [Telework and virtual worker policy](https://handbook.18f.gov/telework/) + - [Professional development and training processes](https://handbook.18f.gov/attending-conferences/) Note: If you are coming over from another agency where you received award @@ -175,7 +175,7 @@ You can also read more about each of these groups at their TTS Handbook Pages: [Engineering](https://handbook.18f.gov/engineering/) | [login.gov](https://login.gov/) | [Product](https://handbook.18f.gov/product/) | - [Strategy](https://handbook.18f.gov/strategy/) + Thank you for taking the time to talk to our team and for your interest in public service! diff --git a/pages/services/people.md b/pages/services/people.md index 3293222e..20e9a37f 100644 --- a/pages/services/people.md +++ b/pages/services/people.md @@ -17,7 +17,9 @@ When agencies need expertise to help to define, plan, and execute a vision for d