window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'G-3ZGRWVWGYD'); :root { --text-color: #343a40; --text-secondary-color: #6c757d; --text-link-color: #007bff; --background-color: #eaedf0; --secondary-background-color: #64ffda1a; --primary-color: #007bff; --secondary-color: #f8f9fa; --text-color-dark: #e4e6eb; --text-secondary-color-dark: #b0b3b8; --text-link-color-dark: #ffffff; --background-color-dark: #18191a; --secondary-background-color-dark: #212529; --primary-color-dark: #ffffff; --secondary-color-dark: #212529; } body { font-size: 1rem; font-weight: 400; line-height: 1.5; text-align: left; } html { background-color: var(--background-color) !important; } body::-webkit-scrollbar { height: 0px; width: 8px; background-color: var(--background-color); } ::-webkit-scrollbar-track { border-radius: 1rem; } ::-webkit-scrollbar-thumb { border-radius: 1rem; background: #b0b0b0; outline: 1px solid var(--background-color); } #search-content::-webkit-scrollbar { width: .5em; height: .1em; background-color: var(--background-color); } { "@context": "https://schema.org", "@type": "WebSite", "name": "Tai\u0027s Life", "url": "https:\/\/taislife.work\/", "description": "", "author": { "@type": "Person", "name": "Tai." } } Tai's Life let localStorageValue = localStorage.getItem("pref-theme"); let mediaQuery = window.matchMedia('(prefers-color-scheme: dark)').matches; switch (localStorageValue) { case "dark": document.documentElement.classList.add('dark'); document.body.classList.add('dark'); break; case "light": document.body.classList.remove('dark'); document.documentElement.classList.remove('dark'); break; default: if (mediaQuery) { document.documentElement.classList.add('dark'); document.body.classList.add('dark'); } break; } var prevScrollPos = window.pageYOffset; window.addEventListener("scroll", function showHeaderOnScroll() { let profileHeaderElem = document.getElementById("profileHeader"); let currentScrollPos = window.pageYOffset; let resetHeaderStyle = false; let showNavBarOnScrollUp = true ; let showNavBar = showNavBarOnScrollUp ? prevScrollPos > currentScrollPos : currentScrollPos > 0; if (showNavBar) { profileHeaderElem.classList.add("showHeaderOnTop"); } else { resetHeaderStyle = true; } if(currentScrollPos === 0) { resetHeaderStyle = true; } if(resetHeaderStyle) { profileHeaderElem.classList.remove("showHeaderOnTop"); } prevScrollPos = currentScrollPos; }); Tai's Life About Me Experience Projects Contact Blog Donate 🌐 English 繁體中文 English Hello, my name is Tai. Working Dad, Two Kids This is my personal portfolio site, which serves as a central hub for my work. On this page, you can find links to my Blog, GitHub, LinkedIn, and other social platforms. I also use this space to periodically showcase my side projects. If you find them valuable, donations are welcome. Your support is the greatest encouragement and motivation for my creative endeavors. Resume About Me I graduated from Yuan Ze University with a degree in Information Communication and relocated to Taipei for professional development after completing my military service in 2016. A pivotal period for my growth was at 104 Information Technology, where I rapidly expanded my technical knowledge and gained substantial experience in both development and operations. Currently, I serve as a Senior Software Developer at Next Bank. Here are a few technologies I've been working with recently: C# Gemini-cli Java PHP Node Python Experience NextBank 104 Information Senior Software Developer - NextBank Apr. 2021 - present I am currently working as a senior software developer at NextBank in Taipei, Taiwan. Backend Developer - 104 Information Jul. 2017 - Apr. 2021 I worked as a backend developer at 104 in New Taipei City, Taiwan. System analyst for a product. Created a backend system for a product. Projects chrome-extension Javascript gemini-cli vibe-coding chrome-extension Sidebar for Tabs/Bookmarks A Chrome extension that mimics the vertical tabs of the Arc browser. More vibe-coding Python wsj-daily The WSJ Briefing: Automated AI Newsletter [Non-profit] Use Gemini AI to summarize linked content from subscribed Wall Street Journal daily emails and send the HTML summary to subscribers. More chrome-extension Javascript pcloud antigravity HyperCmdC HyperCmdC streamlines how you capture and organize web content. We provide the clean, structured data—how you use it for RAG, ideas, or notes is up to you. More typescript cloudflare pages vibe-coding Taiwan Strait Risk Monitor Real-time indicators of geopolitical stability More Get in Touch If you want to contact me, this email. Mail me Recent Posts [Dev] Why Every Developer … Lately, while tinkering with various AI development projects, I’ve constantly felt a bit stuck. Every time I needed to make an AI Agent smarter in a different environment, I found myself doing the same repetitive chores—digging through old repos for a sk

FACT BOX ・ 要点整理

  • 出典:PR Times
  • 分類:ニュース