About

I am a lecturer and have been teaching software development since 2007. During my career, I have taught the following courses:

  • Object-Oriented Programming
  • .NET Application Development
  • Web Application Development
  • Introduction to Software Engineering
  • Software Construction
  • Software Configuration Management
  • Software Architecture
  • Software Project Management
  • Software Engineering Capstone
  • Cloud Computing (Graduate Course)
  • Distributed Systems (Graduate Course)

I am interested in philosophy, psychology, history, economics, literature, music, movies, and software engineering research.

I hold a PhD in Computer Science. My main research areas include:

  • Software design, software architecture, software design patterns, multi-tenant architecture for enterprise systems;
  • Software process, software project management for managing enterprise software development projects;
  • Distributed algorithms and cloud-based architectures for enterprise systems;
  • Applying natural language processing and computer vision algorithms and models to cloud-based enterprise systems.

I am a practical person who advocates learning and researching through hands-on experience. Since 2000, I have been developing software and working in various industry roles, including Software Engineer, Team Leader, Project Manager, Technical Architect, and Solution Architect. I have also designed several successful commercial multi-tenant enterprise systems.

My experience includes:

  • Eliciting project ideas, defining scope, estimating and controlling size, cost, duration, and risks, developing prototypes and proof of concepts, managing software development, and improving processes;
  • Evaluating and proposing architectures and technologies for enterprise and multi-tenant software systems;
  • Selecting data structures, algorithms, programming languages, and frameworks to engineer desktop, web, mobile, cloud-based enterprise software, and games;
  • Developing enterprise software systems and their ecosystems (services, desktop clients, mobile clients, web applications, add-ons, and integration with 3rd party and legacy systems) using
    – C, C++, Windows API, C++ Builder, Cocos2d-x;
    – Objective C, Swift, iOS SDK;
    – Java, Android SDK, AndEngine;
    – HTML, JavaScript, CSS, C#, .NET Framework, Windows Forms, ASP.NET Web Forms, ASP.NET MVC, Windows Communication Foundation, ADO.NET, NHibernate, Entity Framework, Microsoft SQL Server, SQL Server Reporting Services, Oracle, DotNetNuke, Kentico, Amazon Web Services, Okta;
    – PHP, MySQL, Drupal, WordPress;
    – Node.js, Express, PostgreSQL;
    – R and R packages;
    – Apex, Salesforce Platform, and Lightning Component Framework; and
    – React, Bootstrap, and Flask.
  • Building Vietnamese speech recognition and synthesis models, photo editing software, text summarizer system using
    – Python, TensorFlow, Keras, scikit-learn;
    – OpenCV, Deep Speech, Tacotron;
    – PyTorch, StarGAN v2 and T5.

I welcome any feedback and suggestions for this website.

My short-term goal is to document my experiences and create a clear, step-by-step process to help high school students and absolute beginners learn software development.

My long-term goal is to use this website as a space where I can connect with people and explore opportunities in software engineering education, training, research, and career development.

Please feel free to contact me or leave a comment if you have any questions or comments.

(Visited 648 times, 1 visits today)

Software development and software engineering research