I am a lecturer. I have been teaching software development since 2007. During my teaching career, I have been teaching 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 have an interest in philosophy, psychology, history, economics, movies, literature, music, 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 (NLP) and computer vision (CV) algorithms and models to cloud-based enterprise systems.
I am a practical person who advocates learning and researching through hands-on experience. I have been developing software since 2000, working in various industry roles, including Software Engineer, Team Leader, Project Manager, Technical Architect, and Solution Architect. I have 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 for reference and create a clear, step-by-step process for high school students and absolute beginners to learn software development.
My long-term goal is to create a space for a small group to discuss software engineering, education and training, research, and to share experiences.
Please feel free to contact me or leave a comment if you have any questions or comments.