Now — SWE Intern @ Battalion Energy

Bryan Tang

Software Engineer building scalable systems from the kernel to the cloud.

📍 Austin, TX • 🎓 UT Austin — CS & Math
0 Internships
0 Languages
0 Grad year
0 Countries Visited
01 — About

Engineer at heart, builder by habit.

I'm Bryan — a software engineer pursuing a B.S. in Computer Science & Mathematics (minor in Business) at UT Austin. I like working across the whole stack, from operating-system internals in C to React frontends and Go services running on AWS.

Right now I am interning at Battalion Energy andsearching for full-time software engineer roles. Off the keyboard, you'll find me leading Discovery Small Group for Epic Christian Ministry, on the basketball court, or in the gym.

Languages

PythonGoJavaCC++ JavaScriptSQLBashHTML/CSS

Technologies

React.jsNode.jsAWS LambdaAWS S3 DockerPostgreSQLLinuxGit

Focus

Full-Stack DevelopmentSystems Engineering Cloud / DevOpsAutomation
02 — Experience

Where I've shipped.

May 2026 — Present

Software Engineer Intern

Capital One

Building a payment processor on a modern cloud stack.

  • Developing a payment processor with a React frontend and Go services, deployed serverlessly on AWS Lambda.
  • Designing event-driven processing flows backed by AWS S3 for durable storage of transaction artifacts.
  • Focusing on reliability, idempotency, and clean API design for financial transactions.
ReactGoAWS LambdaAWS S3
May 2025 — Aug 2025

Software Engineer Intern

Hewlett Packard Enterprise

Built tooling to improve server management and firmware processes.

  • Developed an open-source CLI tool in Go to query server information via the Redfish API, automating firmware vulnerability detection and improving efficiency by 300% over manual workflows.
  • Engineered 7 Cobra CLI commands to automate firmware auditing and validation, reducing auditing time by 40%.
  • Architected a migration from JSON to SQLite with advanced indexing, cutting firmware record lookup times by 65%.
GoCobraSQLiteRedfish API
Jan 2025 — May 2025

Software Engineer Intern

Applied Research Laboratories

Data visualization and real-time analytics for maritime applications.

  • Built a Java Swing application with asynchronous data fetching and JSON parsing to visualize real-time sensor data via REST API, cutting data retrieval time by 50%.
  • Integrated geolocation mapping using a gRPC middleware event listener, improving decision-making in maritime analytics.
JavagRPCREST
May 2024 — Aug 2024

Software Engineer Intern

PCOnline

Automation tools and inventory management improvements.

  • Designed a full-stack Python application with a Tkinter GUI to automate label generation for 6000+ returned products, improving warehouse reconciliation.
  • Engineered automated UI testers using Selenium, decreasing testing time by 200%.
  • Extended Bash scripts to support PostgreSQL database operations in Docker containers for testing environments.
PythonSeleniumPostgreSQLDocker
03 — Projects

Things I've built.

⌘

PISTASH-io Shell

A POSIX-compliant shell with scripting, redirection, and pipelining.

  • Supports 30+ commands with logical operators and short-circuiting via a custom tokenizer and AST.
  • Background process support using fork() and exec() for concurrent execution.
CC++LinuxSystems
♠ →

GTO Poker Trainer

A 6-max No-Limit Hold'em trainer covering every street — live at /poker-trainer.

  • Preflop open-raising & 3-bet defense on standard 100bb solver-baseline ranges, with an interactive 13×13 range explorer.
  • Flop/turn/river c-bet spots driven by a board-texture model; instant feedback, scoring, and clear positioning.
JavaScriptHTML/CSSPoker GTONo-build
♤ →

Spades Scoreboard

A scoreboard for partnership spades — bids, tricks, bags, nils and running score — live at /spades.

  • Score is derived, never stored: the standings are a fold over the hand list, so bag penalties stay order-correct and any hand can be edited or deleted mid-match.
  • Nil and blind nil settled as player-level contracts, with the bag limit, penalty and nil values exposed as house rules and snapshotted into each match.
  • A persistent roster carries lifetime records, contract rate, bags per hand and head-to-heads across a season.
JavaScriptSVGData VizNo-build
地 →

Doudizhu Scoreboard

A scoreboard for three-handed 斗地主 — calls, bombs, springs and the multiplier chain — live at /doudizhu.

  • The table graphic is a render of the round being typed, not a picture drawn after it: projected point swings come from the same engine call that scores the round.
  • Score is derived, never stored — standings are a fold over the round list, so any round can be edited or deleted and the match re-scores correctly.
  • Seat colours were searched rather than chosen, clearing a worst-case ΔE of 54.8 across normal and all three dichromacies against a target of 8.
  • A persistent roster carries lifetime landlord and peasant records, plus a landlord-versus-table matrix — the head-to-head that actually exists in a three-handed game.
JavaScriptSVGData VizNo-build
中 →

Mahjong Tutor

A drilled tutorial, play aid and score tracker for people who have never played 麻雀 — live at /mahjong.

  • Built on the research finding that tile recognition and claim pace are the real beginner walls, not the rules: the curriculum runs recognition → sets → claims → scoring, and every module ends in drills rather than a summary.
  • All 34 tile faces are hand-drawn inline SVG — Unicode mahjong renders as a different typeface on every platform and is illegible at the size a drill needs.
  • Covers Hong Kong Old Style and “Hairs”, a house variant that appears in no published ruleset; the three details its table never specified are rules toggles rather than guesses.
  • Hand decomposition, win detection and shanten were built test-first before anything depended on them, and a property test asserts every generated drill’s answer key agrees with the engine.
JavaScriptSVGData VizNo-build
◑ →

Poker Bankroll Tracker

A profit/loss tracker with charts and variance analytics — results live at /bankroll.

  • Hand-rolled SVG charts — cumulative profit, monthly P/L, result distribution — with crosshair tooltips and a table view for every chart.
  • Hourly rate with a 95% confidence interval, bb/hr, max drawdown, and streaks, so a win rate can be read against variance instead of at face value.
  • Split build: the public page is read-only over a committed data.json, while the editable tracker runs locally and keeps its data in the browser.
JavaScriptSVGData VizNo-build
→

Hours Tracker

A timesheet for my part-time job: clock in and out, note what I did, and export the week — live at /hours-tracker.

  • A persisted clock-in timer with breaks, so a closed tab or a phone restart mid-shift loses nothing, and a weekly timeline showing when each shift fell.
  • Local-first: shifts live in IndexedDB, and backups restore by merging, so newer edits win and importing the same file twice changes nothing. Overlapping and overnight shifts are handled explicitly.
  • Hours-per-week, weekday and hour-of-week heatmap charts in hand-rolled SVG, plus CSV, plain-text and printable-timesheet exports.
JavaScriptIndexedDBSVGPWA
∑

Life Insurance Calculator

Full-stack web app for calculating life insurance premiums with a modern UI.

  • Responsive React frontend with a Node.js/Express backend.
  • Validation and calculation logic; reduced server response time by 40%.
ReactNode.jsExpressTailwind
◈

Custom Operating System

A minimal Unix-like OS kernel with core operating-system components.

  • Process management, ELF binary loading, system calls, and virtual memory.
  • Synchronization primitives and basic ext2 file system support.
CC++x86 AsmOS Dev
⛁

Life Insurance Form Filler

Automated life insurance application filling.

  • Selenium + undetected-chromedriver autofills Nationwide applications, cutting manual entry time by 80%.
  • Tkinter GUI to securely collect credentials and Excel row data.
PythonSeleniumTkinter
◎

Face Crop

Automated face detection and cropping.

  • OpenCV + Haar Cascade classifiers detect and isolate faces from images.
  • 95% detection rate across varied resolutions and lighting conditions.
PythonOpenCV
→

More on GitHub

Browse the rest of my repositories and experiments.

04 — Contact

Let's build something.

I'm always open to new opportunities and good conversations. Whether you have a question or just want to say hi, my inbox is open.

Say hello →