ประสบการณ์ Skooldio Software Engineer Intern 2023

Chakrin Deesit
3 min readAug 9, 2023

--

Skooldio Tech Interns

Skooldio = Skill + School + Studio ชื่อที่ตรงกว่านี้ไม่มีอีกแล้ว ประสบการณ์การฝึกงานที่เหมือนมาเรียนมากกว่าการมาทำงาน

สวัสดีครับ ผมเป็นนักศึกษาชั้นปีที่ 4 คณะวิศวกรรมศาสตร์ สาขา Software Engineer ที่สจล. ครับ ปีที่แล้วผมได้ฝึกงานที่ Agoda ส่วนปีนี้ผมตัดสินใจที่ฝึกงานอีกรอบในที่ใหม่ที่ Skooldio เพื่อที่จะมาพัฒนาสกิลต่างๆในการเป็น Software Engineer ที่ดี

วันแรก

First Day Introductions

ในวันแรกของการไปฝึกงาน ผมก็ได้พบกับเด็กฝึกงานคนอื่นๆจากทีมต่างๆเช่น Business Development, Marketing, และ Tech ทำความรู้จักกับเพื่อนๆ

หลังจากนั้นเราก็ได้รับการต้อนรับและการ Intro to Skooldio โดยพี่ต้า (Managing Director) และพี่ๆทีมต่างๆที่จะเป็นพี่เลี้ยงของเราในการฝึกงานครั้งนี้

หลังจากนั้นต่างคนก็แยกกันไปอยู่ทีมของตัวเอง ทำความรู้จักกับพี่ๆ และทำกิจกรรม Your first pull request — กิจกรรมนี้เป็นธรรมเนียมของทีม Tech ให้กับน้องๆอินเทิร์น เป็นกิจกรรมที่ทำให้เราทำความคุ้นชินกับ Codebase และ Tools ที่ต้องใช้ อีกทั้งวัดความสามารถของเราเพื่อที่จะให้พี่ๆรู้ว่าเราเก่งอะไรไม่เก่งอะไร จะได้ให้งานที่เหมาะสมกับเราที่สุด (ปล. PR ไม่เสร็จไม่ได้กลับบ้านนะ)

เป้าหมายในการฝึกงาน

พี่เลี้ยงจะถามว่าเป้าหมายของการฝึกงานของเราคืออะไรบ้างและพี่ๆจะพยายามให้โอกาสเราทำในสิ่งที่ต้องการ เป้าหมายของผมมีอยู่ 3 ข้อ

  1. เรียนรู้วิธีการเขียนโค้ดในระดับ enterprise และเหตุผลที่เลือกใช้ tools ต่างๆ
  2. เรียนรู้ workflow การทำงานแบบ Agile
  3. ค้นหา Career path

ผมได้ถูกจับมาอยู่ในทีมที่ทำ full-stack ซึ่งเป็นโอกาสที่ดีในการเข้าใจ the big picture ของการพัฒนาซอฟต์แวร์ขึ้นมา และเนื่องจากผมได้ทำงานใน repo ที่เป็น full-stack ผมก็จะมีคำถามต่างๆเกี่ยวกับ tools ที่ใช้ ซึ่งพี่ๆก็พร้อมที่จะตอบเราให้ดีที่สุด

Culture ของที่ Skooldio จะเป็นคนที่ต้องการที่จะพัฒนาตัวเอง อัพสกิลตัวเองเพื่อที่จะย้ายสายหรือทำงานในงานที่อยากจะทำ เพราะเหตุนี้ผมจึงได้รับฟังเรื่องราวการทำงานของพี่ๆในการแนะนำ Career path เรื่อยๆ ผมว่ามันเป็น insight ที่ดี

งานที่ต้องทำ

ผมได้ทำงานในทีม Scrum ที่มีความยาว sprint สองอาทิตย์ ทีมเราจะได้รับ requirement จากลูกค้าผ่านจาก GM และ PM ซึ่งเราจะมาแกะ requirement ใน sprint planning และทำการกระจายงานให้ dev และ designer ทำใน sprint นั้น

เราจะมี standup meeting ทุกเช้าเพื่อที่จะมาพูดคุยในสิ่งที่ทำไป ปัญหาที่พบเจอและก็งานที่จะทำวันนี้ ส่วนประชุมอื่นๆจะมี sprint planning, grooming, retrospective และ sprint review เราสามารถออกความคิดเห็นต่างๆหรือถามข้อสงสัยที่มีได้ทุกเมื่อ โดยพี่ๆก็จะรับฟังความคิดเห็นของเราอยู่เสมอ

ผมฝึกงานไปทั้งหมดสองเดือน

เดือนแรก จะเป็นเดือนวอร์มอัพ เนื่องจากเราใหม่มากๆกับ flow การทำงานที่นี่และใหม่ต่อ codebase พี่ๆก็จะให้งานที่ไม่ยากจนเกินไปเพื่อให้ทำความคุ้นชิน ผมได้ทำในส่วนของ user profile image โดยใช้ Next.js, React และ MUI ในการทำหน้าบ้าน อีกทั้งทำ GraphQL endpoint ของฟีเจอร์นี้โดยเชี่อมต่อกับ S3 เพื่อเก็บรูป ส่วนงานอื่นๆในเดือนนี้ก็จะเป็นงานเล็กน้อยๆเช่นการ implement model ตาม ER diagram ที่พี่เขาวาดไว้สำหรับฟีเจอร์ตาม requirement อีกทั้ง implement use case ต่างๆตาม requirement

เดือนที่สอง เป็นเดือนที่ผมได้รับงานชิ้นใหญ่ที่เรียกว่าระบบ e-KYC ระบบนี้มีเพื่อการยืนยันตัวตน user อัตโนมัติโดยที่ไม่ต้องผ่าน admin หลังบ้าน ใน sprint แรก (สองอาทิตย์) ผมได้ทำการ proof of concept (PoC) tools ต่างๆที่ต้องใช้ในการทำ optical image recognition (OCR) และ facial comparison กับข้อมูลรูปของ user

หลังจากได้ข้อสรุป PoC เช่นความแม่นยำ สิ่งที่ทำได้/ไม่ได้ และค่าใช้จ่าย ผมก็นำเสนอให้พี่ๆทำการติดสินใจ finalize สิ่งที่จะใช้ และ tools ที่ใช้ก็คือ AWS Rekognition และ Google Cloud Vision

ใน sprint ที่สองก็ทำการ implement ฟีเจอร์นี้โดยการทำ GraphQL endpoint ให้กับฝั่ง frontend ไปใช้ ผมได้ปรับ model ตัวเก่าให้เข้ากับ requirement ปัจจุบัน ทั้งในใน Sequelize model และใน domain model ของ clean architecture หลังจากนั้นผมก็เริ่ม implement use case ตามแผน

เราจะเห็นได้ว่าเราจะได้รับงานที่มีความสำคัญต่อทีมระดับนึงเพราะที่นี่เขา “Treat interns like full-time members” การเขียนโค้ดของผมจะไม่มีพี่ๆกำกับจนกระทั่งผมติดปัญหาและถาม ส่วนตัวผมจะไม่ถามพี่ๆจนกว่าผมลองทุกวิถีทางเช่นการถาม ChatGPT หรือ Google หรือถ้าผมใช้เวลาแก้ปัญหานี้นานเกินไป งานที่ผมได้รับมาเป็นอะไรที่ท้าท้ายพอสมควรเพราะพื้นหลังผมทำ frontend มาแต่ฝึกงานครั้งนี้ได้ทำ backend เป็นส่วนมาก

กิจกรรม

UX/UI Training for Developers

พี่ปุ้ม (Head of User Experience) ได้จัดกิจกรรมพัฒนา dev โดยการสอนพื้นฐานของ UX เช่น Laws of UX และตัวอย่างในสิ่งที่ควรทำ ไม่ควรทำ รวมถึงการทำ ideation, prototype, และ usability test ในช่วงเวลาวันเดียว

Hackathon

Skooldio Hackathon

Skooldio จะให้เวลาอินเทิร์นหนึ่งสัปดาห์ในการทำ Hackathon and design sprint ในหัวข้อ “Generative AI”

ทีม Hackathon นึงจะมีอินเทิร์นจากหลายๆทีมเช่น marketing, business development และ Tech (เพื่อนๆที่เราเจอวันแรก) โดยจะมีพี่ๆนำเราทำ design sprint สามวันเพื่อการ ideate ไอเดียขึ้นมา หน้าที่ของ dev ก็คือการสร้าง functional prototype ขึ้นมาตัวนึงเพื่อนำเสนอต่อให้คณะกรรมการในวันสุดท้าย

เพิ่มเติม

ทาง Skooldio Tech จะมีกิจกรรม Knowledge Sharing เพื่อให้ทีมต่างๆมานำเสนอ tools ที่หน้าสนใจที่สามารถมาช่วยองค์กรให้ทำงานได้ดีขึ้น

One-on-One คือระบบพี่เลี้ยงที่จะคุยกับเราทุกสัปดาห์ตลอดการฝึกงานเพื่อพูดคุยเกี่ยวกับทุกเรื่อง เช่นเป้าหมายในการทำงาน เนื้องานที่ทำอยู่ โอกาสในการทำงานต่างๆ และร้านข้าวที่แนะนำ

ส่งท้าย

Credit Bank Team ❤

การฝึกงานครั้งนี้ ผมได้พัฒนาตัวเองในการเป็น software engineer ที่รอบรู้มากยิ่งขึ้น ได้ทำทั้ง frontend, backend, คุยกับ GM/PM, one-on-one, Scrum, townhall meeting, knowledge sharing, UX training และ Hackathon

พี่ๆที่นี่เป็นกันเองมากๆ พาไปกินร้านอร่อยๆใกล้ๆออฟฟิศ ให้ขนมระหว่างทำงาน แล้วก็ชวนเล่นของต่างๆในออฟฟิศ

สุดท้ายนี้ ขอบคุณพี่ๆ Skooldio ทุกคนที่ต้อนรับดูแลผมมาตลอดสองเดือน ทั้งการให้คำแนะนำ การชวนคุยเรื่องต่างๆ และการที่ทำให้ผมบบรรลุเป้าหมายในการฝึกงาน

ขอบคุณทุกคนที่มาอ่านนะครับ 😀

--

--