Cộng đồng GDE nổi bật: Lars Knudsen

Lars Knudsen là một Chuyên gia phát triển của Google. Chúng tôi đã trò chuyện với anh ấy về cách một thiết bị 10 USD có thể giúp người khuyết tật dễ tiếp cận máy tính hơn.

Monika Janota
Monika Janota

Lars trình bày trên sân khấu cùng với hai diễn giả khác.

Monika: Điều gì đã truyền cảm hứng cho anh trở thành một nhà phát triển? Công việc hiện tại của bạn là gì?

Lars: Tôi có bằng Thạc sĩ về kỹ thuật, nhưng thực ra mối quan tâm đến công nghệ của tôi bắt đầu sớm hơn nhiều. Khi tôi còn nhỏ vào thập niên 80, cha tôi sở hữu một công ty máy tính chuyên thiết kế đồ hoạ. Thỉnh thoảng, nhất là trong những kỳ nghỉ hè, anh ấy đưa tôi đi làm việc cùng anh ấy. Đôi khi, một vài nhân viên của anh ấy sẽ để mắt đến tôi. Có một người rất thông minh từng nói với tôi: "Lar, tôi cần phải hoàn thành một số việc, nhưng đây là sách hướng dẫn sử dụng C và có một chiếc máy tính ở đó. Dưới đây là cách bạn khởi động trình biên dịch C. Nếu bạn có thắc mắc, hãy hỏi tôi.” Tôi bắt đầu viết những đoạn văn bản ngắn được dịch sang những nội dung mà máy tính có thể hiểu được. Điều đó có vẻ diệu kỳ đối với tôi. Tôi 11 tuổi khi mới bắt đầu và khoảng lớp 7, tôi đã có thể tạo ra các ứng dụng nhỏ cho bạn cùng lớp hoặc để sử dụng ở trường. Đó là cách chúng tôi bắt đầu.

Trong những năm qua, tôi đã làm việc cho nhiều công ty, trong đó có Nokia, Maersk và Openwave. Ở giai đoạn đầu, cũng như trong nhiều ngành nghề khác, vì bạn hiểu biết một chút nên bạn cảm thấy mình có thể làm được mọi việc, nhưng theo thời gian, bạn sẽ học được rằng mỗi công ty lại có cách thức làm việc nhất định.

Sau vài năm làm việc cho một công ty y tế, tôi mở doanh nghiệp của riêng mình vào năm 1999. Tôi làm việc với tư cách là một nhà thầu tự do và nhờ đó, tôi có cơ hội nhanh chóng làm quen với nhiều tổ chức. Sau khi hoàn thành 5 hợp đồng đầu tiên, tôi phát hiện ra rằng mọi công ty đều cho rằng họ đã tìm ra cách thiết lập hoàn hảo, nhưng tất cả đều hoàn toàn khác nhau. Khi đó, tôi cũng tiếp xúc với nhiều công nghệ, hệ điều hành, v.v. Khoảng những năm đầu 20 tuổi, tư duy của tôi đã thay đổi. Ban đầu, tôi chỉ tập trung vào một công nghệ và muốn tìm hiểu mọi thứ về công nghệ đó. Dần dần, tôi bắt đầu nghĩ đến việc kết hợp công nghệ để cải thiện cuộc sống. Tôi đặc biệt quan tâm đến việc thu hẹp khoảng cách giữa đội ngũ A và nhóm B trên thế giới. Tôi cố gắng chuyển giao nhiều kiến thức nhất có thể đến những khu vực nơi mọi người không có điều gì xa lạ khi sở hữu máy tính hoặc học đại học miễn phí.

Tôi tiếp tục công việc là một nhà thầu cho các đối tác bên ngoài, nhưng bất cứ khi nào có thể, tôi đều cố gắng chọn những dự án có tác động tích cực nào đó đến môi trường hoặc xã hội. Tôi đang phụ trách phần mềm nhúng cho một công ty thiết bị trợ thính có tên là Oticon. Về phần mềm, tôi đã làm việc trong mọi lĩnh vực từ những bộ vi điều khiển nhỏ nhất đến đám mây; rất nhiều việc tôi làm xoay quanh web. Tôi đang cố gắng kết hợp các công nghệ khi thích hợp.

Monika: Bạn đã tham gia vào các cộng đồng nhà phát triển trước khi tham gia chương trình Chuyên gia nhà phát triển của Google chưa?

Lars: Có, tôi đã tham gia các buổi gặp gỡ và hội nghị. Lần đầu tiên tôi kết nối với cộng đồng khi làm việc cho Nokia. Khoảng năm 2010, tôi gặp Kenneth Rohde Christiansen, người trước tôi đã trở thành một GDE. Ông đã truyền cảm hứng cho tôi để tìm hiểu xem công nghệ web có thể hữu ích như thế nào cho các chuyên gia công nghệ đầy tham vọng ở các quốc gia đang phát triển. Việc phát triển và triển khai các giải pháp bằng C++, C# hoặc Java đòi hỏi một số năm kinh nghiệm, nhưng tất cả những ai có quyền sử dụng máy tính, trình duyệt và sổ tay đều có thể bắt đầu phát triển các ứng dụng dựa trên nền tảng web và học tập rất nhanh. Bạn có thể xây dựng một ứng dụng với đầy đủ chức năng với tài nguyên hạn chế và tăng tốc từ con số không. Đó là lý do tôi gọi web là một nền tảng công nghệ dân chủ hoá.

Nhưng quay lại với cộng đồng—sau một thời gian, tôi quan tâm đến việc tiêu chuẩn hoá web và những vấn đề mà công nghệ web có thể giải quyết được. Tôi đã thử nghiệm các tính năng mới trong một trình duyệt trước khi phát hành. Vào thời điểm đó, tôi đang làm việc cho Nokia, phát triển cho một thiết bị hàng đầu dựa trên Linux, N9. Trình duyệt chúng tôi xây dựng dựa trên WebKit và tôi có một số kinh nghiệm tuyệt vời khi phát triển các tính năng cho dự án nguồn mở lớn. Trong những năm sau khi rời khỏi Nokia, tôi đã tham gia các hội nghị và gặp gỡ trên web, vì vậy tôi rất thích tham gia cộng đồng GDE vào năm 2017.

Tôi rất thích hoạt động của cộng đồng và mọi thứ chúng ta được làm cùng nhau, đặc biệt là Hội nghị dành cho nhà phát triển Chrome trước đại dịch. Tại đây, tôi được hỗ trợ thực hiện công việc hành chính cùng với nhiều kỹ sư tuyệt vời của Google và các GDE khác.

Monika: Bạn sẽ đưa ra lời khuyên gì cho một nhà phát triển trẻ mới bắt đầu sự nghiệp chuyên nghiệp và chưa rõ mình nên đi theo hướng nào?

Lars: Theo kinh nghiệm của chính bản thân tôi, nếu bạn có đủ khả năng, hãy cân nhắc việc thuê tự do cho một vài công ty khác nhau. Bằng cách này, bạn sẽ tiếp cận với các đoạn mã ở nhiều dạng và giai đoạn phát triển. Bạn sẽ tìm hiểu về vô số hệ điều hành và ngôn ngữ cũng như tìm hiểu cách giải quyết sự cố theo nhiều cách. Việc này giúp tôi rất nhiều kinh nghiệm khi làm nhà phát triển cấp cao ở độ tuổi 20. Phương pháp này sẽ giúp bạn đạt được các mục tiêu nghề nghiệp nhanh hơn.

Bên cạnh đó, hãy vui vẻ, khám phá, chơi thử với phần cứng và phần mềm. Cân nhắc xây dựng ứng dụng giải quyết một vấn đề thực sự, có thể là cho bạn bè, gia đình hoặc một doanh nghiệp địa phương. Đừng ngại nhảy vào những việc mà trước đây bạn chưa từng làm.

Monika: Tương lai của công nghệ web sẽ thế nào?

Lars: Tôi nghĩ rằng vài năm nay, web đã hoàn toàn có khả năng cung cấp nền tảng cho các ứng dụng lớn, cho cả người tiêu dùng và doanh nghiệp. Về phía máy chủ, công nghệ web mang lại trải nghiệm liền mạch, đặc biệt là cho các nhà phát triển giao diện người dùng muốn xây dựng một thành phần phụ trợ. Họ có thể dễ dàng bắt đầu ngay bây giờ. Tôi biết nhiều người đang sử dụng cả Firebase và Heroku để hoàn thành công việc. Và xu hướng này sẽ phát triển — công nghệ web sẽ đủ để xây dựng các giải pháp phức tạp dưới mọi hình thức. Tôi tin rằng Các chức năng của web – Dự án Fugu 🐡 thực sự khai phá tiềm năng đó.

Khi nhìn nhận vấn đề này từ một góc nhìn khác, tôi cũng cho rằng nếu chúng tôi cung cấp đầy đủ tài liệu và các bài viết chuyên sâu không chỉ bằng tiếng Anh mà còn bằng các ngôn ngữ khác (ví dụ: tiếng Tây Ban Nha và Bồ Đào Nha), chúng tôi sẽ khai phá rất nhiều tiềm năng tại Mỹ Latinh, và tất nhiên là các khu vực khác. Các nhà phát triển thường không đủ tiếng Anh để hiểu hết mọi bài viết có liên quan. Chúng ta cũng nên cho các em cơ hội học hỏi càng sớm càng tốt, ngay cả trước khi các em bắt đầu đại học trong khi vẫn ở quê nhà. Họ có thể sử dụng những kỹ năng đó để giúp các cộng đồng và doanh nghiệp địa phương trước khi họ rời khỏi nhà và có thể không bao giờ quay lại.

Thomas: Bạn đã trải qua một chặng đường dài từ việc phát triển C trên một máy tính ngẫu nhiên đến việc xâm nhập vào phần cứng. Bạn đã làm được điều đó bằng cách nào?

Lars: Tôi bắt đầu tháo rời rất nhiều thiết bị mà tôi có trong nhà. Bố tôi không vui khi tôi không thể lấy lại kỷ niệm đó. Theo thời gian, tôi học được cách chế tạo một số thiết bị nhỏ. Nhưng sau đó, điều đó thực sự phát triển nhanh chóng, khoảng thời gian tôi gia nhập Nokia, nơi tôi có được trải nghiệm tích hợp. Tôi đã có cơ hội tạo các trình bảo vệ màn hình nhỏ, các thành phần cho điện thoại Series 30. Tôi thực sự đam mê và có thể thực sự nghĩ ra những điều đột phá. Họ giao cho tôi một nhiệm vụ là xây dựng trò chơi Rắn săn mồi trên các thiết bị đó. Đó là một trải nghiệm rất thú vị. Điểm khác biệt chính giữa việc xây dựng các hệ thống nhúng và hầu hết các hệ thống khác (bao gồm cả web) là bạn để lại một dấu vết nhỏ – bạn không có nhiều không gian hoặc bộ nhớ để sử dụng. Trong khi xây dựng Snake, RAM mà tôi có sẵn chỉ chiếm chưa đến 1/3 bộ đệm khung (khoảng 120 x 120 pixel). Tôi phải nghĩ ra nhiều cách để tham gia lại các thành phần trên màn hình bằng thuật toán để chúng trông tĩnh, như thể chúng là các ô. Tôi đã học được rất nhiều điều đó — đó là việc di chuyển từ các hệ thống lớn sang các giải pháp nhỏ, được nhúng.

Thomas: Bộ kỹ năng của một nhà phát triển giao diện người dùng thông thường rất khác với bộ kỹ năng của người tạo ra phần cứng được nhúng. Bạn sẽ khuyến khích nhà phát triển giao diện người dùng xem xét phần cứng và bắt đầu tư duy theo tệp nhị phân như thế nào?

Lars: Tôi nghĩ rằng bước đầu tiên là xem xét một số API của Fuu hoạt động trong Chrome và Edge. Những API này được tích hợp vào tất cả các hệ thống lớn hiện nay. Đó là tất cả những gì bạn cần khi bắt đầu.

Một điều nữa là chuỗi công cụ xây dựng các giải pháp nhúng cần có kiến thức phức tạp. Nếu bạn muốn tự chế tạo phần cứng theo yêu cầu, hãy bắt đầu bằng Arduino hoặc ESP32. Đây là các sản phẩm dễ mua và khá rẻ. Với môi trường phát triển phù hợp, bạn có thể nhanh chóng thiết lập và chạy dự án của mình.

Bạn cũng có thể mua máy đo nhịp tim hoặc bộ cảm biến đa cảm biến hiện đã sử dụng dịch vụ Bluetooth GATT để không phải xây dựng phần cứng hoặc chương trình cơ sở của riêng mình. Bạn có thể sử dụng những gì đã có và bắt đầu thử nghiệm với Web Bluetooth API để bắt đầu giao tiếp với thiết bị đó.

Ngoài ra có những thiết bị sử dụng giao thức nối tiếp. Đối với các thiết bị này, bạn có thể dùng Web Serial API (cũng như Fugu). Gần đây, tôi đã xem xét việc sử dụng API WebHID, cho phép bạn trò chuyện với tất cả các thiết bị có giao diện con người mà mọi người đều có quyền truy cập. Tôi tìm thấy một số hệ thống cũ dưới tầng hầm của mình mà trong nhiều năm qua không được hệ điều hành nào hỗ trợ, nhưng nhờ kỹ thuật đảo ngược nên tôi phải mất vài giờ để kích hoạt lại chúng.

Có nhiều cách tiếp cận khác nhau tùy thuộc vào những gì bạn muốn xây dựng, nhưng với một nhà phát triển web, tôi sẽ nói, hãy có một bộ cảm biến chắc chắn, có thể là Thingy 52 từ Nordic Semiconductor; nó có rất nhiều cảm biến và bạn có thể kết nối với ứng dụng web của mình mà không tốn nhiều công sức.

Thomas: Bước đầu tiên là kết nối với thiết bị, nhưng sau đó trò chuyện với thiết bị một cách hiệu quả — đó lại là một chuyện hoàn toàn khác. Vì sao bạn không bỏ cuộc sau khi đối mặt với trở ngại? Điều gì khiến bạn có động lực tiếp tục làm việc?

Lars: Đối với cá nhân tôi, khía cạnh xã hội trong việc giải quyết vấn đề là quan trọng nhất. Khi bắt đầu thực hiện các dự án nhúng của riêng mình, tôi có tầm nhìn và mong muốn xây dựng một phòng thí nghiệm khoa học trong một khu vực dành cho các khu vực đang phát triển. Vợ tôi đến từ Mexico và tôi đã thấy một vài trường học ở đó; một số trường nằm ngoài các thành phố lớn khá tồi tệ, không có khả năng tiếp cận vật liệu và thiết bị mà chúng tôi có ở khu vực này.

Niềm đam mê tạo ra những thứ có thể sử dụng để giúp đỡ người khác và điều đó thôi thúc tôi đi. Tôi cũng rất thích sự hỗ trợ của cộng đồng. Tôi đã liên hệ với một số người tại Google và tất cả đều cực kỳ hữu ích và kiên nhẫn trả lời tất cả các câu hỏi của tôi.

Thomas: Nhiều người sở hữu một số thiết bị phần cứng ở nhà nhưng không biết dùng thiết bị đó để làm gì. Làm thế nào để bạn tìm thấy nguồn cảm hứng cho tất cả các dự án tuyệt vời của mình, cụ thể là dự án mang tên SimpleMouse?

Lars: Trên thực tế, gần đây tôi đã khôi phục rất nhiều phần cứng cũ, nhưng đối với dự án cụ thể này (tên chưa được thiết lập, nhưng hãy gọi là SimpleMouse) — tôi đã sử dụng kinh nghiệm của mình. Trước đây, tôi đã làm việc với một số giải pháp hỗ trợ tiếp cận và nhận thấy một số giải pháp trong số đó không còn hoạt động nữa; bạn cần phải cài đặt Windows XP cũ và cài đặt một số phần mềm để chạy các giải pháp đó. Bạn không thể cập nhật các chế độ cài đặt đó, chỉ có thể dùng những chế độ đó tại nhà vì bạn không thể di chuyển chế độ thiết lập.

Vì vậy, tôi tự hỏi làm thế nào để kết hợp kỹ năng của mình trong thế giới nhúng với dự án Fugu và những gì hiện có trên web để tạo ra phần cứng giá rẻ, có giá cả phải chăng kết hợp với phần mềm dễ hiểu ở cả hai phía để mọi người có thể xây dựng dựa trên đó.

Đối với dự án cụ thể đó, tôi đã lấy một thiết bị phần cứng USB nhỏ với chip phản xạ, nRF52840. Thiết bị kết nối với Bluetooth ở một bên và USB ở bên còn lại. Về cơ bản, bạn có thể lập trình thành bất kỳ nội dung nào ở cả hai bên. Sau đó, tôi đã nghĩ về các thiết bị điều khiển máy tính: chuột và bàn phím. Một số người khuyết tật có thể gặp khó khăn khi vận hành những thiết bị đó nên tôi muốn giúp họ.

Điều đầu tiên tôi làm là đảm bảo rằng mọi hệ điều hành đều sẽ coi thiết bị phần cứng USB là chuột. Bạn có thể kiểm soát Bluetooth từ ứng dụng gốc hoặc ứng dụng web—trực tiếp trong Bluetooth. Sau đó, tôi đã xây dựng một ứng dụng web—một mẫu đơn giản mà mọi người có thể mở rộng theo cách họ muốn bằng cách sử dụng các thành phần web. Nhờ đó, mọi người có thể điều khiển máy tính của mình bằng ứng dụng web mà tôi đã tạo chỉ trong vài giờ trên điện thoại Android.

Sau vài ngày thiết lập, bất kỳ ai trên thế giới có một số trải nghiệm web cũng có thể xây dựng một giải pháp rất phù hợp với từng người khuyết tật muốn điều khiển máy tính của mình. Điều tuyệt vời là bạn có thể mang theo thiết bị đến bất cứ đâu và sử dụng với các thiết bị khác. Vẫn sẽ có trải nghiệm như cũ. Đối với tôi, tính di động và khả năng chi trả của thiết bị rất quan trọng vì mọi người không còn bị hạn chế sử dụng thiết bị của riêng mình và không còn bị giới hạn ở một nơi.

Thomas: Không biết bạn đã có cơ hội thử nghiệm thiết bị ngoài đời chưa?

Lars: Thực ra, trong chuyến đi cuối cùng đến Mexico, tôi đã thảo luận vấn đề này với một chuyên gia web sống ở đó; hiện anh ấy đang xem xét khả năng sử dụng thiết bị tại địa phương. Ở đó, thiết bị rất đắt tiền, nhưng một thiết bị phần cứng USB thường có giá khoảng 10 đô la Mỹ. Anh ấy muốn biết liệu chúng tôi có thể xây dựng các mô hình địa phương ở đó để dùng thử hay không. Nhưng tôi chưa từng dùng thử chính thức các sản phẩm này ở Đan Mạch.

Thomas: Nhiều thiết bị được thiết kế để hỗ trợ người khuyết tật thực sự rất tốn kém. Bạn có dự định hợp tác với bất kỳ công ty cụ thể nào và đưa công ty đó vào sản xuất với giá chỉ bằng một phần giá của thiết bị đắt tiền đó không?

Lars: Chắc chắn rồi! Tôi đã nói chuyện với một nhà sản xuất phần cứng tại địa phương về vấn đề này. Tất nhiên, thiết bị sẽ không thay thế tất cả các giải pháp có tính chuyên dụng cao đó, nhưng đó có thể là bước đầu tiên để xây dựng một giải pháp lớn hơn — ví dụ: sử dụng tính năng nhận dạng giọng nói, vốn đã có sẵn cho các công nghệ web. Đây là một cách dễ dàng để điều khiển các thiết bị bằng điện thoại Android; tính năng này có thể hoạt động với bất kỳ loại thiết bị nào.

Việc có thể tạo bất kỳ thứ gì bạn muốn trên web và sử dụng chúng để kiểm soát mọi máy tính lưu trữ sẽ mở ra rất nhiều khả năng.

Thomas: Google có phát hành dự án Zephyr của bạn dưới dạng nguồn mở không? Bạn sử dụng loại giấy phép nào? Dự án này có dự định kiếm tiền không?

Lars: Có, giải pháp này là nguồn mở. Tôi không đặt giấy phép cụ thể cho giấy phép đó, nhưng tôi nghĩ Apache 2.0 sẽ là giải pháp phù hợp. Nhiều công ty lớn sử dụng giấy phép này, bao gồm cả Google. Khi làm việc với SimpleMouse, tôi không nghĩ đến việc kiếm tiền từ dự án này. Đó không phải là mục tiêu của tôi. Nhưng tôi cũng cho rằng việc thử đưa sản phẩm vào quy trình sản xuất theo cách nào đó cũng sẽ hợp lý và tốn kém chi phí. Mục tiêu sau cùng là biến những chiến dịch đó thành hiện thực. Tôi mong muốn triển khai mô hình này với chi phí thấp và trên quy mô lớn.