Ih1eizck42ijkggdphrz

Brandon Ting

 0976192178

 [email protected]

 Portfolio

Summary


A fullstack developer who values innovation, integrity, and responsibility. 

A rapid learner with massive curiosity who eager to explore new tech. 

Specialize in React/NextJS ecosystem but also have experience with other modern front-end frameworks like svelte and vue, back-end experience in NodeJS and Golang and DevOps skills including docker, CICD, and ansible. 

I believe critical thinking, clear communication and never stop thinking about better solutions are vital for greatness.

Skills


Front-end

  • React/Nextjs.
  • State Management: Redux, Zustand, XState. 
  • Micro-Frontend: Single-SPA, Vite Module Federation.
  • Style: TailwindCSS, Styled Component. 
  • Validation: Zod. 
  • Data Fetching: React Query, GraphQL(Apollo) and tRPC.
  • Event Handling: RxJS.
  • Less experienced Frameworks: Svelte, HTMX, SolidJS, React Native/Expo and Vue.
  • Bundle Tool: Webpack, Vite, and esbuild.
  • Test: Jest, Vitest, Cypress. 


Back-end

  • NodeJS: Express, Koa, and Fastify. 
  • Bun: Elysia
  • Go: Gin, and Echo.
  • ORM: Sequalize, Prisma, DrizzleORM, and sqlx(Go).
  • DB: MSSQL, Postgres, Redis, and MongoDB.
  • API: Restful, GraphQL, gRPC

Tools

  • Typescript
  • Git flow(Github/Gitlab)
  • Gitlab CICD
  • Test: Postman.
  • Code Review Tool: Codestream, husky, and Sonarqube.
  • Deployment Tools: Docker, Docker Swarm, and Ansible. 
  • Elasticsearch.
  • Message Queue: RabbitMQ. 

Work Experience

Mitake Information, Front End Developer, Nov 2019 - Feb 2024 

  • Actively share resources and tools about Typescript and persuaded multiple colleague to adopt.
  • As a team leader of front-end team, clarify the demand with PMs, assess the tech stack options, manage the project timeline and build a code review process. 
  • Host several workshops regarding basic frontend/React to help junior frontend developers and backend developers in our team.
  • Design and develop a new log ETL system which accepts information from mobile/PC apps when they crash. The project includes an API server written in Golang and a DB writer written in Typescript. Also it utilize RabbitMQ, Minio and Elasticsearch to provide better user experience and faster development to production time.
  • Design and develop a new internal education and training  platform with BlitzJS, Prisma and Typescript. The website is the first NextJS project in our team. Originally the platform is developed with less-organized codebase and is really hard to maintain. Along with the nature of internal tool, it becomes the perfect project for us to experiment new technologies. 
  • Shared thoughts and tools (vite, webpack, and single-spa package) on Micro-Frontend and collab with other department to adopt in out cross-department CMS.
  • Developed a mobile news browsing app with React Native as an internal study project. 
  • Design and maintain multiple webview mobile apps for brokerages, including Yuanta and Huanan.
  • Design RWD web pages for the marketing department. 
  • Develop websites of member management systems for both internal demands and external customers, mostly brokers.
  • Surveyed the strength and weaknesses of GraphQL and shared with the team. It is used on the website of the member management system of Mitake.
  • Develop crawler service for 4 new news sources and maintain the service using node.js. 
  • Develop teamwork skills, including Git, Trello, CI/CD, Notion, abstract.
  • Co-work with one colleague developing a telegram bot to helping order lunch with node.js.

Stockfeel, Analyst, Oct 2018 ~ Jul 2019

  • Responsible for designing Stockfeel's own stock-picking system and roadmap for beginners in investing. 
  • Published 28 articles about company analysis and the concept of investment which helps me learn how to express complex concepts to people with no background knowledge. 
  • Assisted 7 2B projects, which covers multiple banks, Taiwan Power and Volvo. Helping them improve marketing efficiency by demonstrating their professional knowledge with plain text and images.

CLAW Capital, Analyst,  Jul 2017 ~ Oct 2018

  • Responsible for analyzing tech companies and updating financial models periodically, which helped me improve critical thinking and architecture design, 
  • Successfully suggested sell on Egis technology and buy on Cree.

Education

National Taiwan University, Bachelor’s Degree, Finance, 2013 ~ 2017

  • Developed fluent English communication skills from learning at Navarra University in Spain as an exchange student.
  • Developed logical thinking ability from learning how the financial system works. 
  • Improved teamwork skills ability as vice minister of Division of Career Development of Student Association and leader of the baseball team of Finance department.

Online-learning websites

  • Use online sources to learn from some of the best schools, including Columbia University and Yale University.
  • Consistently learn coding from online websites, mainly Udemy, since 2019.

Discord Bot enable rate other's joke


Github
Starting from a chat between friends, I decided to make a joke judge discord bot to enable everyone in the group rate other's jokes. 

The app is developed with NodeJS + Typescript. Data is stored in Supabase, a firebase alternative. The app is hosted on Fly.io 

Since July 17, the app has cumulated over 200 jokes.

Competitive Pokemon Data Wrapper


npm

Damage calculation formula is quite complex in Pokemon games but there are lots of demands for good tools. To improve developer experience, I decided to make a library that exports easy damage calculation function, and plan to add more utilities regarding to meta game or tournament results.

Bun, as an all-in-one toolkit, provides its own test methods, which I used in this project and tests are automated with Github Actions. 

I adopt changeset/cli  to facilitate the publishing process.

Sweat Map for Lululemon 

link
Developed with Nextjs, Tailwindcss, and firebase.
The service is deployed on Vercel. 

I took the case from Lululemon to develop a website to show the studios they partnered with and list the events they scheduled to attract customers. 

The site has been viewed over 16k times on 2023 2/12.

CMS of Lululemon sweat map site

Built with solidjs to help managers of Lululemon to update information on sweat map site more efficiently since the interface of firebase is not friendly for them.

CLI Game from Usogui based on Rust

Github

To expand my skill set and learn a strong typed language, I enrolled in a Rust course, which was eye-opening for me. The concept of borrower checker is frustrating and makes me doubt myself at the beginning. 

To take what I learned into practice, I decided to build a CLI application that let people play games from Comic Usogui, which is a masterpiece in my opinion.


Paragraph image 01 00@2x

Telegram lunch-order-bot

  • Developed a Telegram bot which can add/delete members, let Admin to set today's restaurant and notify members to order using Node.js.
  • Use Google sheet Api to get information of the restaurant and append order detail on correspond sheet whenever members order through telegram.
  • Improve efficiency for the team by reducing time wasting on notifying and ordering. 

Pokemon Team Builder

Developed with Svelte and tailwindcss as a side project. The traditional tool of competitive pokemon team building lacks a way to save notes for each team or individual pokemon, which makes improving a team less efficient.

Hobbies 


  • Competitive Pokemon video game: multiple top 4 titles in 80+ people tournaments. Which help me develop critical thinking, problem solving and decision making abilities.
  • Chess: mainly on chess.com
  • Read books: novels or books about history, philosophy, economy.