myself
- สรุป software development journey ปี 2023
- สรุป software development journey ปี 2022
- สรุป software development journey ปี 2021
- สรุป software development journey ปี 2019-2020
- Welcome to my blog!
agile
- สรุปสิ่งที่ได้เรียนรู้จาก Agile Tour Bangkok 2023
- ความสิ้นเปลือง 7 (+1) อย่างในการพัฒนา software
- สรุปสิ่งที่น่าสนใจจากการอ่าน The Grug Brained Developer
- พูดถึงความสับสนที่มีในตัวเองใน Agile Framework ต่าง ๆ
- สิ่งที่ได้จากการอ่าน Top 10 Mistakes Organizations Make to Become Agile
- เรื่อง(ไม่)ปกติที่มักจะเกิดขึ้นใน standup meeting
- คำปฏิญาณตนของ Programmer
- คำถามที่น่าสนใจในการนำแนวคิด Agile มาใช้ (Part 2)
- คำถามที่น่าสนใจในการนำแนวคิด Agile มาใช้ (Part 1)
spring
- เส้นทางการ upgrade ไปสู่ Spring Boot 3
- สรุปแนวทางการแก้ไข dependencies จาก OWASP dependency check
- จดบันทึกวิธีการ integrate Amazon Kinesis กับระบบที่พัฒนาใน Java Spring Boot
- จะทำชุดการทดสอบอัตโนมัติกับระบบที่เชื่อมกับ AWS ได้อย่างไร
- ข้อมูลน่าสนใจที่นำมาแสดงใน Spring Boot Actuator
- สร้างระบบ Web Template ใน Spring framework ด้วย Mustache
- บันทึกการเก็บ metrics เกี่ยวกับ consumer ใน API เพื่อวัด business value (Part 1)
- ว่าด้วยข้อเสียของ field injection ใน Spring framework
- จัดการ error response ของ OAuth2 authentication บน Spring
- ลองเชื่อม Swagger UI กับ Azure Active Directory OAuth
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 3)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 2)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 1)
- จด Tips เล็กๆน้อยๆ การทำ Configuration บน local environment ของ Spring
- บันทึกการทำ Integration testing ด้วย Spring Embedded Kafka
- จัดกลุ่มการทดสอบด้วย Gradle TestSets plugin บน Spring Boot
gradle
- แนะนำวิธีตรวจสอบ dependency ด้วย Gradle แบบง่าย ๆ
- การ migrate Java project ไป version ใหม่ต้องคำนึงถึงอะไรบ้าง
- Gradle plugin สำหรับค้นหา dependency version ใหม่
- จัดกลุ่มการทดสอบด้วย Gradle TestSets plugin บน Spring Boot
testing
- วิธีแก้ไขปัญหา Unit Test ที่เกี่ยวกับ DateTime ใน .NET ให้รองรับ Locale ไทย
- ว่าด้วยเรื่องของการทดสอบใน Staging environment
- คิดให้ดีก่อนที่จะใช้ theme ในการพัฒนา frontend web app
- บันทึกการแบ่งปัน Test-driven development
- แก้ปัญหา race condition ของการ run database migration ใน integration test ของระบบภาษา Go
- สวัสดี Approval tests
- 2 รูปแบบในการใช้ประโยชน์จาก code coverage
- สรุปสิ่งที่น่าสนใจจากการอ่าน The Grug Brained Developer
- เปรียบเทียบการเขียนชุดการทดสอบแบบ Classicist vs Mockist
- ทำความรู้จักกับ PIT mutation testing
- บันทึกการติดตั้ง Angular 11 testing ด้วย Karma และ PhantomJS
- ประยุกต์การใช้งาน Pre-request Script ใน Postman สำหรับการทดสอบ API
- บันทึกการทำ Performance Testing ด้วย Gatling
- จัดกลุ่มการทดสอบด้วย Gradle TestSets plugin บน Spring Boot
integration-testing
- จดบันทึกวิธีแก้ Connection refused ระหว่าง integration test โดยใช้ Testcontainers
- จะทำชุดการทดสอบอัตโนมัติกับระบบที่เชื่อมกับ AWS ได้อย่างไร
- บันทึกการทดสอบ Database ด้วย Testcontainers ใน Docker environment
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 2)
- บันทึกการทำ Integration testing ด้วย Spring Embedded Kafka
- จัดกลุ่มการทดสอบด้วย Gradle TestSets plugin บน Spring Boot
acceptance-testing
performance-testing
gatling
database-migration
- แก้ปัญหา race condition ของการ run database migration ใน integration test ของระบบภาษา Go
- บันทึกการแบ่งปัน Database migration บน Go
- บันทึกการทำ Database migration ด้วย Flyway
database
- ยิ่งมีข้อมูลน้อย bug ยิ่งน้อยลงจริงหรือ
- ตอบคำถามเรื่องของการป้องกัน SQL injection บนระบบภาษา Go
- บันทึกการแบ่งปัน Database migration บน Go
- แนวทางการออกแบบ architecture สำหรับ workload ที่ write เยอะ ๆ
- จะใช้ data structure แบบไหนในการเก็บข้อมูลบน Redis
- สิ่งที่น่ารู้เกี่ยวกับ ID ใน table ที่ database สร้างให้ผ่าน JPA
- แบ่งปันแนวทางการป้องกัน PII บน database ด้วย data masking ฉบับปี 2022
- เพิ่มความปลอดภัยในการเข้าถึง Amazon RDS ด้วย Bastion host
- บันทึกข้อควรระวังในการทำ database indexing
- บันทึกการทำ Database migration ด้วย Flyway
flyway
architecture
- ยิ่งมีข้อมูลน้อย bug ยิ่งน้อยลงจริงหรือ
- ว่าด้วยเรื่องของแนวทางในการออกแบบ SaaS ผ่าน multi-tenant architecture
- แนวทางการออกแบบ architecture สำหรับ workload ที่ write เยอะ ๆ
- ว่าด้วยเรื่องของ Modular Monolith
- Clean architecture มันดีสำหรับปี 2022 ไหม
- เราจำเป็นต้องมี Backend-for-frontend ไหม
- สรุปสิ่งที่ได้เรียนรู้จาก Architecture Night November 2021
- สรุปสิ่งที่ได้เรียนรู้จาก workshop Software Architecture ปี 2019
- รู้จักกับ Software architecture แบบง่ายๆ จาก Architecture for Everyone
- ว่าด้วยเรื่องของ Evolutionary architecture กับทีม development
adr
monitoring
- ข้อมูลน่าสนใจที่นำมาแสดงใน Spring Boot Actuator
- บันทึกการเก็บ metrics เกี่ยวกับ consumer ใน API เพื่อวัด business value (Part 1)
- สรุปการแบ่งปันในทีมเรื่อง Monitoring ระบบด้วย Prometheus และ Grafana
prometheus
- บันทึกการเก็บ metrics เกี่ยวกับ consumer ใน API เพื่อวัด business value (Part 1)
- สรุปการแบ่งปันในทีมเรื่อง Monitoring ระบบด้วย Prometheus และ Grafana
grafana
haproxy
load-balancer
wakatime
productivity
- แนะนำ Amazon Q สำหรับการทำ AWS CLI autocompletion
- ลองใช้งาน Broadcast feature ใน iTerm2
- สวัสดี DevToys เครื่องมือสารพัดประโยชน์สำหรับ developer
- CCMenu ตอนนี้รองรับ Github Actions workflow แล้วนะ
- วิธีการตั้งค่าเพื่อเปิดการ zoom หน้าจอใน macOS
- เราจะวัด Productivity ของเหล่า Developer ได้อย่างไร
- รวบรวมเครื่องมือ Productivity ที่น่าสนใจในเดือนธันวาคม 2023
- รวบรวมเครื่องมือ Productivity ที่น่าสนใจในเดือนพฤษภาคม 2023
- รวบรวมเครื่องมือ Productivity ที่น่าสนใจในเดือนกุมภาพันธ์ 2023
- แนะนำเครื่องมือ Steampipe สำหรับ query AWS resource ด้วย SQL
- แนะนำเครื่องมือ CCMenu สำหรับดูสถานะ CICD server
- แนะนำ Midnight Commander เครื่องมือสำหรับการจัดการ file บน terminal
- ลดเวลาการ setup บนคอมใหม่ด้วย Chezmoi
- แนะนำ direnv เครื่องมือในการจัดการ local environment variables
- แนะนำ Bluesnooze - โปรแกรมตัด Bluetooth ตอน sleep สำหรับ macOS
- แนะนำ Clipy - clipboard สำหรับ macOS
- iTerm2 ก็สามารถ encode Base-64 ได้นะ
- ลอกแนวทางการ setup environment บน macOS ของผมมาใน Windows
- บันทึกการแบ่งปัน Productivity tools สำหรับ macOS ให้กับคนในบริษัท
- บันทึกและแชร์ Terminal ด้วย asciinema
- แสดง Shortcut แบบ real-time บน IntelliJ IDEA ด้วย Presentation Assistant Plugin
- Track การ coding ของตนเองด้วย WakaTime
kafka
configuration
azure
- วิธี run containers บน Azure Container Apps แบบรองรับหลาย port
- แก้ปัญหา Azure Application Gateway อยู่ ๆ ก็เกิด 502 Bad Gateway
- บันทึกการทำ post-deployment check บน Azure Container Apps
- ทำให้ Azure DevOps pipeline เป็น dynamic ด้วย Replace Tokens task
- สร้าง cron job ใน Azure Container Apps ผ่าน Dapr
- สวัสดี Azure Container Apps
- Experience Using Azure Databricks at ExxonMobil for a month
- Deploy AKS cluster พร้อมกับ Datadog agent ผ่าน Terraform
- ลองเชื่อม Swagger UI กับ Azure Active Directory OAuth
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 3)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 1)
owasp
- สรุปแนวทางการแก้ไข dependencies จาก OWASP dependency check
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 3)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 2)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 1)
security
- เข้าใจ OpenID Connect Discovery Endpoint และการแก้ปัญหาเมื่อเชื่อมต่อกับ Auth0
- ตอบคำถามเรื่องของการป้องกัน SQL injection บนระบบภาษา Go
- เพิ่งรู้ว่าเราสามารถ share 1Password item แบบปลอดภัยได้
- แบ่งปันแนวทางการป้องกัน PII บน database ด้วย data masking ฉบับปี 2022
- สรุปแนวทางการแก้ไข dependencies จาก OWASP dependency check
- แนะนำ endoflife.date สำหรับการตรวจสอบ software version
- เพิ่มความปลอดภัยในการเข้าถึง Amazon RDS ด้วย Bastion host
- แบ่งปันประสบการณ์ครั้งแรกกับการทำ threat modeling workshop
- สรุปแนวทางการลบ credentials ออกจาก Git (อย่างถาวร) จาก GitGuardian
- จดปัญหาที่เจอเกี่ยวกับ MySQL และ TLS v1.2 บน Java
- จัดการ error response ของ OAuth2 authentication บน Spring
- ลองเชื่อม Swagger UI กับ Azure Active Directory OAuth
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 3)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 2)
- มาทำ API Security ใน Spring Boot ตาม OWASP API Security Project กัน (Part 1)
swagger
oauth
- จัดการ error response ของ OAuth2 authentication บน Spring
- ลองเชื่อม Swagger UI กับ Azure Active Directory OAuth
intellij
- วิธีการ debug Angular application ใน Jetbrains IDE (update ปี 2021)
- แสดง Shortcut แบบ real-time บน IntelliJ IDEA ด้วย Presentation Assistant Plugin
ide
- วิธีใช้งาน JetBrains IDE กับ aws-vault
- วิธีการ debug Angular application ใน Jetbrains IDE (update ปี 2021)
- แสดง Shortcut แบบ real-time บน IntelliJ IDEA ด้วย Presentation Assistant Plugin
devops
docker
- แนะนำ Dive เครื่องมือสำหรับวิเคราะห์ Docker image แบบละเอียด
- แก้ปัญหา race condition ของการ run database migration ใน integration test ของระบบภาษา Go
- บันทึกการแก้ปัญหา Docker exec format error บน Kubernetes
- จดบันทึกวิธีแก้ Connection refused ระหว่าง integration test โดยใช้ Testcontainers
- บันทึกการประหยัดเวลาในการ build Docker image ด้วย parallel mode
- บันทึกวิธีการติดตั้ง Docker Buildkit ใน Colima สำหรับ Apple silicon
- ลองใช้ Colima แทน Docker Desktop on macOS
- บันทึกการทดสอบ Database ด้วย Testcontainers ใน Docker environment
- นำ Docker image จาก non-production ขึ้น production cluster บน OpenShift
openshift
jenkins
skopeo
python
- บันทึกสิ่งที่น่าสนใจจาก PyCon Thailand 2023
- สวัสดี Poetry สำหรับจัดการ dependency บน Python project
- เปลี่ยน version ของ Python ด้วย pynenv
aks
- แก้ปัญหา Azure Application Gateway อยู่ ๆ ก็เกิด 502 Bad Gateway
- Deploy AKS cluster พร้อมกับ Datadog agent ผ่าน Terraform
datadog
- วิธีการตั้งค่า source tag สำหรับ Datadog logging ใน Kubernetes
- บันทึกปัญหา Datadog Agent Unauthorized ในการดึงข้อมูล Kubernetes Cluster
- มาเปิด Logs กับ APM ของ Datadog ใน Java application ที่ deploy บน Kubernetes
- Deploy AKS cluster พร้อมกับ Datadog agent ผ่าน Terraform
terraform
- บันทึกการแบ่งปันเรื่อง Infrastructure-as-a-Code ผ่าน Terraform ในบริษัท
- Deploy AKS cluster พร้อมกับ Datadog agent ผ่าน Terraform
azure-devops
- Rollback Kubernetes resources อย่างปลอดภัยบน Helm อย่างไร
- ทำให้ Azure DevOps pipeline เป็น dynamic ด้วย Replace Tokens task
- ลดความซับซ้อนในการใช้ Azure KeyVault ใน Azure DevOps ด้วย Variable groups
- จดวิธี trigger Azure DevOps pipeline ผ่านอีก pipeline นึง
cicd
- ความแตกต่างในการใช้งาน git pull กับ git pull rebase
- CCMenu ตอนนี้รองรับ Github Actions workflow แล้วนะ
- แนะนำเครื่องมือที่ใช้สร้าง dashboard view สำหรับ GitHub Actions
- แนะนำเครื่องมือ CCMenu สำหรับดูสถานะ CICD server
- การ migrate Java project ไป version ใหม่ต้องคำนึงถึงอะไรบ้าง
- Deploy Angular application บน Local Kubernetes
- บันทึกการแบ่งปันเรื่อง Version Control ในบริษัท
- จดวิธี trigger Azure DevOps pipeline ผ่านอีก pipeline นึง
tools
- แนะนำ Dive เครื่องมือสำหรับวิเคราะห์ Docker image แบบละเอียด
- แนะนำ Amazon Q สำหรับการทำ AWS CLI autocompletion
- สวัสดี DevToys เครื่องมือสารพัดประโยชน์สำหรับ developer
- CCMenu ตอนนี้รองรับ Github Actions workflow แล้วนะ
- แนะนำเครื่องมือที่ใช้สร้าง dashboard view สำหรับ GitHub Actions
- สวัสดี Fern สำหรับสร้าง API documentation และ SDK
- ก้าวแรกสู่สังเวียน GitHub Copilot
- จดวิธีการปิดไม่ให้ Global Protect VPN run เองทุกครั้งที่เปิดเครื่อง macOS
- Run Git hooks ในหลาย ๆ project ด้วย pre-commit
- เราจะนำ technology อะไรมาใช้ในการทำ code scaffolding
- แนะนำ extension ในการแก้ไข Solution file ด้วย Visual Studio Code
- บันทึกและแชร์ Terminal ด้วย asciinema
solid
end-to-end-testing
cucumber
databricks
spark
conference
- บันทึกสิ่งที่น่าสนใจจาก PyCon Thailand 2023
- สรุปสิ่งที่ได้เรียนรู้จาก Agile Tour Bangkok 2023
- สรุปสิ่งที่น่าสนใจจากงาน XConf Thailand 2023
- สรุปสิ่งที่น่าสนใจจากงาน AWS Cloud Day Thailand (ส่วน Developer Lounge)
- บันทึกประสบการณ์การเป็นหนึ่งในทีมจัดงาน Away Day ให้กับบริษัท
- สรุปสิ่งที่น่าสนใจจากงาน XConf Thailand 2022
- สิ่งที่น่าสนใจจากงาน Don’t Repeat Yourself: Accelerate the initial phase of software development with common framework and enablement tools
scala
refactoring
- Refactoring ก็มี Manifesto เหมือนกันนะ
- สิ่งที่ได้เรียนรู้จากการทำ Composite Refactoring
- ทำการ Refactor โค้ด Scala ด้วย High-order function
azure-keyvault
version-control
- บันทึกการจัดการ Git configuration แยกกันในแต่ละ project
- เรียนรู้การทำ Branching บน Git ผ่าน learngitbranching.js.org
- บันทึกการแบ่งปันเรื่อง Version Control ในบริษัท
git
- ความแตกต่างในการใช้งาน git pull กับ git pull rebase
- การวิเคราะห์ code และทีมพัฒนา จาก Git Log
- แก้ไข Git author ของทุก commit ใน repository ด้วย filter-repo
- บันทึกการจัดการ Git configuration แยกกันในแต่ละ project
- สรุปแนวทางการลบ credentials ออกจาก Git (อย่างถาวร) จาก GitGuardian
- เรียนรู้การทำ Branching บน Git ผ่าน learngitbranching.js.org
- บันทึกการแบ่งปันเรื่อง Version Control ในบริษัท
big-data
- จดคำถามจาก session Data Mesh: A paradigm shift towards Domain Oriented Data Platform
- ทำความรู้จัก Amazon Deequ กับการจัดการ Data quality
data-quality
deequ
iterm2
- ลองใช้งาน Broadcast feature ใน iTerm2
- iTerm2 ก็สามารถ encode Base-64 ได้นะ
- บันทึกการแบ่งปัน Productivity tools สำหรับ macOS ให้กับคนในบริษัท
kubernetes
- วิธีการตั้งค่า source tag สำหรับ Datadog logging ใน Kubernetes
- ครั้งแรกกับการ upgrade EKS cluster
- บันทึกปัญหา Datadog Agent Unauthorized ในการดึงข้อมูล Kubernetes Cluster
- ว่าด้วยเรื่องของแนวทางในการออกแบบ SaaS ผ่าน multi-tenant architecture
- ลองใช้งาน Broadcast feature ใน iTerm2
- บันทึกการแก้ปัญหา Docker exec format error บน Kubernetes
- Rollback Kubernetes resources อย่างปลอดภัยบน Helm อย่างไร
- Deploy Angular application บน Local Kubernetes
- บันทึกการแบ่งปัน Productivity tools สำหรับ macOS ให้กับคนในบริษัท
postman
java
- สิ่งที่ได้เรียนรู้จากการทำ Composite Refactoring
- สิ่งที่น่ารู้เกี่ยวกับ ID ใน table ที่ database สร้างให้ผ่าน JPA
- ทำความรู้จักกับ Rule engine บนภาษา Java
- การ migrate Java project ไป version ใหม่ต้องคำนึงถึงอะไรบ้าง
- Gradle plugin สำหรับค้นหา dependency version ใหม่
- ทำความรู้จักกับ PIT mutation testing
- จดบันทึกวิธีการ integrate Amazon Kinesis กับระบบที่พัฒนาใน Java Spring Boot
- สรุป Libraries และ APIs ของภาษา Java ฉบับสิ้นคิดประจำปี 2021
- จดปัญหาที่เจอเกี่ยวกับ MySQL และ TLS v1.2 บน Java
- ข้อควรระวังการใช้งาน Lombok library ในภาษา Java
lombok
data-engineering
data-science
data-mesh
windows
linux
- บันทึกการแก้ปัญหา /bin/bash: - : invalid option ใน Linux EC2 โดยเปลี่ยน Line Separator
- แนะนำ Midnight Commander เครื่องมือสำหรับการจัดการ file บน terminal
- ลอกแนวทางการ setup environment บน macOS ของผมมาใน Windows
fish-shell
angular
- Deploy Angular application บน Local Kubernetes
- วิธีการ debug Angular application ใน Jetbrains IDE (update ปี 2021)
- บันทึกการติดตั้ง Angular 11 testing ด้วย Karma และ PhantomJS
karma
phantomjs
firebase
javascript
web-push
progressive-web-application
debugging
css
event-driven-architecture
- ลองเขียน specification สำหรับ event-driven architecture ด้วย AsyncAPI
- ประยุกต์แนวคิด Event-driven architecture pattern กับ messaging queue
messaging-queue
- แนวทางการออกแบบ architecture สำหรับ workload ที่ write เยอะ ๆ
- ประยุกต์แนวคิด Event-driven architecture pattern กับ messaging queue
activemq
aws
- วิธีใช้งาน JetBrains IDE กับ aws-vault
- ครั้งแรกกับการ upgrade EKS cluster
- แนะนำ Amazon Q สำหรับการทำ AWS CLI autocompletion
- บันทึกการจัดระเบียบ AWS IAM permission ภายในองค์กร
- การ sync AWS CloudFormation กับ Git โดยใช้ Git Sync
- พัฒนา AWS Lambda บน local environment ด้วย Serverless และ Localstack
- สรุปสิ่งที่น่าสนใจจากงาน AWS Cloud Day Thailand (ส่วน Developer Lounge)
- แนะนำเครื่องมือ Steampipe สำหรับ query AWS resource ด้วย SQL
- เพิ่มความปลอดภัยในการเข้าถึง Amazon RDS ด้วย Bastion host
- จดบันทึกวิธีการ integrate Amazon Kinesis กับระบบที่พัฒนาใน Java Spring Boot
- จะทำชุดการทดสอบอัตโนมัติกับระบบที่เชื่อมกับ AWS ได้อย่างไร
- มา Secure AWS credentials บน local machine ด้วย aws-vault กัน
credentials
infrastructure-as-a-code
mustache
web-template-system
macos
- ลองใช้งาน Broadcast feature ใน iTerm2
- วิธีการตั้งค่าเพื่อเปิดการ zoom หน้าจอใน macOS
- แนะนำ Bluesnooze - โปรแกรมตัด Bluetooth ตอน sleep สำหรับ macOS
- แนะนำ Clipy - clipboard สำหรับ macOS
- iTerm2 ก็สามารถ encode Base-64 ได้นะ
clipy
elasticsearch
- สรุปสิ่งที่ได้เรียนรู้เกี่ยวกับ Elasticsearch ปี 2021 (Part 2)
- สรุปสิ่งที่ได้เรียนรู้เกี่ยวกับ Elasticsearch ปี 2021 (Part 1)
elk-stack
mysql
tls
bluesnooze
library
book
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนพฤศจิกายน 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนตุลาคม 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนสิงหาคม 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนกุมภาพันธ์-มีนาคม 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนมกราคม 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือช่วงครึ่งหลังของปี 2023
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือช่วงครึ่งแรกของปี 2023 (ตอนที่ 2)
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือช่วงครึ่งแรกของปี 2023
- สรุปสิ่งที่ได้จากการอ่านหนังสือ Flawless Consulting
- สรุปจากการอ่านหนังสือ นี่เราใช้ชีวิตยากเกินไปหรือเปล่านะ
asyncapi
specification
nodejs
pnpm
time-management
soft-skill
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนพฤศจิกายน 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนตุลาคม 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนสิงหาคม 2024
- คุณสมบัติในการเป็น software engineer ที่ดีจาก Microsoft
- ถอดบทเรียน consulting จาก The Orange Juice Test
- สรุปสิ่งที่น่าสนใจจาก Webinar: Act like a tech lead
- แนวคิดและแนวปฏิบัติในการให้ feedback กับเพื่อนร่วมงาน
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนกุมภาพันธ์-มีนาคม 2024
- แนวปฏิบัติในการเป็น mentor สำหรับนักพัฒนา software
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือเดือนมกราคม 2024
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือช่วงครึ่งหลังของปี 2023
- บันทึกครั้งแรกกับการพูดใน public conference
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือช่วงครึ่งแรกของปี 2023 (ตอนที่ 2)
- สิ่งที่ได้เรียนรู้จาก workshop เรื่อง Ego
- สิ่งที่ได้เรียนรู้จากการไปเข้า course เกี่ยวกับ consulting
- บันทึกการเป็นคนจัดกิจกรรม Toastmaster ในบริษัท
- สิ่งที่ได้เรียนรู้จากการอ่าน(ฟัง)หนังสือช่วงครึ่งแรกของปี 2023
- แนะนำ Johari window เพื่อรู้จักคนในทีมกันมากยิ่งขึ้น
- Soft skill สำหรับผู้นำในทีม consulting
- สรุปสิ่งที่น่าสนใจจากการอ่าน The Grug Brained Developer
- ถามคำถามยังไงให้ได้ประโยชน์ทั้งคนถามและคนรับ
- สรุปสิ่งที่ได้จากการอ่านหนังสือ Flawless Consulting
- ว่าด้วยเรื่องของ Collective brain fog
- สรุปสิ่งที่น่าสนใจจาก Stakeholder management training ปี 2022
- ว่าด้วยเรื่องของ Non-violent communication
- แบ่งปันแนวทางการจัดการกับเวลาผ่าน Eisenhower Matrix
spring-boot-actuator
docker-compose
- บันทึกการประหยัดเวลาในการ build Docker image ด้วย parallel mode
- บันทึกการทดสอบ Database ด้วย Testcontainers ใน Docker environment
testcontainers
- จดบันทึกวิธีแก้ Connection refused ระหว่าง integration test โดยใช้ Testcontainers
- จะทำชุดการทดสอบอัตโนมัติกับระบบที่เชื่อมกับ AWS ได้อย่างไร
- บันทึกการทดสอบ Database ด้วย Testcontainers ใน Docker environment
direnv
environment-variables
localstack
- พัฒนา AWS Lambda บน local environment ด้วย Serverless และ Localstack
- จะทำชุดการทดสอบอัตโนมัติกับระบบที่เชื่อมกับ AWS ได้อย่างไร
threat-modeling
kinesis
feature-flag
feature-toggle
branching
split.io
pit
mutation-testing
software-release
practice
- การอ่าน code เป็นทักษะ
- ว่าด้วยเรื่องของการทดสอบใน Staging environment
- ความแตกต่างในการใช้งาน git pull กับ git pull rebase
- บันทึกการแบ่งปัน Database migration บน Go
- Refactoring ก็มี Manifesto เหมือนกันนะ
- ตกลงแล้วเราจะต้องมีประชุมจริง ๆ ไหมนะ
- ว่าด้วยเรื่องของกระบวนความคิดกว่าจะมาเป็น engineering practices ต่าง ๆ
- 2 รูปแบบในการใช้ประโยชน์จาก code coverage
- ว่าด้วยเรื่องของ Platform thinking
- สรุปสิ่งที่น่าสนใจจาก session หัวข้อ How do we build quality in the software development process?
- Feature lead ลองทำแล้วได้อะไรมากกว่าที่คิด
- 3 สิ่งที่ทีมสามารถพัฒนาการทำงานได้โดยที่ไม่ต้องออกแรงเยอะ
- เรื่อง(ไม่)ปกติที่มักจะเกิดขึ้นใน standup meeting
- 9 แนวทางปฏิบัติที่ส่งเสริมต่อคุณภาพของการส่งมอบ software
- คำปฏิญาณตนของ Programmer
- เราต้องเตรียมอะไรบ้างในการ release ระบบ
dependencies
career
- คุณสมบัติในการเป็น software engineer ที่ดีจาก Microsoft
- สรุปสิ่งที่น่าสนใจจาก Webinar: Act like a tech lead
- แนวปฏิบัติในการเป็น mentor สำหรับนักพัฒนา software
- สรุปสิ่งที่น่าสนใจจากการอ่าน The Grug Brained Developer
- Developer ควรจะเก่งหลาย ๆ ด้านหรือเชี่ยวชาญเฉพาะด้าน
- สิ่งที่ได้เรียนรู้จากการทำงานแนว consulting มา 1 ปี
- ว่าด้วยเรื่องของ Senior Developer
chezmoi
backend-for-frontend
unit-testing
- คิดให้ดีก่อนที่จะใช้ theme ในการพัฒนา frontend web app
- บันทึกการแบ่งปัน Test-driven development
- เปรียบเทียบการเขียนชุดการทดสอบแบบ Classicist vs Mockist
test-driven-development
- บันทึกการแบ่งปัน Test-driven development
- ทบทวนเรียน Laravel จากการเขียน test
- เปรียบเทียบการเขียนชุดการทดสอบแบบ Classicist vs Mockist
rule-engine
ethics
midnight-commander
technology-radar
- สิ่งที่น่าสนใจจาก Thoughtworks Tech Radar ฉบับที่ 28
- สิ่งที่น่าสนใจจาก Thoughtworks Tech Radar ฉบับที่ 27
- สิ่งที่น่าสนใจจาก Thoughtworks Tech Radar ฉบับที่ 26
clean-architecture
colima
- บันทึกวิธีการติดตั้ง Docker Buildkit ใน Colima สำหรับ Apple silicon
- ลองใช้ Colima แทน Docker Desktop on macOS
domain-driven-design
- บันทึกทบทวนความเข้าใจในการใช้ Tactical Domain-Driven Design
- 3 Technique ในการใช้แนวคิด Domain-driven design บน Legacy code
automation
- Syntax ที่ได้เรียนรู้จากการเขียน Makefile เพื่อ run script
- แนวทางการสร้างเครื่องมือเพื่อ automate งาน
rest
api
- สวัสดี Fern สำหรับสร้าง API documentation และ SDK
- ว่าด้วยเรื่องของ API response สำหรับข้อมูลที่เป็น optional
technique
- การวิเคราะห์ code และทีมพัฒนา จาก Git Log
- บันทึกกฎในการเขียน prompt ที่ดีและง่ายและน่าทำตาม
- แนวทางการทำงานร่วมกันของ Platform team และ consumer ของพวกเขา
- แนะนำ Johari window เพื่อรู้จักคนในทีมกันมากยิ่งขึ้น
- Feature lead ลองทำแล้วได้อะไรมากกว่าที่คิด
design
- ยิ่งมีข้อมูลน้อย bug ยิ่งน้อยลงจริงหรือ
- แนะนำเครื่องมือ The Tarot Cards of Tech สำหรับ brainstorming
volunteer
social-impact
data-masking
jpa
oop
programming
- ทบทวนเรียน Laravel จากการเขียน test
- ว่าด้วยการเลือกแนวทางในการจัดการกับ exception ในระบบ
- แบ่งปัน Code Kata สำหรับปูพื้นฐานภาษา C#
- สรุปการเรียน Object-oriented Programming ใหม่ในปี 2022
away-day
accessibility
- สรุปสิ่งที่น่าสนใจจาก session Accessibility APIs in Android
- แบ่งปันประสบการณ์การเข้า workshop เกี่ยวกับ Disabilities
android
user-experience
scrum
extreme-programming
travel
- บันทึกการไปเที่ยว(ปลีกวิเวก)ที่เชียงคาน ปี 2023
- บันทึกการไปเที่ยว Taiwan ปี 2022
- บันทึกการไปเที่ยว Tokyo ปี 2022
github
github-action
survey
platform
- บันทึกครั้งแรกกับการพูดใน public conference
- แนวทางการเลือก technology สำหรับ Content Management System ในปี 2023
- แนวทางการทำงานร่วมกันของ Platform team และ consumer ของพวกเขา
- เราจะนำ technology อะไรมาใช้ในการทำ code scaffolding
- สรุปสิ่งที่ได้เรียนรู้จากการทำ project เกี่ยวกับ Backstage
- Host frontend แบบไว ๆ ด้วย Vercel
- ว่าด้วยเรื่องของ Platform thinking
c-sharp
- วิธีแก้ไขปัญหา Unit Test ที่เกี่ยวกับ DateTime ใน .NET ให้รองรับ Locale ไทย
- แบ่งปัน Code Kata สำหรับปูพื้นฐานภาษา C#
- สวัสดี Approval tests
- แนะนำ extension ในการแก้ไข Solution file ด้วย Visual Studio Code
dotnet
- วิธีแก้ไขปัญหา Unit Test ที่เกี่ยวกับ DateTime ใน .NET ให้รองรับ Locale ไทย
- แนะนำ extension ในการแก้ไข Solution file ด้วย Visual Studio Code
visual-studio
blog
talk
vercel
frontend
buildkit
backstage
developer-experience
- เราจะวัด Productivity ของเหล่า Developer ได้อย่างไร
- สรุปสิ่งที่ได้เรียนรู้จากการทำ project เกี่ยวกับ Backstage
container
azure-container-apps
- วิธี run containers บน Azure Container Apps แบบรองรับหลาย port
- บันทึกการทำ post-deployment check บน Azure Container Apps
- สร้าง cron job ใน Azure Container Apps ผ่าน Dapr
- สวัสดี Azure Container Apps
1password
dapr
code-scaffolding
pre-commit
consulting
- ถอดบทเรียน consulting จาก The Orange Juice Test
- สิ่งที่ได้เรียนรู้จากการไปเข้า course เกี่ยวกับ consulting
- Soft skill สำหรับผู้นำในทีม consulting
poetry
azure-application-gateway
helm
nginx
vpn
lambda
serverless
gitlab
redis
toastmaster
lean
- จะเริ่มปรับปรุงแนวทางการทำงานของทีมอย่างไรดี
- ดู VDO เรื่อง Thoery of Constraints แล้วได้อะไร
- ความสิ้นเปลือง 7 (+1) อย่างในการพัฒนา software
github-copilot
generative-ai
theory-of-constraints
prompt-engineering
approval-tests
content-management-system
social-code-anaylsis
codescene
modular-monolith
self-contained-systems
kata
metrics
manifesto
software-as-a-service
- ว่าด้วยเรื่องของแนวทางในการออกแบบ SaaS ผ่าน multi-tenant architecture
- ว่าด้วยเรื่องของ Software-as-a-Service (SaaS) business
business
sharding
infrastructure
cloud-computing
- บันทึกการจัดระเบียบ AWS IAM permission ภายในองค์กร
- บันทึก tips ที่ช่วยให้การประมาณค่า cloud infrastructure ง่ายขึ้น
fern
go
- ตอบคำถามเรื่องของการป้องกัน SQL injection บนระบบภาษา Go
- แก้ปัญหา race condition ของการ run database migration ใน integration test ของระบบภาษา Go
- บันทึกการแบ่งปัน Database migration บน Go
- แก้ปัญหา Go not found ใน Visual Studio Code
visual-studio-code
feedback
php
laravel
make
github-actions
- CCMenu ตอนนี้รองรับ Github Actions workflow แล้วนะ
- แนะนำเครื่องมือที่ใช้สร้าง dashboard view สำหรับ GitHub Actions
goose
- แก้ปัญหา race condition ของการ run database migration ใน integration test ของระบบภาษา Go
- บันทึกการแบ่งปัน Database migration บน Go