[{"content":"In this post, we look at how to compile a markdown-formatted resume into a clean, print-ready PDF using Pandoc inside a container.\nWhen hosting a resume on a personal website, it is often desirable to offer both an interactive HTML page and a downloadable PDF version. However, generating a high-quality PDF version of a resume can be tricky. Using a browser\u0026rsquo;s \u0026ldquo;Print to PDF\u0026rdquo; feature can result in unwanted website menus, footers, or layout artifacts.\nInstead, we can use Pandoc, the universal document converter, to render the clean Markdown source document into a standard, print-ready document PDF. By running Pandoc inside a Docker container, we avoid having to install Pandoc, LaTeX, or other heavy typesetting engines on our local host machine.\nHere is the exact setup and workflow.\nThe Conversion Command We can copy the master Markdown resume into our workspace and run the official pandoc/extra Docker image. Since we want to use a clean, simple font like Roboto, we can mount our Windows host font directory into the container and use the xelatex PDF engine.\nRun the following command in a PowerShell terminal:\ndocker run --rm ` -v \u0026#34;${PWD}:/data\u0026#34; ` -v \u0026#34;C:\\Windows\\Fonts:/usr/share/fonts/truetype/windows\u0026#34; ` pandoc/extra:latest ` resume.md ` --pdf-engine=xelatex ` -V geometry:margin=0.5in ` -V mainfont=\u0026#34;Roboto\u0026#34; ` -o static/resume.pdf How it Works: -v \u0026quot;${PWD}:/data\u0026quot;: Mounts your current working directory to the container\u0026rsquo;s /data directory (using PowerShell\u0026rsquo;s ${PWD} automatic variable). -v \u0026quot;C:\\Windows\\Fonts:/usr/share/fonts/truetype/windows\u0026quot;: Mounts the Windows system fonts directory into the container\u0026rsquo;s font path, giving the container access to Roboto. pandoc/extra:latest: The official, lightweight image containing Pandoc and the XeLaTeX typesetting engine. --pdf-engine=xelatex: Tells Pandoc to use the XeLaTeX engine instead of standard pdflatex, allowing us to load system TrueType/OpenType fonts. -V geometry:margin=0.5in: Passes the margin=0.5in parameter to LaTeX\u0026rsquo;s geometry package, shrinking page margins by 75% for a professional resume format. -V mainfont=\u0026quot;Roboto\u0026quot;: Instructs XeLaTeX to use Roboto as the primary document font. resume.md -o static/resume.pdf: Tells Pandoc to take the source Markdown file resume.md and compile it into a standard document PDF at static/resume.pdf. By adding this command to your local script or deployment pipeline, you can ensure that your downloadable PDF resume is always synchronized with your latest Markdown source edits!\n","permalink":"https://tysamples.com/p/generating-a-pdf-resume-with-pandoc-and-docker/","summary":"\u003cp\u003eIn this post, we look at how to compile a markdown-formatted resume into a clean, print-ready PDF using Pandoc inside a container.\u003c/p\u003e","title":"Generating a PDF Resume with Pandoc and Docker"},{"content":"In this post, we containerize this Hugo static site using Nginx and migrate our deployment pipeline from Google App Engine to Google Cloud Run.\nPreviously, this site was deployed on Google App Engine Standard using a custom Go server to handle static routing and custom 404 fallbacks. Today, we shifted to a modern containerized approach using Nginx (Unprivileged) on Google Cloud Run, which allows us to serve the site securely and efficiently without maintaining a custom backend runtime.\nHere are the key configuration files used to achieve this setup.\n1. The Multi-Stage Dockerfile To keep the production container image as small and secure as possible, we use a multi-stage Docker build.\nStage 1 (Builder) uses the official Hugo image to compile our static site. Stage 2 (Runner) uses a lightweight, unprivileged Nginx image to serve the compiled files. # Stage 1: Build the Hugo site FROM ghcr.io/gohugoio/hugo:latest AS builder USER root WORKDIR /src COPY . . # Run hugo build RUN hugo --minify --gc # Stage 2: Serve the static site using Nginx Unprivileged FROM nginxinc/nginx-unprivileged:alpine-slim # Copy the built site from the builder stage COPY --from=builder /src/public /usr/share/nginx/html # Copy our custom Nginx template for environment variable substitution COPY default.conf.template /etc/nginx/templates/default.conf.template EXPOSE 8080 2. Nginx Template Configuration (default.conf.template) Cloud Run dynamically binds your container to a port using the $PORT environment variable. Because Nginx configuration files do not support environment variables natively, we use Nginx\u0026rsquo;s built-in envsubst template support. Nginx will automatically substitute ${PORT} at container startup.\nWe also enable gzip compression and secure headers (like CSP and frame options):\nserver { listen ${PORT}; server_name localhost; # Gzip Compression gzip on; gzip_vary on; gzip_min_length 10240; gzip_proxied any; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml image/svg+xml; gzip_disable \u0026#34;MSIE [1-6]\\.\u0026#34;; # Security Headers add_header X-Frame-Options \u0026#34;SAMEORIGIN\u0026#34; always; add_header X-XSS-Protection \u0026#34;1; mode=block\u0026#34; always; add_header X-Content-Type-Options \u0026#34;nosniff\u0026#34; always; add_header Referrer-Policy \u0026#34;strict-origin-when-cross-origin\u0026#34; always; add_header Content-Security-Policy \u0026#34;default-src \u0026#39;self\u0026#39; http: https: data: blob: \u0026#39;unsafe-inline\u0026#39;\u0026#34; always; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ =404; } # Custom 404 page error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; internal; } } 3. Local Testing (docker-compose.yml) To test the container locally, we use a simple Compose file that builds the Dockerfile and forwards port 8080:\nservices: web: build: . ports: - \u0026#34;8080:8080\u0026#34; environment: - PORT=8080 Run it locally with:\ndocker compose up --build 4. Updating the CI/CD Pipeline (.github/workflows/google.yml) We replaced our previous App Engine deploy job. In the new workflow, we no longer need to setup Hugo on the GitHub runner. Instead, we authenticate with GCP and use gcloud run deploy to upload the source code to Google Cloud Build, which compiles the image and deploys it to Cloud Run.\nname: Build and Deploy to Cloud Run on: push: branches: [ \u0026#34;main\u0026#34; ] jobs: deploy: name: Build \u0026amp; Deploy runs-on: ubuntu-latest permissions: contents: \u0026#39;read\u0026#39; id-token: \u0026#39;write\u0026#39; steps: - name: Checkout uses: actions/checkout@v3 with: submodules: recursive fetch-depth: 0 - id: \u0026#39;auth\u0026#39; name: \u0026#39;Authenticate to Google Cloud\u0026#39; uses: \u0026#39;google-github-actions/auth@v1\u0026#39; with: workload_identity_provider: \u0026#39;{workload_identity_provider}\u0026#39; service_account: \u0026#39;{service_account}\u0026#39; project_id: \u0026#39;{project_id}\u0026#39; - name: \u0026#39;Set up Cloud SDK\u0026#39; uses: \u0026#39;google-github-actions/setup-gcloud@v1\u0026#39; - name: \u0026#39;Deploy to Cloud Run\u0026#39; run: | gcloud run deploy {service_name} \\ --source . \\ --region us-central1 \\ --allow-unauthenticated \\ --project {project_id} ","permalink":"https://tysamples.com/p/containerizing-hugo-with-nginx-on-google-cloud-run/","summary":"\u003cp\u003eIn this post, we containerize this Hugo static site using Nginx and migrate our deployment pipeline from Google App Engine to Google Cloud Run.\u003c/p\u003e","title":"Containerizing Hugo with Nginx on Google Cloud Run"},{"content":"This is a brief demonstration of how we can rename property names uniformly across a hash table, effectively renaming the \u0026ldquo;Column Name\u0026rdquo; that will be output if we generate a CSV.\n$Data = Get-Content -Path ~\\jsonextract.json | ConvertFrom-Json -AsHashtable foreach($D in $Data) { $D.newPropertyName = $D.oldPropertyName; $D.Remove(\u0026#34;oldPropertyName\u0026#34;); } ","permalink":"https://tysamples.com/p/powershell-rename-hashtable-properties/","summary":"\u003cp\u003eThis is a brief demonstration of how we can rename property names uniformly across a hash table, effectively renaming the \u0026ldquo;Column Name\u0026rdquo; that will be output if we generate a CSV.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-Powershell\" data-lang=\"Powershell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e$Data = Get-Content -Path ~\\jsonextract.json | ConvertFrom-Json -AsHashtable\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eforeach\u003c/span\u003e($D \u003cspan style=\"color:#66d9ef\"\u003ein\u003c/span\u003e $Data)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    $D.newPropertyName = $D.oldPropertyName;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    $D.Remove(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;oldPropertyName\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"PowerShell Rename Hashtable Properties"},{"content":"This is a very mildly tweaked version of sp_who2 intended for use on Azure SQL DB to address some of its differences from standard SQL Server.\ncreate or alter procedure dbo.sp_who_azsqldb as -- active sessions create table #Connections ( SessionId int not null ,BlockingId int null ,Host nvarchar(128) null ,Program nvarchar(128) null ,Login nvarchar(128) null ,Status nvarchar(32) null ,CommandType nvarchar(32) null ,TotalTime bigint null ,CPUTime bigint null ,WaitTime bigint null ,WaitType nvarchar(60) null ,Reads bigint null ,Writes bigint null ,DOP int null ,ParallelWorkers int null ,IsUserProcess bit null ,SQLHandle varbinary(64) null ,SQLStart int null ,index IX_SessionId nonclustered (SessionId) ,index IX_BlockingId nonclustered (BlockingId) ); ​ insert into #Connections ( SessionId ,Host ,Program ,Login ,IsUserProcess ,BlockingId ,Status ,CommandType ,TotalTime ,CPUTime ,WaitTime ,WaitType ,Reads ,Writes ,DOP ,ParallelWorkers ,SQLHandle ,SQLStart ) select s.session_id ,s.host_name ,s.program_name ,s.login_name ,s.is_user_process ,r.blocking_session_id ,r.status ,r.command ,r.total_elapsed_time ,r.cpu_time ,r.wait_time ,r.wait_type ,r.reads + r.logical_reads ,r.writes ,r.dop ,r.parallel_worker_count ,r.sql_handle ,r.statement_start_offset from sys.dm_exec_connections as c join sys.dm_exec_sessions as s on s.session_id = c.session_id join sys.dm_exec_requests as r on r.session_id = s.session_id where -- only include the parent connection c.parent_connection_id is null; -- system processes insert into #Connections ( SessionId ,BlockingId ,Login ,Status ,CommandType ,CPUTime ,WaitTime ,WaitType ,IsUserProcess ,SQLHandle ,SQLStart ) select s.spid ,s.blocked ,s.loginame ,s.status ,nullif(s.cmd, \u0026#39;\u0026#39;) ,s.cpu ,s.waittime ,s.lastwaittype ,0 ,s.sql_handle ,s.stmt_start from sys.sysprocesses as s left join #Connections as c on c.SessionId = s.spid where s.hostprocess = \u0026#39;\u0026#39; and c.SessionId is null; ​ select c.SessionId ,c.BlockingId ,c.Host ,c.Program ,nullif(c.Login, \u0026#39;\u0026#39;) as Login ,c.Status ,c.TotalTime ,c.CPUTime ,c.WaitTime ,c.WaitType ,c.Reads ,c.Writes ,c.DOP ,c.ParallelWorkers ,c.CommandType ,object_schema_name(t.objectid, t.dbid) + \u0026#39;.\u0026#39; + object_name(t.objectid, t.dbid) as ObjectName -- only fetch the first 1000 characters; the entire statement isn\u0026#39;t needed ,substring(t.text, c.SQLStart / 2, 1000) as SQLStatement from #Connections as c outer apply sys.dm_exec_sql_text(c.SQLHandle) as t where c.IsUserProcess = 1 -- include the blocking session even if it is a system process or exists (select 1 from #Connections cb where cb.BlockingId = c.SessionId ); ","permalink":"https://tysamples.com/p/sp_who_azsqldb/","summary":"\u003cp\u003eThis is a very mildly tweaked version of \u003ccode\u003esp_who2\u003c/code\u003e intended for use on Azure SQL DB to address some of its differences from standard SQL Server.\u003c/p\u003e","title":"sp_who_azsqldb"},{"content":"This is a quick demonstration of how we can migrate data from Azure SQL Database (or any other source that can be converted to CSV) into Azure Table Storage.\nTo accomplish this most easily in a one-time manner you\u0026rsquo;re best off simply creating a CSV in whatever manner you wish and importing that through Azure Storage Explorer. If we need to do this in a recurring fashion we\u0026rsquo;d prefer to leverage Azure Data Factory to import the data directly without creating a CSV. We haven\u0026rsquo;t needed to do anything recurring yet so we\u0026rsquo;re just using the first option here.\nCreate the CSV Create a CSV by calling the SQL server and exporting the results with typical Azure modules. Note, in this example we convert a date to a format without any of the disallowed characters.\nConnect-AzAccount $access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token; $SQLDataQuery = \u0026#34; select EntityId as \u0026#39;PartitionKey\u0026#39; ,convert(char(30), CreatedDate, 126) as \u0026#39;RowKey\u0026#39; ,* from dbo.Table \u0026#34; Invoke-Sqlcmd -ServerInstance $SQLServer -Database $SQLDatabase -AccessToken $access_token -Query $SQLDataQuery | Export-Csv -Path \u0026#34;F:\\junk\\SqlOut\\dboTable.csv\u0026#34; -NoTypeInformation Import the Data Once you\u0026rsquo;ve created your CSV, the import is only a few clicks in Azure Storage Explorer.\nSimply navigate to your table. Push Import, enter the file name and fill out the data types for each interpreted column. Verify that you have PartitionKey and RowKey columns which will be used as your respective table keys.\n","permalink":"https://tysamples.com/p/migrate-data-from-sql-to-azure-table-storage/","summary":"\u003cp\u003eThis is a quick demonstration of how we can migrate data from Azure SQL Database (or any other source that can be converted to CSV) into Azure Table Storage.\u003c/p\u003e","title":"Migrate Data from SQL to Azure Table Storage"},{"content":"nvim Cheat Sheets\nMovement and Interaction dd # Cut a line j # move down a line k # move up a line yy # copy a line 2yy # copy 2 lines yiw # yank word Y # copy to end of line p # Paste after cursor P # Paste before cursor Functions :Files # fzf file finder /term # search for term n # search forward N # search backward :2,7d # delete lines 2-7 :w # save file :wq # save and quit :q! # quit without save ","permalink":"https://tysamples.com/p/nvim-cheat-sheet/","summary":"\u003cp\u003envim Cheat Sheets\u003c/p\u003e","title":"nvim Cheat Sheet"},{"content":"These are the quick, basic steps to get a SQL Server instance running in Docker on your local machine for development purposes.\nInstall WSL\nwsl --install Install Docker for Windows, just use the UI.\nCreate a .wslconfig file at ~\\, populate it with some basics:\n[wsl2] memory=16GB processors=4 this will put constraints on your SQL container so that it doesn\u0026rsquo;t take over your system.\nThen, run something like this after replacing the parameters\ndocker run -d -p 1433:1433 --name mssql -e ACCEPT_EULA=Y -e SA_PASSWORD={your pass here} -e MSSQL_PID=Developer -v {path to folder on host to store persistence here}:/var/opt/mssql/data --restart always mcr.microsoft.com/mssql/server:2022-latest ","permalink":"https://tysamples.com/p/docker-sql-server-container/","summary":"\u003cp\u003eThese are the quick, basic steps to get a SQL Server instance running in Docker on your local machine for development purposes.\u003c/p\u003e","title":"Docker SQL Server Container"},{"content":"This is a basic yaml pipeline used in GitHub Actions in order to build this Hugo site and deploys it. After every commit to the main branch, this process converts markdown files to HTML using the Hugo build actions then deploys the updated site to an App Engine on Google Cloud Provider.\nFor GCP authentication we followed this walkthrough to setup the workload identity provider. Then we simply place the following yml file into our dotfiles at .github\\workflows\\google.yml, replacing the authentication variables.\nname: Build and Deploy to GCP on: push: branches: [ \u0026#34;main\u0026#34; ] jobs: run-app-engine: name: Run App Engine runs-on: ubuntu-latest permissions: contents: \u0026#39;read\u0026#39; id-token: \u0026#39;write\u0026#39; steps: - name: Checkout uses: actions/checkout@v3 with: submodules: recursive #Ensure we download templates fetch-depth: 0 #Pull entire file history - name: Setup Hugo uses: peaceiris/actions-hugo@v2 - name: Build run: | hugo --minify --gc - id: \u0026#39;auth\u0026#39; name: \u0026#39;Authenticate to Google Cloud\u0026#39; uses: \u0026#39;google-github-actions/auth@v1\u0026#39; with: workload_identity_provider: \u0026#39;{workload_identity_provider}\u0026#39; service_account: \u0026#39;{service_account}\u0026#39; project_id: \u0026#39;{project_id}\u0026#39; - name: \u0026#39;Set up Cloud SDK\u0026#39; uses: \u0026#39;google-github-actions/setup-gcloud@v1\u0026#39; - id: \u0026#39;deploy\u0026#39; name: \u0026#39;Deploy to App Engine\u0026#39; uses: \u0026#39;google-github-actions/deploy-appengine@v1\u0026#39; with: project_id: \u0026#39;{project_id}\u0026#39; ","permalink":"https://tysamples.com/p/basic-build-and-deploy-pipeline/","summary":"\u003cp\u003eThis is a basic yaml pipeline used in GitHub Actions in order to build this Hugo site and deploys it. After every commit to the \u003ccode\u003emain\u003c/code\u003e branch, this process converts markdown files to HTML using the Hugo build actions then deploys the updated site to an App Engine on Google Cloud Provider.\u003c/p\u003e","title":"Basic Build and Deploy Pipeline"},{"content":"This is a quick tutorial on getting the basics of a useful Terminal environment for development on a Windows machine.\nOpen Windows Terminal I like to work in Windows Terminal for its tabbed sessions. This is installed on Windows machines by default now and should be ready to go.\nInstall Some CLI Tools Either install individual applications if you\u0026rsquo;d like or import a manifest file like below. To shortcut this process, copy the command below and paste it into your terminal but don\u0026rsquo;t run it. Then copy the manifest and run the command to install all the applications in the manifest.\nGet-Clipboard | Set-Content \u0026#34;$env:TEMP\\winget-manifest.json\u0026#34;; winget import -i \u0026#34;$env:TEMP\\winget-manifest.json\u0026#34; --accept-package-agreements; winget Manifest { \u0026#34;$schema\u0026#34; : \u0026#34;https://aka.ms/winget-packages.schema.2.0.json\u0026#34;, \u0026#34;CreationDate\u0026#34; : \u0026#34;2025-10-13T12:30:02.669-00:00\u0026#34;, \u0026#34;Sources\u0026#34; : [ { \u0026#34;Packages\u0026#34; : [ {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;SlackTechnologies.Slack\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Zoom.Zoom\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;GitHub.GitHubDesktop\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.VisualStudioCode\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.DotNet.DesktopRuntime.8\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.DotNet.AspNetCore.8\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.DotNet.SDK.8\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.AzureCLI\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.PowerShell\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.WindowsTerminal\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.WSL\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;RedHat.Podman\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;RedHat.Podman-Desktop\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Git.Git\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;GitHub.cli\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Derailed.k9s\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Kubernetes.kubectl\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.Azure.Kubelogin\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Microsoft.SQLServerManagementStudio.21\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;JanDeDobbeleer.OhMyPosh\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Logitech.OptionsPlus\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;junegunn.fzf\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;Neovim.Neovim\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;sharkdp.bat\u0026#34;}, {\u0026#34;PackageIdentifier\u0026#34; : \u0026#34;OpenJS.NodeJS\u0026#34;} ], \u0026#34;SourceDetails\u0026#34; : { \u0026#34;Argument\u0026#34; : \u0026#34;https://cdn.winget.microsoft.com/cache\u0026#34;, \u0026#34;Identifier\u0026#34; : \u0026#34;Microsoft.Winget.Source_8wekyb3d8bbwe\u0026#34;, \u0026#34;Name\u0026#34; : \u0026#34;winget\u0026#34;, \u0026#34;Type\u0026#34; : \u0026#34;Microsoft.PreIndexed.Package\u0026#34; } } ], \u0026#34;WinGetVersion\u0026#34; : \u0026#34;1.6.10121\u0026#34; } PowerShell 7 Get PS7 and enhanced auto-complete\nwinget install Microsoft.Powershell git winget install Git.Git Text Editors Neovim: A quick, lightweight text editor, helpful for fzf preview and small file edits\nBat: A text file reader with syntax highlighting NodeJS: Used by some vim plugins\nwinget install neovim winget install bat --source winget winget install OpenJS.NodeJS Neovim Configurations First, install the plugin manager vim-plug with the command\niwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |` ni \u0026#34;$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim\u0026#34; -Force Create a config file at ~\\AppData\\Local\\nvim\\init.vim, populate it with some preferences like\nset writebackup set ignorecase set number call plug#begin() Plug \u0026#39;junegunn/vim-easy-align\u0026#39; Plug \u0026#39;junegunn/fzf\u0026#39;, { \u0026#39;dir\u0026#39;: \u0026#39;~/.fzf\u0026#39;, \u0026#39;do\u0026#39;: \u0026#39;./install -all\u0026#39; } Plug \u0026#39;junegunn/fzf.vim\u0026#39; Plug \u0026#39;github/copilot.vim\u0026#39; Plug \u0026#39;folke/tokyonight.nvim\u0026#39; call plug#end() let g:fzf_vim = {} let g:fzf_vim.preview_window = [\u0026#39;hidden,right,70%\u0026#39;, \u0026#39;ctrl-/\u0026#39;] colorscheme tokyonight Open nvim and run :PlugInstall. Close and reopen nvim and you should be able to run commands like :Files Also, to setup Copilot run :Copilot setup\nSet neovim as your GitHub CLI editor!\ngh config set editor nvim fzf Fuzzy finder, a useful tool for quickly maneuvering around and searching through files\nwinget install fzf Install-Module PSfzf [Environment]::SetEnvironmentVariable(\u0026#39;_PSFZF_FZF_DEFAULT_OPTS\u0026#39;, \u0026#39;--height 30%\u0026#39;, \u0026#39;Machine\u0026#39;) Profile addition to customize, this variable is also used by fzf.vim\n$env:FZF_DEFAULT_OPTS=\u0026#34;-i -m --preview-window=\u0026#39;right:65%\u0026#39; --preview=\u0026#39;bat --theme=OneHalfDark --color=always {}\u0026#39;\u0026#34;; Oh My Posh Setup oh-my-posh font install \u0026#34;CascadiaCode\u0026#34; This is the profile addition to launch omp and enable theme.\noh-my-posh init pwsh --config \u0026#34;clean-detailed\u0026#34; | Invoke-Expression; Helpful Powershell Modules Install these individually, or comma-delimit them like this\nInstall-Module -Name PSReadLine, Az, SqlServer, DbaTools, posh-git, PSfzf -AllowClobber Install-Module PSReadLine -AllowPrerelease -Force -SkipPublisherCheck Profile additions you likely want to enable by including in your $Profile.\nImport-Module PSReadLine Import-Module posh-git ","permalink":"https://tysamples.com/p/terminal-setup/","summary":"\u003cp\u003eThis is a quick tutorial on getting the basics of a useful Terminal environment for development on a Windows machine.\u003c/p\u003e","title":"Terminal Setup"},{"content":"To use this feature, add links section to frontmatter.\nThis page\u0026rsquo;s frontmatter:\nlinks: - title: GitHub description: GitHub is the world\u0026#39;s largest software development platform. website: https://github.com image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png - title: TypeScript description: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. website: https://www.typescriptlang.org image: ts-logo-128.jpg image field accepts both local and external images.\n","permalink":"https://tysamples.com/links/","summary":"\u003cp\u003eTo use this feature, add \u003ccode\u003elinks\u003c/code\u003e section to frontmatter.\u003c/p\u003e\n\u003cp\u003eThis page\u0026rsquo;s frontmatter:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003elinks\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  - \u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eGitHub\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edescription\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eGitHub is the world\u0026#39;s largest software development platform.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ewebsite\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttps://github.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eimage\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttps://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  - \u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eTypeScript\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edescription\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eTypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ewebsite\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttps://www.typescriptlang.org\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eimage\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ets-logo-128.jpg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eimage\u003c/code\u003e field accepts both local and external images.\u003c/p\u003e","title":"Links"},{"content":"📄 Download PDF Version\nTyler Samples Portland, OR | tysamples.com\nSummary Software Engineer excited about performance, observability, and automation with years of expertise specializing in datastores, platforms, and process optimization.\nI work on application and DevOps teams to improve performance, enable scalability, and design solutions for new feature development. I employ data-driven development methodologies focusing on observability and sturdy operations to make informed decisions to drive performance.\nSkill Area Tools/Technologies Cloud Platforms Azure, Google Cloud Platform Programming Languages C#, PowerShell, SQL, bash Database Technologies Azure SQL Database, Elasticsearch, Cosmos CI/CD Azure DevOps, GitHub Actions, Azure Data Factory Automation Terraform, Kubernetes, Docker Business Intelligence Database Design, ETL, FQHC UDS Reporting Experience Database Engineer @ Red Rover 2025 - Present Optimized database performance by analyzing APM telemetry and query execution plans, resolving high-friction resource contention to reduce latency and infrastructure overhead. Architected and implemented a foundational Data Warehouse to consolidate operational metrics across disparate systems, establishing automated ETL pipelines for unified business intelligence. Automated database schema migration and version control pipelines, reducing manual release friction and ensuring safe, repeatable deployments. Designed database telemetry dashboards and proactive alerts to identify query regressions, deadlock incidents, and resource exhaustion before they impacted users. Collaborated with product engineers to design highly performant schemas, indexing strategies, and caching patterns for new feature launches. Senior DevOps Engineer II @ Degreed 2025 - 2025 Completed project to separate front-end and back-end monolithic repository to allow for modular deployment and code consolidation; this included migrating many build, test, and release workflows. Migrated several dozen workflows to provider-managed pools, resulting in the elimination of technical debt, and a 50% reduction in both cost and runtime for most workflows. Upgraded more than a dozen Azure PostgreSQL servers to a compliant platform, augmenting performance, cost, and library availability. Senior Software Engineer II @ Degreed 2024 – 2025 Automated Elasticsearch upgrade reindexing process, saving hundreds of hours of developer time and creating a robust and consistent, highly logged routine. Prototyped a Semantic Search implementation to explore Machine Learning features for improved Categorical Search results. Led systems integration project using Azure Event Hub, enabling a robust integration between two systems and allowing the sales teams to upsell both products. Managed technical incident response to address systems outages, performance degradations, and other urgent business-critical needs. Reviewed APM data for performance constraints and implemented performance-tuning improvements to improve user experience and reduce business costs. Comprehensively developed new REST endpoints through MVC stack to integrate new system data with OAuth security for systems integration. Developed new .NET features in web applications. Database Engineer @ American Health Technology Group 2022 – 2024 Led recurring performance monitoring initiative to highlight opportunities to improve reliability and lower costs. Enabled observability tooling to provide insightful data to inform developers and management. Wrote DevOps processes to reduce friction in local development and empower developers to work more easily. Wrote DevOps pipelines to automate database deploy and other recurring functions. Consulted on database design and changes for application teams. Senior Software Engineer @ Degreed 2019 – 2022 Developed new features and bug fixes using T-SQL, Elasticsearch, and C#. Used APM observability to identify potential performance improvements and data integrity improvements. Built and maintained a database deployment pipeline, converting from a fully manual process. Identified frequently called queries and implemented Redis caching to reduce unnecessary database calls, resulting in a 30% reduction in queries on the largest Production DB. Designed, implemented, and documented a large-scale data-driven data migration process to migrate clients between data centers using Azure Data Factory. Escalation Engineer @ Degreed 2018 – 2019 Provided top-tier, live Production support for Azure SQL Database and Elasticsearch. Diagnosed and debugged production issues and bugs. Business Intelligence Analyst @ OCHIN 2013 – 2018 Fostered a technical learning environment as the technical lead; hosted a weekly learning session to assist a large team to overcome technical limitations in query design as well as tracing data through ETL processes from operational, analytical, and data warehouse databases. Performed extensive query optimization solutions for big data environment. Built automated bi-directional data extracts utilizing Microsoft framework (SQL Agent Jobs, SSIS packages). Built and supported federal Clinical Quality Measures platform reporting for 80 organizations, building a high-transparency data reporting platform to ensure customer confidence. Education BS Business Information Systems | Oregon State University\n2006 – 2011\n","permalink":"https://tysamples.com/resume/","summary":"\u003cp\u003e📄 \u003cstrong\u003e\u003ca href=\"/resume.pdf\"\u003eDownload PDF Version\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch1 id=\"tyler-samples\"\u003eTyler Samples\u003c/h1\u003e\n\u003cp\u003ePortland, OR | \u003ca href=\"https://tysamples.com\"\u003etysamples.com\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"summary\"\u003eSummary\u003c/h2\u003e\n\u003cp\u003eSoftware Engineer excited about performance, observability, and automation with years of expertise specializing in datastores, platforms, and process optimization.\u003c/p\u003e\n\u003cp\u003eI work on application and DevOps teams to improve performance, enable scalability, and design solutions for new feature development. I employ data-driven development methodologies focusing on observability and sturdy operations to make informed decisions to drive performance.\u003c/p\u003e\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003cth\u003eSkill Area\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003eTools/Technologies\u003c/th\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eCloud Platforms\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eAzure, Google Cloud Platform\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eProgramming Languages\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eC#, PowerShell, SQL, bash\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eDatabase Technologies\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eAzure SQL Database, Elasticsearch, Cosmos\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eCI/CD\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eAzure DevOps, GitHub Actions, Azure Data Factory\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eAutomation\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eTerraform, Kubernetes, Docker\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eBusiness Intelligence\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eDatabase Design, ETL, FQHC UDS Reporting\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"experience\"\u003eExperience\u003c/h2\u003e\n\u003ch3 id=\"database-engineer--red-rover\"\u003e\u003cstrong\u003eDatabase Engineer\u003c/strong\u003e @ \u003cstrong\u003eRed Rover\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2025---present\"\u003e2025 - Present\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized database performance by analyzing APM telemetry and query execution plans, resolving high-friction resource contention to reduce latency and infrastructure overhead.\u003c/li\u003e\n\u003cli\u003eArchitected and implemented a foundational Data Warehouse to consolidate operational metrics across disparate systems, establishing automated ETL pipelines for unified business intelligence.\u003c/li\u003e\n\u003cli\u003eAutomated database schema migration and version control pipelines, reducing manual release friction and ensuring safe, repeatable deployments.\u003c/li\u003e\n\u003cli\u003eDesigned database telemetry dashboards and proactive alerts to identify query regressions, deadlock incidents, and resource exhaustion before they impacted users.\u003c/li\u003e\n\u003cli\u003eCollaborated with product engineers to design highly performant schemas, indexing strategies, and caching patterns for new feature launches.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"senior-devops-engineer-ii--degreed\"\u003e\u003cstrong\u003eSenior DevOps Engineer II\u003c/strong\u003e @ \u003cstrong\u003eDegreed\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2025---2025\"\u003e2025 - 2025\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCompleted project to separate front-end and back-end monolithic repository to allow for modular deployment and code consolidation; this included migrating many build, test, and release workflows.\u003c/li\u003e\n\u003cli\u003eMigrated several dozen workflows to provider-managed pools, resulting in the elimination of technical debt, and a 50% reduction in both cost and runtime for most workflows.\u003c/li\u003e\n\u003cli\u003eUpgraded more than a dozen Azure PostgreSQL servers to a compliant platform, augmenting performance, cost, and library availability.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"senior-software-engineer-ii--degreed\"\u003e\u003cstrong\u003eSenior Software Engineer II\u003c/strong\u003e @ \u003cstrong\u003eDegreed\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2024--2025\"\u003e2024 – 2025\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAutomated Elasticsearch upgrade reindexing process, saving hundreds of hours of developer time and creating a robust and consistent, highly logged routine.\u003c/li\u003e\n\u003cli\u003ePrototyped a Semantic Search implementation to explore Machine Learning features for improved Categorical Search results.\u003c/li\u003e\n\u003cli\u003eLed systems integration project using Azure Event Hub, enabling a robust integration between two systems and allowing the sales teams to upsell both products.\u003c/li\u003e\n\u003cli\u003eManaged technical incident response to address systems outages, performance degradations, and other urgent business-critical needs.\u003c/li\u003e\n\u003cli\u003eReviewed APM data for performance constraints and implemented performance-tuning improvements to improve user experience and reduce business costs.\u003c/li\u003e\n\u003cli\u003eComprehensively developed new REST endpoints through MVC stack to integrate new system data with OAuth security for systems integration.\u003c/li\u003e\n\u003cli\u003eDeveloped new .NET features in web applications.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"database-engineer--american-health-technology-group\"\u003e\u003cstrong\u003eDatabase Engineer\u003c/strong\u003e @ \u003cstrong\u003eAmerican Health Technology Group\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2022--2024\"\u003e2022 – 2024\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eLed recurring performance monitoring initiative to highlight opportunities to improve reliability and lower costs.\u003c/li\u003e\n\u003cli\u003eEnabled observability tooling to provide insightful data to inform developers and management.\u003c/li\u003e\n\u003cli\u003eWrote DevOps processes to reduce friction in local development and empower developers to work more easily.\u003c/li\u003e\n\u003cli\u003eWrote DevOps pipelines to automate database deploy and other recurring functions.\u003c/li\u003e\n\u003cli\u003eConsulted on database design and changes for application teams.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"senior-software-engineer--degreed\"\u003e\u003cstrong\u003eSenior Software Engineer\u003c/strong\u003e @ \u003cstrong\u003eDegreed\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2019--2022\"\u003e2019 – 2022\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeveloped new features and bug fixes using T-SQL, Elasticsearch, and C#.\u003c/li\u003e\n\u003cli\u003eUsed APM observability to identify potential performance improvements and data integrity improvements.\u003c/li\u003e\n\u003cli\u003eBuilt and maintained a database deployment pipeline, converting from a fully manual process.\u003c/li\u003e\n\u003cli\u003eIdentified frequently called queries and implemented Redis caching to reduce unnecessary database calls, resulting in a 30% reduction in queries on the largest Production DB.\u003c/li\u003e\n\u003cli\u003eDesigned, implemented, and documented a large-scale data-driven data migration process to migrate clients between data centers using Azure Data Factory.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"escalation-engineer--degreed\"\u003e\u003cstrong\u003eEscalation Engineer\u003c/strong\u003e @ \u003cstrong\u003eDegreed\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2018--2019\"\u003e2018 – 2019\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eProvided top-tier, live Production support for Azure SQL Database and Elasticsearch.\u003c/li\u003e\n\u003cli\u003eDiagnosed and debugged production issues and bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"business-intelligence-analyst--ochin\"\u003e\u003cstrong\u003eBusiness Intelligence Analyst\u003c/strong\u003e @ \u003cstrong\u003eOCHIN\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 id=\"2013--2018\"\u003e2013 – 2018\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFostered a technical learning environment as the technical lead; hosted a weekly learning session to assist a large team to overcome technical limitations in query design as well as tracing data through ETL processes from operational, analytical, and data warehouse databases.\u003c/li\u003e\n\u003cli\u003ePerformed extensive query optimization solutions for big data environment.\u003c/li\u003e\n\u003cli\u003eBuilt automated bi-directional data extracts utilizing Microsoft framework (SQL Agent Jobs, SSIS packages).\u003c/li\u003e\n\u003cli\u003eBuilt and supported federal Clinical Quality Measures platform reporting for 80 organizations, building a high-transparency data reporting platform to ensure customer confidence.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"education\"\u003eEducation\u003c/h2\u003e\n\u003cp\u003eBS Business Information Systems | Oregon State University\u003cbr\u003e\n2006 – 2011\u003c/p\u003e","title":"Resume"}]