My Coding Marathon Challenge

From 2013, I stopped writing programming articles and and I don’t tend to write step by step guideline anymore. But this is my first article in my series to encourage ex-developer people and any developer that is afraid of learning and trying to learn new skill.

I stopped my coding career from 2013 and became a people manager from that time. I play various kind of manager roles from that time until now. I have high level overview of software development, but I don’t have hands-on experience for seven years until now. Before 2013, I have 9 months working as a Java developers, 2 years working as a .NET technical architect and 5 other year working as a teacher and training manager.

This year I started working for a new company, and my department develop software tools for that company, we have 100 developers. They are young, quick learner, good adaptability and flexibility. However, they are quite out-of-date vs. current technology trends. CI/CD is not yet a norm in this team, they are not familiar with Docker / Kubernetes, some of them even don’t know about automation unit tests. I don’t have any skill above, but I am aware about them because I was technical architect. I really want to encourage those people to learn and master new technology trends and then apply to their tools to help the company. Then it comes to an idea: I should start learn something new to me and write a diary to show them that learning new thing is not that hard. I have Java/Spring, C#/ASP.NET MVC, PHP / Laravel, and JavaScript / jQuery skills. They are quite outdate, but I have those skills. I don’t have Node.js, Go, React/Redux, Docker/K8S, AWS/GCP, Microservices skills. I want to learn all those skills and build some web applications as well as some data analytic samples as well. Then I can inspire the others to spend some more extra time at home to learn and try new things and then upgrade their skill.

I will spend 1–2 hours / day for learning and coding, and then I will share my learning progress as well as my sample code or my web application so that everyone can take a look at. I don’t know how quick and how far I can go, but I will code like a hobby to balance between work and life. Right now I’m in charge for everything of my team, I have to read and process nearly 100 emails / day, and communicate with counterparts. It means, I don’t have any time to read technical article in working time. I don’t have much time at nigh, because I have to play with my son. Therefor, I have to wait until he goes to sleep and then spend 2 hours from 0:00am to 2:00am for this marathon challenge. It will be an endless game, and I will update the progress on this blog.

I plan to learn some topics first:

  1. Basic of Node.js, MongoDB and docker to build some samples
  2. Basic of MERN stack
  3. Unit testing at back-end and front-end
  4. Build a monolithic e-commerce application by using MERN stack and deploy it on AWS/GCP and use docker-compose in development environment.
  5. Build CI/CD solution for the above application.
  6. Build a microservices project (this can be break to many small milestone), which covers
  • Reactive Programming
  • Full text search
  • SSO, Open ID Connect , JWT
  • PostGreSQL, MongoDB
  • Distributed Logging
  • Distributed Cache
  • REST, GraphQL
  • Kafka or Rabbit MQ
  • gRPC
  • Service Discovery & Health Check
  • K8S, Istio
  • CI/CD Pipeline
  • Infrastructure as code

If I can learn and build such a demo with 1–2 hrs studying a day, any developer can do that. I hope this activity will inspire the others to do some scouting.

Passion never fails!

Saigon, 16-Oct-2020