Will Nguyen
Full Stack Engineer/Lead. Open to work remotely.
Languages
Ruby on Rails
Javascript
Python
Front-end
Angular
ReactJS / NextJS
Cloud
AWS

I am in charge of Brightree IoT Infrastructure which is AWS Cloud and premisses.

Working on multiple services such as Lambda, Dynamodb, WAF, Cognito, Eventbridge, SQS, SNS, Elasticache etc.

Others
ElasticSearch
GraphQL
Docker & Kubernetes
System Design
Distributed System
Serverless
Linux

I have started my career since 2013 - 11 years of experience in software development. Full Stack Developer with 4 years system design for IoT domain.

My Skills:

  • Working as Full Stack.
  • Ruby on Rails
  • Javascript (Nodejs, Reactjs, Nextjs).
  • Python: Serverless, Socket (TCP/IP) and Devops tasks.
  • System Design and Distributed Architecture.
  • Domains are job recruitment, IoT.
  • Event-Driven: Kafka, Rabbitmq, AWS EventBridge, SQS, SNS...
  • Database: PostgresQL, MySQL, Mongodb, Dynamodb.


Project Demo

Skill Builder https://skillbuilder.willnguyen.dev/

  • Backend: Nodejs, Ruby On Rails.
  • Frontend: Nextjs.
  • GraphQL [updating...]

Bundle of Nodejs, Nextjs.

------------------------------------------------------------------

Work History
Technical Lead
Brightree Pte LtdMar 2021 - Present

Manage IoT Infrastructure. Doing system designs. Leading team. Developing with multiple languages such as Ruby on Rails, Javascript and Python.

Senior Full Stack Ruby on Rails Developer
CloudStorm VenturesMar 2020 - Mar 2021

Re-write Mealsuite which is an healthcare project written in C# to Ruby on Rails app.

Senior Full Stack Ruby on Rails Developer
ITviecJun 2019 - Feb 2020
Full Stack Ruby on Rails Developer
ScoogetDec 2018 - Jun 2019

Scooget website. Social Network, Affiliate Marketing.

Full Stack Ruby on Rails Developer
DOU NetworkOct 2016 - Nov 2018

Working on multiple Logistic web and app.

Java Developer
CSCFeb 2015 - Oct 2016

Now the name changed to DXC. Global company, developing insurance product.

COBOL Developer
CapgeminiAug 2013 - Feb 2015

My first job. Insurance project.

My Experience in details

I manage AWS Cloud Infrastructure

  • Create VPC, manage EC2
  • Create load balancer and routing Target Group.
  • Manage SSL Certificates.
  • Manage S3
  • Create Severless by Lambda, Dynamodb, API Gateway.
  • Event driven by SQS, EventBridge
  • Use Cloudwatch for monitoring, debuging serverless.
  • Deploy by sam cli, cloudformation.
  • Deploy EKS.
  • Use Elasticache for Caching.
  • Use Cognito for authentication.
  • Manage Route 53 for domain.
  • Use CodeDeploy, CodeCommit, CodeBuild and CodePipe for CI/CD.
  • Absolutely, using RDS for databases such as MySQL, Postgres, Aurora.
  • Use WAF to protect VPC: rate limit, block IP etc.

We use AWS Cloud to build Infrastructure of IoT services.

Ruby on Rails

I mostly code Ruby on Rails for simple web server that we need development speed and regular deployment.

For exam, I developed Ostrich application for Symphony Creative Solution company. That is a logistic domain, it allows shipping company to create jobs and and trucking companies will bid jobs. This is B2B service so we don't have a lot of users, focusing on features. RoR is a good fit.

I developed https://itviec.com/ website which is for job hunting. This website we have a lot of users - thousands. Ruby on Rails is still a good fit. The ex-engineers started this app by RoR and Angular. I didn't see any problem with thousands of user until that time. I continue to develop my skill such as GraphQL, Elasticsearch, RSpec Unit Test etc. I also developed many applications but using RoR we have regular tech stacks such as Sidekiq, MySQL, Postgres etc along with AWS Cloud so I stop here for RoR.

NodeJS / NextJS

I started working with NodeJS when I joined Brightree. We use many other languages such as Ruby on Rails, Python, C++. I used NodeJS for serverless, developing lambda function to process sensor data. NodeJS is non-blocking IO language so it's good for concurrency. Ingesting sensor data is a job not requires heavy CPU. With serverless, this lambda scaled automatically. We never care about scaling. Along with NodeJS, we use dynamodb which is a good fit for high concurrency.

I also use NodeJS to develop my own website https://skillbuilder.willnguyen.dev/ Frontend developed by Nextjs.

Python

Python is used to develop lambda function and Devops tasks. There are some analytics for sensor data we developed in Python. There are many libraries for that job. Python is a good fit. Any job that needs heavy CPU, I consider to use Python and Ruby.

Linux

We have many Linux devices on vessels. I have experiences on managing service units, linux crontab, logrotating, monitoring and debugging. Deploying ruby on rails and c++ software to run as services. Working on standalone premises, it requires TCP/IP tech stack.

Event Driven

I use AWS EventBridge for cloud application (IoT). I use Kafka for offline premises servers. We have customers that they don't want to launch their system online. For exam, the energy storage system, they want to use it locally.

Kafka has event storage which is good for investigating, replaying events, recover sensor data lost.

Docker && Kubernetes

I use docker normally for development. Kubernetes is only for study, development. Because I found that Serverless is better for production. No devops, no issue with it. However, I still want to have a chance to manage it in production. It depends, many companies which have kubernetes as legacy. Or we might want to manage our own microservices, full controlling apps, long running background, not depending on cloud providers, or reducing cost etc.

We can use both kubernetes and serverless. Kubernetes is for long running background jobs. Serverless is for the rest tasks. Regarding my experience, I work mostly on serverless and EC2. Because this is current requirement. Doing many unnecessary tech stacks causing cost and complexity increased.