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

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

Monika Janota
Monika Janota

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

Monika: Điều gì đã truyền cảm hứng cho bạn trở thành nhà phát triển? Hiện tại, bạn đang tập trung vào lĩnh vực chuyên môn nào?

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

Trong nhiều năm, tôi đã làm việc cho nhiều công ty, trong đó có Nokia, Maersk và Openwave. Ban đầu, giống như nhiều ngành nghề khác, vì biết một chút nên bạn cảm thấy mình có thể làm mọi việc, nhưng theo thời gian, bạn sẽ biết mỗi công ty đều có một cách 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 đã bắt đầu kinh doanh riêng 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 tất 5 hợp đồng đầu tiên, tôi nhận thấy rằng mọi công ty đều cho rằng họ đã tìm thấy chế độ thiết lập hoàn hảo, nhưng tất cả đều hoàn toàn khác nhau. Vào thời điểm đó, tôi cũng được tiếp xúc với nhiều công nghệ, hệ điều hành, v.v. Vào khoảng đầu tuổi 20, tôi đã thay đổi suy nghĩ. Ban đầu, tôi chỉ tập trung vào một công nghệ và muốn tìm hiểu tất cả về công nghệ đó. Theo thời gian, tôi bắt đầu nghĩ đến việc kết hợp các công nghệ để cải thiện cuộc sống của chúng ta. Tôi đặc biệt quan tâm đến việc thu hẹp khoảng cách giữa những gì chúng ta gọi là nhóm A và nhóm B trên thế giới. Tôi cố gắng truyền đạt nhiều kiến thức nhất có thể cho những khu vực mà người dân không có điều kiện sở hữu máy tính hoặc học đại học miễn phí.

Tôi vẫn tiếp tục làm 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 môi trường hoặc xã hội. Tôi hiện đang làm việc trên 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 trên mọi thứ, từ các bộ điều khiển vi mô nhỏ nhất đến đám mây; 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ệ bất cứ khi nào phù hợp.

Monika: Bạn có tham gia 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 không?

Lars: Có, tôi đã tham gia các buổi gặp mặt và hội nghị. Lần đầu tiên tôi kết nối với cộng đồng này là khi làm việc cho Nokia. Vào khoảng năm 2010, tôi gặp Kenneth Rohde Christiansen, người đã trở thành một GDE trước tôi. Ông đã truyền cảm hứng cho tôi thấy được công nghệ web có thể hữu ích như thế nào đối với các chuyên gia công nghệ đầy tham vọng ở các quốc gia đang phát triển. Để phát triển và triển khai các giải pháp bằng C++, C# hoặc Java, bạn cần có một số năm kinh nghiệm. Tuy nhiên, mọi người có quyền truy cập vào 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 web và học rất nhanh. Bạn có thể xây dựng một ứng dụng có đầy đủ chức năng với tài nguyên hạn chế và tăng dần từ con số không. Đó là lý do tôi gọi web là một ngăn xếp công nghệ rất dân chủ.

Nhưng quay lại với cộng đồng, sau một thời gian, tôi bắt đầu quan tâm đến việc chuẩn hoá web và những vấn đề mà các công nghệ web tiên tiến có thể giải quyết. Tôi đã thử nghiệm các tính năng mới trong 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 chạy Linux, N9. Trình duyệt mà 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 trong việc phát triển các tính năng cho một dự án nguồn mở lớn. Trong những năm sau khi rời Nokia, tôi đã tham gia các hội nghị và buổi họp mặt trên web, vì vậy, việc tham gia cộng đồng GDE vào năm 2017 là điều hợp lý.

Tôi rất thích công việc cộng đồng và mọi thứ chúng ta đang làm cùng nhau, đặc biệt là các Hội nghị thượng đỉnh dành cho nhà phát triển Chrome trước đại dịch, nơi tôi được giúp đỡ trong việc quản lý gian hàng cùng với một nhóm Kỹ sư Google và các GDE khác.

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

Lars: Theo kinh nghiệm của tôi, nếu bạn có thể chi trả, hãy cân nhắc làm việc tự do cho một vài công ty. Bằng cách này, bạn sẽ được tiếp xúc với mã ở nhiều hình thức và giai đoạn phát triển. Bạn sẽ làm quen với nhiều hệ điều hành và ngôn ngữ, đồng thời tìm hiểu cách giải quyết vấn đề theo nhiều cách. Điều này đã giúp tôi rất nhiều. Tôi đã có kinh nghiệm làm nhà phát triển cấp cao khi ở độ 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.

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

Monika: Công nghệ web sẽ phát triển như thế nào trong tương lai?

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

Xem xét vấn đề này từ một góc độ hơi khác, tôi cũng cho rằng nếu cung cấp tài liệu đầy đủ 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à tiếng Bồ Đào Nha), chúng tôi sẽ khai thác được nhiều tiềm năng ở Mỹ Latinh và tất nhiên là cả các khu vực khác. Các nhà phát triển ở đó thường không biết tiếng Anh đủ tốt để hiểu hết tất cả các bài viết có liên quan. Chúng ta cũng nên tạo cơ hội để họ học hỏi càng sớm càng tốt, ngay cả trước khi bắt đầu học đại học, khi họ vẫn còn ở quê nhà. Họ có thể sử dụng những kỹ năng đó để giúp đỡ cộng đồng và doanh nghiệp địa phương trước khi rời quê hương và có thể không bao giờ quay lại.

Thomas: Bạn đã đi 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 hack phần cứng. Bạn đã làm như thế nào?

Lars: Tôi bắt đầu tháo rời nhiều phần cứng có ở nhà. Bố tôi không phải lúc nào cũng vui khi tôi không thể lắp lại. Theo thời gian, tôi đã học được cách xây dựng một số thiết bị nhỏ, nhưng điều này thực sự bắt đầu phát triển sau này, vào khoảng thời gian tôi gia nhập Nokia, nơi tôi có được kinh nghiệm về thiết bị nhúng. Tôi đã có cơ hội xây dựng các trình bảo vệ màn hình nhỏ, thành phần cho điện thoại Series 30. Tôi thực sự đam mê công việc này và có thể suy nghĩ theo cách mới mẻ. Họ giao cho tôi nhiệm vụ xây dựng một trò chơi Snake (Rắn săn mồi) cho những 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 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 ít hơn một phần ba vùng đệm khung (khoảng 120 x 120 pixel). Tôi đã phải tìm ra cách để kết hợp lại các thành phần trên màn hình theo thuật toán để chúng trông tĩnh, như thể chúng là các thẻ thông tin. Tôi đã học được nhiều điều từ việc 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 một người xây dựng phần cứng nhúng. Làm cách nào để khuyến khích nhà phát triển giao diện người dùng tìm hiểu về phần cứng và bắt đầu suy nghĩ theo hệ nhị phân?

Lars: Tôi nghĩ bước đầu tiên là xem xét một số API Fugu hoạt động trong Chrome và Edge, đồng thời được tích hợp vào tất cả các hệ thống chính hiện nay. Đó là tất cả những gì bạn cần làm ở bước đầu.

Một điều khác là các chuỗi công cụ để xây dựng giải pháp nhúng có độ dốc học tập cao. Nếu bạn muốn tự tạo phần cứng tuỳ chỉnh, hãy bắt đầu với Arduino hoặc ESP32 – một thiết bị 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.

Bạn cũng có thể mua máy đo nhịp tim hoặc thiết bị đa cảm biến đang sử dụng các dịch vụ Bluetooth GATT. Nhờ đó, bạn không cần phải tự tạo phần cứng hoặc phần mềm. Bạn có thể sử dụng những thiết bị có sẵn và bắt đầu thử nghiệm với API Bluetooth trên web để bắt đầu giao tiếp với thiết bị đó.

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

Có nhiều phương pháp khác nhau tuỳ thuộc vào những gì bạn muốn xây dựng, nhưng đối với một nhà phát triển web, tôi khuyên bạn nên sử dụng một đơn vị cảm biến chắc chắn, có thể là Thingy 52 của Nordic Semiconductor; thiết bị này có 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: Kết nối với thiết bị là bước đầu tiên, nhưng sau đó, việc nói chuyện với thiết bị một cách hiệu quả lại là một vấn đề khác. Tại sao bạn không bỏ cuộc sau khi gặp trở ngại? Điều gì đã giúp 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 của việc giải quyết vấn đề là quan trọng nhất. Khi bắt đầu làm việc trê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 hộp cho các khu vực đang phát triển. Vợ tôi là người Mexico và tôi đã thấy một số trường học ở đó; một số trường nằm ngoài các thành phố lớn khá tồi tàn, không có cơ sở vật chất và thiết bị như chúng tôi có ở khu vực của mình.

Niềm đam mê tạo ra những sản phẩm có thể giúp đỡ người khác là động lực giúp tôi tiếp tục cố gắng. 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 rất hữu ích và kiên nhẫn trả lời mọi câu hỏi của tôi.

Thomas: Nhiều người có một số loại phần cứng ở nhà nhưng không biết phải làm gì với phần cứng đó. Bạn tìm cảm hứng cho tất cả các dự án tuyệt vời của mình như thế nào, đặc biệt là dự án có tên tạm thời là SimpleMouse?

Lars: Thực ra, gần đây tôi đã hồi sinh rất nhiều phần cứng cũ, nhưng đối với dự án cụ thể này – tên dự án chưa được đặt, nhưng hãy gọi là SimpleMouse – tôi đã sử dụng kinh nghiệm của mình. Tôi từng 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 không còn hoạt động nữa; bạn cần có một máy tính chạy Windows XP cũ đã cài đặt một số phần mềm nhất định để chạy các giải pháp đó. Bạn không thể cập nhật những thiết bị đó, mà chỉ có thể sử dụng ở nhà vì không thể di chuyển thiết lập.

Do đó, tôi đã tự hỏi làm cách nào để kết hợp các 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ó thể làm được trên web để tạo ra phần cứng rẻ, giá cả phải chăng kết hợp với phần mềm dễ hiểu ở cả hai bên, để mọi người có thể xây dựng dựa trên đó.

Đối với dự án cụ thể đó, tôi đã sử dụng một thiết bị USB nhỏ có chip phản xạ, nRF52840. Thiết bị này giao tiếp với Bluetooth ở một bên và USB ở bên kia. Về cơ bản, bạn có thể lập trình cho nó thành bất kỳ thứ gì ở cả hai bên. Sau đó, tôi nghĩ đến 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ị đó và tôi muốn giúp họ.

Việc đầu tiên tôi làm là đảm bảo mọi hệ điều hành đều xem thiết bị USB này là chuột. Bạn có thể điều khiển thiết bị này từ một ứng dụng gốc hoặc ứng dụng web – trực tiếp vào Bluetooth. Sau đó, tôi đã tạo 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 đều có thể điều khiển máy tính bằng một ứng dụng web mà tôi tạo chỉ trong vài giờ trên điện thoại Android.

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

Thomas: Bạn đã có cơ hội kiểm thử thiết bị trong thực tế chưa?

Lars: Thực tế là trong chuyến đi gần đây nhất đến Mexico, tôi đã thảo luận về vấn đề này với một chuyên gia web sống ở đó; anh ấy hiện đang xem xét khả năng sử dụng thiết bị trên máy. Ở đó, thiết bị rất đắt, nhưng một thiết bị USB thường có giá khoảng 10 USD. Anh ấy hiện đang kiểm tra xem chúng ta có thể xây dựng các chế độ thiết lập cục bộ ở đó để thử nghiệm hay không. Nhưng tôi chưa thử nghiệm chính thức ở Đan Mạch.

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

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

Chỉ cần có thể tạo bất cứ nội dung nào bạn muốn trên web và sử dụng nội dung đó để kiểm soát bất kỳ máy chủ nào, bạn đã có thể mở ra nhiều khả năng.

Thomas: Bạn có phát hành dự án Zephyr dưới dạng nguồn mở không? Bạn sử dụng loại giấy phép nào? Có kế hoạch kiếm tiền từ dự án này 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ể nào cho ứng dụng này, nhưng tôi nghĩ bạn nên sử dụng giấy phép Apache 2.0. 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 trên 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. Tuy nhiên, tôi cũng nghĩ rằng bạn nên cố gắng đưa công cụ này vào sản xuất theo một cách nào đó, và điều này sẽ đi kèm với chi phí. Mục tiêu cuối cùng là cung cấp dịch vụ này. Tôi muốn thấy công nghệ này được triển khai với chi phí thấp và trên quy mô lớn.