CharlesYang

Software architecture and engineering enthusiast helping companies build

SoftwareEngineering

Writing clean and maintainable code that gets the job done. Limit overhead and increase productivity

CloudArchitecture

Analyzing requirements and creating cost-effective, scalable, and secure cloud solutions

Central Philosophy

Questions I ask in every solution, project, and task

What are the requirements?

Ask the right questions. Turn business needs into technical requirements. Getting the requirements right for effortless maintenance and smooth scaling. Avoid costly rewrites, spaghetti code, infrastructural migrations, and other headaches.

What is the team comfortable with?

Write software to meet the requirements, not to use the latest and greatest JS framework. What's a suitable language? framework? database? Can the team move fast with the given technologies? Leverage the team's strengths to drive business value.

How will it scale?

Determine the network and storage requirements. Will traffic steadily increase? How will storage grow? What's our read-write ratio? Are there traffic spikes or is it consistent? Avoid technical headaches by planning for the future.

How can it be maintanable?

Use existing industry standards and best practices for designing software & systems. Write "self-documenting" code. Create a logical data model. Write tests, version control best practicies, and configure CI/CD.

Technology Stack

next.js logo

Next.js with TypeScript

Web framework of choice

tailwind css logo

Tailwind CSS

For style!

material tailwind logo

Material Tailwind

Convenient Tailwind CSS components

github actions logo

Github Actions

Continous deployment

aws cdk logo

AWS CDK

AWS Infrastructure as Code (IaC)

aws logo

Amazon Web Services

Cloud platform of choice