What I do
I have more than 10 years' experience building software for internal
projects & external clients. Below is a quick overview of my main
technical skill sets and technologies I use. Want to find out more about
my experience? Check out my online resume.
Ruby & Rails
Building websites/web apps since the age of Ruby 1.8/Rails 3.2.
Using Ruby as the primary scripting language for daily tasks. Using
Rails mostly for websites/service/apps backends.
React, Angular & Vue
Building frontend with modern JavaScript frameworks. Using React for
widgets/components. Using Angular for SPA (Single Page Application).
Using Vue for a mix of both.
HTML, CSS & JavaScript
Building beautiful web front-end with HTML markup and CSS styling.
Handling smooth interactions with vanilla JavaScript.
Ionic & React-Native
Building cross-platform mobile apps with hybrid technologies: Ionic
for UI & PhoneGap/Cordova plugins for native functions, or React/JSX
for UI & React-Native to bridge to native code.
PHP & WordPress
Building branding websites using WordPress CMS. Using PHP for
developing customized themes & plugins. Using webhooks as API to
connect to other services for automation purposes.
Cloud Server Management
Managing cloud server/instances on AWS, Linode & DigitalOcean. Using
VPS from Linode & DigitalOcean projects without scaling
requirements. Using AWS for large-scale projects.
Database Management
Managing relational databases running on MySQL and PostgreSQL. Using
Redis for caching, message broker & key-value storage. Using
PostgreSQL JSONB as NoSQL databases.
Product Design
Designing products while keeping direct users in mind. Prototyping
with Sketch, animating with Principle, and Demonstrating with Figma.
What I am exploring
New technologies always fascinate me, and I never stop learning new skills
because I know it's the only way to maintain competitiveness and to
survive in this fast-evolving industry. Latterly, I'm exploring these
technologies below:
Docker, Kubernetes & Terraform
Managing environments for development and production has long been a
pain in the process of application development, especially for large
projects with multiple components/sub-systems. Containerizing with
docker, orchestrating with K8s, and provisioning with Terraform
unifies the process and makes engineers focus more on application
development.
Swift, SwiftUI & Combine
Swift finally turned 5.2 in 2019, and the language & API look stable
enough for native iOS app development. Also, with the introduction
of SwiftUI/Combine, a declaration way of building user interfaces is
much more friendly to engineers with a web development background.
Elixir & Phoenix
Elixir is a functional language running on Erlang VM with powerful
language features like pattern matching and super-fast performance.
Phoenix is a web framework written in Elixir, which provides a
full-stack toolbox ideal for modern web development.
Serverless
Serverless emerges as a new paradigm for web application
development, which removes the server layer from the stack. Writing
applications only in functions against AWS Lambda API and delegating
all maintenance jobs to the Cloud is a unique experience in
engineering.