มาสมัครงานที่ 20Scoops CNX กันเถอะ
Moin Moin! สวัสดีครับ พวกเรา 20Scoops CNX เป็นบริษัทคนไทยที่ได้รับเงินลงทุนจากทางเยอรมัน งานหลักๆของพวกเราก็คือ Software Development ให้กับ Startup ในประเทศเยอรมัน รวมถึง Product ภายในบริษัทของเราเองด้วย
เกี่ยวกับพวกเรา 20Scoops CNX
พวกเราคือกลุ่มคนที่มี Mindset คล้ายๆกัน มารวมตัวกัน พวกเราชื่นชอบและหลงไหลใน Technologies ต่างๆ เราพัฒนาโปรดัคทั้ง Web, Mobile (iOS, Android) และ IoT รวมถึงสนใจใน Technologies ใหม่ๆ ไม่ว่าจะเป็น Blockchain, AI, Big Data, Machine Learning และทีมงานของเราหลายๆคนยังเป็นที่รู้จักของใครหลายๆคนด้วย ไม่ว่าจะเป็น :
- ขิม : Project Coordinator, PM ของเรา หนึ่งใน Top Freelance ด้านการแปลภาษา ที่ Fastwork
- พัด : เทพ Frontend ของเรา ผู้ซึ่งเคยฝากผลงานไว้ใน HackerNoon ถนัดทั้ง React และ Angular
- ปอนด์ : Android Dev ที่ชื่นชอบ Kotlin เป็นชีวิตจิตใจ แต่งานของเค้าไม่แน่ชัดเท่าใดนัก งานหลักๆคงจะเป็นงาน Entertain เพื่อนๆ
- ท็อป : ชายหนุ่มที่หลงไหลใน Firebase ผู้ซึ่งมารับหน้าที่ Data Science ในทีม แถมไปเป็น Speaker ให้กับ Meetup หลายๆงาน
- ไช้ (ผมเองแหละ) : มารับหน้าที่ Backend ที่นี่ ไม่มีอะไรมาก เอาเป็นว่าเขียนบล็อคอยู่ที่ Devahoy ละกัน
และนี้คือ Stack หลักๆที่พวกเราใช้กันก็มี
- Docker
- Node.js & ES6/7 JavaScript
- React & Redux
- Sketch, Zeplin, Figma, InVision
- SemaphoreCI
- AWS, nginx, PM2
- MySQL & Postgres
- MongoDB
- Taiga, Slack, Trello
นอกจากเวลางานของพวกเราแล้ว หลายๆคนก็มีกิจกรรมยามว่าง หรืองานอดิเรกเป็นกิจกรรมต่างๆ ที่มีประโยชน์ ดังเช่น
- ไปเป็น Speaker ตามงานต่างๆ
- ไปเป็นผู้ช่วย / ไปสอน นิสิต นักศึกษา
- จัดกิจกรรม Workshop
- เขียนบล็อค
และล่าสุดที่งาน CHIANGMAI DEVELOPER MEETUP#2 สมาชิกในทีมของเรา ถึง 3 คน (ท็อป, ขิม, เติ้ล) ไปเป็น Speakers ในงานด้วยแหละ
ความรู้เป็นสิ่งที่สร้างได้ การอยากพัฒนาตัวเองต่างหากที่น้อยคนนักจะมี… เราทุกคนที่นี่เป็นเช่นนั้น แล้วเราก็อยากมีคนเหมือนๆ กันให้มากกว่านี้…
🙌 เราต้องการจิ๊กซอว์สองสามชิ้น ฉะนั้นมาช่วยเติมเต็มสิ่งที่พวกเราขาดดีกว่าครับ จิ๊กซอว์ที่เราต้องการมีดังต่อไปนี้
Frontend Developer
🔥 High Priority:
- หายใจเข้าออกเป็น React
- มีประสบการณ์การใช้ Redux
- เขียน JavaScript (ES6/ES7)
- ใช้ Webpack เป็น
- Testing Tools (Enzyme, Jest)
- เคยเขียน SASS/SCSS หรือ LESS อย่างใดอย่างหนึ่ง
- รู้จัก Version Control สามารถใช้งาน Git ได้อย่างชำนาญ
😳 Medium Priority:
- Styled Component
- Next.js
- GraphQL
- Angular & Vue
- Bootstrap, Foundation, Semantic UI หรือ Bulma
Backend Developer
🔥 High Priority:
- JavaScript (Node.js)
- สามารถใช้ Node Web Framework ได้อย่างชำนาญ เช่น Express และ Hapi
- สามารถใช้ฐานข้อมูล Postgres, MongoDB หรือ NoSQL อื่นๆได้
- Testing Tools (Mocha, Tape, ava, Jest)
- รู้จัก Version Control สามารถใช้งาน Git ได้อย่างชำนาญ
😳 Medium Priority:
- เขียน JavaScript (ES6/ES7)
- Functional Programming
- Lodash/Underscore
- เคยเขียน PHP, Golang หรือภาษาใดภาษาหนึ่งมาก่อน
Software Tester
🔥 High Priority
- มีความรู้ด้าน Software Engineering หรือ Computer Science
- รู้จัก Version Control และสามารถใช้งาน Git ได้
- มีความสามารถในการเตรียมข้อมูล Test Matrix (RTM)
- สามารถสร้างเอกสารเพื่อรักษาคุณภาพ Software ขององค์กร และคอยติดตามปรับปรุงให้ดีขึ้นอยู่เสมอ
😳 Medium Priority:
- มีความรู้และสามารถใช้งาน Testing Tools สำหรับทำ Unit Test และ Automated test เช่น Robot Framework หรือ Katalon ได้
- สามารถเรียนรู้เทคโนโลยีใหม่ ๆ ได้อย่างรวดเร็ว กล้าแสดงความคิดเห็น และสามารถเรียนรู้ได้ด้วยตนเอง
- มีความรับผิดชอบต่องานที่ได้รับมอบหมาย ติดตามงานให้ลุล่วงตามกำหนด และทำงานเป็นทีมได้
iOS Developer
🔥 High Priority
- มีประสบการณ์ในการพัฒนา Swift
- มีประสบการณ์การใช้ Cocoapods Library
- มีความเข้าใจ Interactive Application Development, Memory Management และ Multithreading
- รู้จัก Version Control สามารถใช้งาน Git ได้อย่างชำนาญ
😳 Medium Priority:
- มีประสบการณ์ในการพัฒนา Objective-C
- มีความเข้าใจเรื่อง Design Pattern และชอบลองของอยู่เสมอ เช่น MVC, MVVM, Reactive
- มีประสบการณ์ในการเรียกใช้ RESTFul สามารถใช้ งาน JSON และ XML ได้
- มีความเข้าใจเรื่อง Protocol, Delegation และ Callback เป็นอย่างดี
- สามารถใช้งาน Auto Layout และทำหน้า View ได้เชี่ยวชาญ
Benefit
- เวลาเข้างาน Flexible : ที่นี่จะมีช่วงเวลาเข้างาน 2 ช่วงคือ เช้า 9.00–18.00 กับ 13.00–23.00 ซึ่งช่วงเช้า มีเวลาพัก 1 ชม. และช่วงบ่ายมีพัก 2 ชม. แต่ทั้งนี้ทั้งนั้นไม่กำหนดว่าต้องมา 9.00 เสมอไปนะ
- แต่งตัวตามสบาย : อยากใส่อะไรมาก็ใส่ ที่นี่บางคนก็ใส่ชุดบอลมาทำงานปกติเลย เพราะว่าหลังเลิกงานเราก็นัดกันไปเตะบอลต่อเลย ใกล้ๆออฟฟิศ 5 นาทีถึง
- ขนมฟรี : มีขนมฟรีให้กิน ตลอดทั้งวันหรือถ้าไม่พอก็เดินออกไปซื้อที่ 7–11 หรือ Lotus ไม่ถึง 5 นาที
- มีเครื่อง iMac ให้ใช้ : มีเครื่อง iMac ให้ใช้ และอนาคตกำลังจะเปลี่ยนไปใช้ Macbook Pro ทั้งหมดครับ
- Support Events : หากว่ามี Meetup หรือ Event อะไรที่เกี่ยวข้องกับสายงานและน่าสนใจ ทางบริษัทพร้อม Sponsor เต็มที่
- Support Course/Ebook : หากว่ามี Course หรือ Ebook อะไรที่น่าสนใจ ขอให้บอกมา จะซื้อมาให้เลย
- ได้ไปทำงานที่เยอรมัน : เรามีจัดทริปไปเยอรมัน ปีละ 2–3 ครั้ง ครั้งละ 2 คน แม้ว่าจะเป็นการไปทำงาน แต่อย่างน้อยก็ได้ประสบการณ์กลับมาแน่นอน
- วันลาไม่จำกัด : อยากลาเมื่อไหร่ก็ลา ไม่นับวันลา (แต่ต้องดูเวลา และคุยกับคนในทีมด้วย ไม่ใช่ลาตอนช่วงที่งานเร่งรีบ หรือว่ากระทันหันเกินไป)
- Support ค่าที่พัก : กรณีที่ย้ายมาทำงานที่เชียงใหม่ ทางบริษัท (อาจจะ) ช่วย Support ค่าที่พักให้ ในช่วง 1–2 เดือนแรกที่มองหาที่พัก
Activity ประจำวัน
- Daily Sync : มันคือการ Standup Meeting ทุกๆวัน แต่ว่าที่นี่จะทำทุกวันตอน 13.30 เนื่องจากว่า ที่นี่มีเวลาเข้างาน 2 ช่วง คือ เช้า หรือ บ่าย
- Sprint Review : ทุกๆโปรเจ็คที่ได้รับมอบหมาย จะมีการทำ Sprint Review, มอบหมายงาน หรือ User Story
- A-DAPT : เป็น Process การทำงานที่หลายๆคนในออฟฟิศได้ไปเรียนกับพี่ๆที่สยามชำนาญกิจ แล้วก็นำมาประยุกต์ใช้ครับ คือจะเอาพวก User Story มาทำ A-DAPT กัน เพื่อให้เห็นภาพรวมการทำงานของ Feature นั้นๆ
- KM (Knowledge Management) : เป็น Session ของการแบ่งปัน ทุกๆวันศุกร์ตอนบ่าย โดยหัวข้อในการแบ่งปันจะเป็นอะไรก็ได้ไม่จำเป็นต้องเป็นสาย Tech/IT ก็ได้
- Code Review : นอกจากการ Review ปกติทุกๆ Pull Request แล้ว ในทุกๆวัน เราจะหยิบยก Code ตัวอย่างจากการสุ่มมาซัก 1 โปรเจ็ค แล้วช่วยกัน Review ดูว่าโค๊ดที่เขียนมาเป็นยังไงบ้าง วันละราวๆ 15–30 นาที (ก็เป็นทั้งกึ่งๆ Code Review และ Mob)
Workflow และ Tools ของเรา
Gitflow : จริงๆต้องบอกว่าเรานำเอา Gitflow มาเป็น based แล้วประยุกต์ใช้ในงานของเรา ซึ่งถ้าตาม Gitflow จริงๆ จะเป็นประมาณนี้
แต่เราประยุกต์ใช้ในส่วนของการ Merge ไป branch dev จะไม่ทำตรงๆเด็ดขาด (ต้อง protect branch) ทำผ่านหน้า UI ของ Github อย่างเดียวเท่านั้น และต้องผ่านการ Approved จากทีมและรันเทสผ่านเสียก่อน ถึงจะ merge dev ได้
วิธีการคือ ทุกๆ branch ก่อนจะ merge เข้า dev ต้องทำการ Pull Request มาซะก่อน จากนั้นให้คน review ทำการ approved ซะก่อน และเราใช้ git rebase
เสมอ
Github : Source Code ทั้งหมดเราเก็บไว้ที่ Github การทำงานทั้งหมด จะอยู่ที่นี่เลย การทำงานในแต่ละโปรเจ็ค เราจะแบ่งหลักๆ เป็น 3 Branchces คือ => master, dev และ staging
- master -> เป็น stable version สำหรับรันบน Production
- staging -> เป็นตัว pre release ก่อนไป Production สำหรับเทส
- dev -> เป็นตัว development ที่เราใช้ในการ dev หลักๆ
และนอกเหนือจากนั้น เราก็จะจะมี branches ออกมาอีก 2–3 branches เป็น Pattern ประมาณนี้
- feature/xxx -> สำหรับการ implement feature จาก User Story โดยแตกมาจาก branch dev
- chore/xxx -> สำหรับการเพิ่ม function เล็กๆน้อยๆ ที่ไม่ใช่ User story
- bug/xxx -> สำหรับแก้บัค ซึ่งมีทั้งเกิดตอน Development และ Production 😂
SemaphoreCI : เป็นหนึ่งใน CI ที่เราใช้สำหรับรันเทส และ Deploy งานของเรานั่นเอง ข้อดีคือมันเป็น Docker based สามารถที่จะรันผ่าน Docker ได้เลย และอีกอย่างคือมันค่อนข้างไว ถ้าเทียบกับตัวอื่นๆที่เราใช้ (ซึ่งตอนนี้ใช้ Codeship และกำลังจะยกเลิกแล้ว)
Tools ฝั่ง Design
ทางฝั่ง Design ก็จะมี Tools หลักๆด้านล่างนี้
ซึ่งข้อดีในการใช้ Tools พวกนี้คือ การสื่อสารกันระหว่าง Developer กับ Designer ซึ่งทาง Designer ก็จะกำหนดมาให้แล้วว่า Design หน้านี้ๆ นั้นใช้ Font อะไร ขนาดความกว้างเท่าไหร่, padding, margin เป็นยังไง
Taiga : Project Management ที่เราใช้ในการจัดการ Project, สร้าง User Story จัดการ Sprint วางแผนกัน รวมถึงเป็น Issue Trackers ไปในตัวด้วย (แต่ข้อเสียคือเว็บค่อนข้างช้า 🐢)
บรรยากาศส่วนหนึ่งในออฟฟิศ
บรรยากาศบางส่วนในงานเลี้ยงฉลองประจำปีของ 20Scoops CNX และ 20Scoops Hamburg ปิ้งย่างบาบีคิวกันสนุกเลย
และด้านล่างนี้คือภาพบรรยากาศของออฟฟิศที่ 20Scoops Hamburg, Germany
หากว่ารายละเอียดที่กล่าวไปยังไม่พอ หรือบรรยากาศมันยังไม่โอเคแฮะ ผมก็มีอีกหนึ่งบทความที่เขียนแชร์ประสบการณ์ 4 เดือนที่ได้มาร่วมงานที่ 20Scoops CNX มาให้อ่านกัน หวังว่าจะได้เห็นมุมมองในอีกมุมมองของคนๆนึงนะครับ (ขายของจนไม่รู้จะขายยังไงแล้ว มาจอยกันเถอะ ❤️)