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 with TypeScript
Web framework of choice
Tailwind CSS
For style!
Material Tailwind
Convenient Tailwind CSS components
Github Actions
Continous deployment
AWS CDK
AWS Infrastructure as Code (IaC)
Amazon Web Services
Cloud platform of choice