[  BLOGS  ]

Charley Wong, Software Engineer, and an Author, Highlighting tips on Web-based Application Implementation.

Charley Wong, Software Engineer, and an Author, Highlighting tips on Web-based Application Implementation.

Software programming has grown exponentially in complexity and volume over the years, especially since the past decade. There have been endless technologies entering the tech world now and then.

As technology grows, businesses must stay up to date and start acting at the same pace.

In our IT industry Expert Insights segment, we invite experienced IT professionals to discuss emerging technology developments, their influence on job trends and in-demand skills for job seekers.

We spoke with Senior Software Engineer Charley Wong to discover more about how coding has evolved and changed the current business needs and what are the best ways to implement web-based applications.

Who is Charley Wong?

Charley is a successful software engineer working at a senior position in San Francisco, California. He has a master's degree in computer science, and has worked in the research area using modelling and distributed computing (dry lab) to explore web lab questions.

He worked as a full-stack engineer for over six years in the beginning of his career, and is familiar with agile development frameworks and with Certified Scrum Master. He is well versed with the entire software development life cycle, including analysis, design, development, system architecture, deployment, testing, implementation, and support for both N-tier application systems.

Charley published a book entitled “Hands-on Reactive Programming in Angular with NgRx”.

Let's have a look at the insights.

Question 1. How do you keep up with new technologies and programming languages, and what are the must-learn programming languages?

JavaScript is the primary language for frontend, and there are two or three frameworks, such as React and Angular.

Java is a popular language for the backend, and there are well-developed frameworks based on Java. Python is often used for Data Science. Based on python, many packages exist, such as NumPy, Scikit, and PyTorch.

I am a full-stack software engineer, and web development is my routine job. The technologies are often used, including JavaScript, React, Angular, Java, Spring Boot and Spring Data.

To keep up with new technologies, I always check the new features and documents for the latest release of languages or frameworks I worked on. It is worth discussing new things with your friends and collaborators about recent trends and ideas.

Question 2. Would you like to share some tips on Web-based application implementation?

  • Choose infrastructure: not the best, but it suits your 3-5 years' needs and budget. Based on # of clients to choose hosting servers, Nginx vs Apache, w/ or w/o message queue techniques, w/ or w/o catching, databases.
  • Choose procedure: manual or automated
  • Choose languages: lots of options which suit your team and projects
  • Try to learn more business logic. The more business logic is mastered, the higher and better design for your implementation. With a broader understanding of the scopes of the business logic during the implementation, try refactoring your previous code to achieve a better implementation design.
  • Try to communicate with your collaborators: learn each other's skill details and how to build a higher level of implementation.
  • After finishing each project, summarize it from the design level and consider whether we can do a better design.

Question 3. Have you been in a situation where you had to troubleshoot and debug a complex application issue, and how did you approach the problem-solving process?

Yes, I did.

To solve the problem, we need to understand the business logic, how to map the business logic to UI behaviours, how to map UI elements to frontend objects or variables, how related API works, how to map frontend objects to backend objects, how to map backend objects to tables and columns.

Debug tools and breakpoints are essential to finding the reasons which cause bugs. Communicating with your team and collectors is very important.

Get to Know Our Expert

What's your mantra for success?

If you have a will, you will be successful.

What best interview advice can you give a Software engineer looking to set foot in the US IT industry?

The algorithm is required for all. For big companies, system design is required. For small companies or non-IT companies, experience and language details are required.

Taking part in conferences is suitable for expanding your views. In addition, reading professional books and thinking and practising with real projects improved my experiences and recognition.

Also, I am very interested in the fast developments of machine learning. I am not focusing on specific ML algorithms. I keep watching the evolution of new technologies and borrowing them for my topic. Trying to Improve my performance agitates me to think deeper and learn more.

Reading new scientific research/review papers and taking part in related conferences are two effective methods to catch new ideas for the interested topic.

What are the top programming languages, according to you?

  • Java,
  • Python,
  • JavaScript/TypeScript,
  • C++