Links

Personal Projects

Probability Distribution Visualizer
TechnologiesReactTypeScriptViteChart.jsTailwind CSSVitestDockerDev ContainersGitHub ActionsGitHub Pages
OverviewExplore how probability distributions change as you adjust their parameters. Practical examples and simulations help you understand features that can be hard to grasp from formulas alone.
Technical highlightsSeparates probability calculations from the UI and verifies results with automated tests. Handles large numbers more reliably and saves distribution settings and display order in the URL.
Algorithm Visualizer | Learn through animation
TechnologiesReactTypeScriptParcelMantinei18nextVitestDockerDev Containers
OverviewLearn sorting algorithms through animation. Compare how they process the same data to understand differences in their steps and workload. Adjust the speed or pause to examine each step.
Technical highlightsSeparates algorithms from the UI to make new features easier to add. Supports browser-language detection and a consistent development environment with Docker.
investee | Financial charts for Chrome
TechnologiesReactTypeScriptChrome Extensions APIRedux ToolkitGraphQLApollo ClientMaterial UIRechartsViteDocker
OverviewCheck a company's finances as soon as a stock catches your eye. View assets, profits, and cash flow in charts without leaving your usual stock information site or searching for the company again.
Technical highlightsFetches financial data through GraphQL based on the page being viewed. Uses Redux Toolkit to manage extension state and switches charts automatically.
investee | Financial charts for listed companies
TechnologiesReactTypeScriptMaterial UIRechartsRuby on RailsGraphQLSidekiqPostgreSQLRedisEDINET APIXBRLDockernginxSakura VPS
OverviewUnderstand a company's assets, profits, and cash flow through charts that reveal patterns hidden in tables. Filter companies by cash flow characteristics to find potential investments.
Technical highlightsRegularly retrieves financial filings from EDINET, parses XBRL documents, and stores the data. Uses Sidekiq for scheduled processing and GraphQL to serve the data needed by the UI.
F1C | Discover and share leading companies in Fukui
TechnologiesVue.jsNuxt.jsTypeScriptVuetifyNode.jsExpress.jsFirebase AuthenticationCloud Functions for FirebasePostgreSQLDockernginxSakura VPS
OverviewDiscover unexpected strengths of local companies you may not know. Explore community posts about companies in Fukui that lead their fields, and share what makes your own favorites stand out.
Technical highlightsUses dependency injection to make features easier to change. Regularly retrieves and stores company website images, reducing post retrieval time by about one second.
Bases-loaded baseball board game
TechnologiesVue.jsJavaScriptFirebase AuthenticationCloud FirestoreDockernginxSakura VPS
OverviewEvery pitch starts with the bases loaded, giving you a chance to score big with every hit. Time your swing and challenge the high scores on the leaderboard.
Technical highlightsUses trigonometry and vector calculations for collisions between the bat, ball, and board. Firebase handles authentication and score storage for the leaderboard.
MLB standings bot for X
TechnologiesC#.NETAWS LambdaAmazon EventBridgeTerraformX APIGitHub Actions
OverviewKeep up with MLB standings in your usual timeline. Follow the bot to receive standings updates without opening a separate site or searching for results.
Technical highlightsRuns on a schedule with EventBridge and Lambda, with AWS infrastructure managed through Terraform. GitHub Actions automates testing and deployment, and posts can be previewed locally before being sent to X.
LINE bot for convenience store search and image translation
TechnologiesPythonFlaskLINE Messaging APICloud Vision APIGoogle Places APIGoogle Apps ScriptCloud FirestoreRender
OverviewFind nearby convenience stores with restrooms or translate text in photos from LINE. Send your location or a photo without having to type an address or copy unfamiliar text while out and about.
Technical highlightsReceives LINE messages with Flask and connects place search, text recognition, and translation APIs. Exposes translation through Google Apps Script and stores language preferences in Firestore.
Shooting Game | A one-minute bullet-dodging challenge
TechnologiesHTMLCSSJavaScriptRender
OverviewDodge incoming bullets and survive for one minute. Simple rules make it easy to play in your browser during a short break.
Technical highlightsImplements game behavior in JavaScript and hosts it on Render so it can be played in a browser.

Experience

As of September 21, 2025

Technologies I have used professionally

★★★★★
SalesforceApexLightning Web ComponentAura ComponentVisualforceProcess BuilderFlowSecond-generation managed packages
★★★★★
Node.jsTypeScript
★★★★★
C#Vue.jsRuby on Rails
★★★★★
Google CloudBigQueryTerraformGitHub ActionsSQL ServerJenkinsDatadogRedis

© 2026 shin4488