My name is Giang Pham and I am a Software Developer currently based in Newcastle, Australia. I graduated from the University of Newcastle with a Bachelor in Computing . Software Development has always been my primary focus and inspiration since I was 17. During my study at university I had the opportunity to expose my knowledge, I coded in a variety of languages including Matlab, Java, C, Python, and explored a wide range of computer science courses (data structures and algorithms, networking, database systems, operating systems and so on). When I was in the last year of study, one of the final projects I developed was in the .NET platform, and since then I started coding mostly in C# and the .Net. As a developer, searching for new ways of doing things is something I enjoy doing everyday . I am working for an IT company in Newcastle, my day-to-day duties are:
- Write code in C# and .NET/.NET Core conforming with object oriented design principles.
- Participate in full-stack development including Angular/Kendo, ASP.NET core API.
- Bring together component subsystems into a whole and ensure that those subsystems function together. Microsoft Azure services are being used frequently to make this possible.
- Build integration systems that connect on-prem to online (Azure). Service Bus queues/topics, Kafka, Akka.Net are being used for messaging and distributed computing.
- Migrate applications and their data from on-prem to online using SSIS and migration tools.
- Set up & monitor orchestrated environments using Kubernetes to allow CI/CD in Azure DevOps, ELK (ElasticSearch, Logstash & Kibana) for nodes’ metrics and containers’ logs.
- Develop & Dockerize applications in conjunction with Kubernetes, Azure DevOps pipelines and GitFlow to enable automation and recovery when required.
- Infrastructure as code using Terraform and Ansible, when dealing with Azure resources.
- Ensure all code are fully tested prior to deployment. XUnit2 and FluentAssetions are being used for Unit Tests and Selenium for the UI Tests.
- Practice TDD, BDD in writing unit tests.
- Practice design patterns in writing C# code
- Create system documentation to support both technical staff and end users.
- Troubleshoot and enhance existing systems.
- Interact directly with other developers and development manager.
I decided to create this site for various reasons. I believe sharing the knowledge I have is as important as learning something new. If you have any questions, please shoot me message from the contact page. Also, I can be reached via the Twitter or GitHub links located on the right side of this page.