Lars Knudsen là một Chuyên gia phát triển của Google. Chúng tôi đã trò chuyện với ông về việc một thiết bị trị giá 10 USD có thể giúp người khuyết tật dễ tiếp cận máy tính hơn như thế nào.
Monika: Điều gì đã truyền cảm hứng cho bạn trở thành nhà phát triển? Trọng tâm công việc hiện tại của bạn là gì?
Lar: Tôi có bằng Thạc sĩ kỹ thuật, nhưng thực tế là tôi lại quan tâm đến công nghệ sớm hơn nhiều. Khi tôi còn là một đứa trẻ 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ạ. Thỉnh thoảng, nhất là trong dịp nghỉ hè, anh thường dẫn tôi đến chỗ làm cùng anh. Đôi khi, một số nhân viên của anh ấy để ý đến tôi. Có một người rất thông minh từng nói với tôi: "Này các cậu, tôi cần phải làm một số việc, nhưng đây là hướng dẫn sử dụng C, và ở đây còn có một chiếc máy tính nữa. Sau đây là cách bạn bắt đầu một trình biên dịch C. Nếu các bạn có thắc mắc, hãy đến và hỏi tôi nhé." 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 được. Điều đó có vẻ thần kỳ đối với tôi. Tôi 11 tuổi khi bắt đầu học và khoảng lớp bảy, tôi đã có thể tạo những ứng dụng nhỏ cho bạn cùng lớp hoặc dùng ở trường. Đó là cách mọi ngườ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. Lúc đầu, giống như trong nhiều ngành nghề khác, vì bạn 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, mỗi công ty sẽ có cách làm 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ột nhà thầu tự do và nhờ đó, tôi có cơ hội nhanh chóng tiếp cận 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 nghĩ rằng họ đã tìm được cá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 tiếp xúc với rất nhiều công nghệ, hệ điều hành, v.v. Khoảng đầu hai mươi, tư duy của tôi đã thay đổi. Lúc đầu, tôi chỉ tập trung hoàn toàn vào một công nghệ và muốn tìm hiểu toàn bộ 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ó thể 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óm A và nhóm B trên thế giới. Tôi cố gắng truyền tải nhiều kiến thức nhất có thể đến những khu vực nơi mọi người không thích 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 công việc nhà thầu cho các đối tác bên ngoài, nhưng mỗi khi có thể, tôi 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 đang phát triển phần mềm nhúng cho một công ty trợ thính có tên là Oticon. Xét về phần mềm, tôi đã và đang làm việc về mọi thứ, từ những bộ vi điều khiển nhỏ nhất cho đến đám mây; tôi có rất nhiều việc mình làm xoay quanh web. Tôi sẽ cố gắng kết hợp các công nghệ bất cứ khi nào thấy hợp lý.
Monika: Trước khi tham gia chương trình Chuyên gia phát triển Google, bạn có tham gia cộng đồng nhà phát triển không?
Llar: Đúng vậy, tôi có tham gia các buổi họp mặt và hội nghị truyền hình. Lần đầu tiên tôi kết nối với cộng đồng là khi làm việc cho Nokia. Khoảng năm 2010, tôi gặp Kenneth Rohde Christiansen, một người trước đây đã trở thành một GDE. Ông truyền cảm hứng để tôi khám phá 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 yêu cầu một vài năm kinh nghiệm, nhưng bất kỳ ai 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. Có thể xây dựng một ứng dụng đầ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 sao tôi gọi web là một hệ thống công nghệ rất dân chủ hoá.
Nhưng quay lạ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á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. Thời điểm đó, tôi làm việc cho Nokia với vai trò là nhà phát triển cho một thiết bị hàng đầu dựa trên hệ điều hành 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 một dự án nguồn mở lớn. Trong nhiều năm sau khi rời Nokia, tôi đã tham gia các hội nghị và buổi gặp gỡ 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 thực sự thích công việc cộng đồng và mọi việc chúng ta đang 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, nơi tôi phải phụ trách công việc ở giai đoạn đầu cùng với một nhóm 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 và chưa biết nên chọn hướng đi nào?
Lar: Theo kinh nghiệm của bản thân tôi, nếu bạn có đủ khả năng, hãy cân nhắc làm việc tự do cho một vài công ty khác nhau. Bằng cách này, bạn sẽ tiếp xúc với mã dưới nhiều hình thức và giai đoạn phát triển khác nhau. Bạn sẽ làm quen với vô số 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. Việc này đã giúp tôi rất nhiều trong việc tích luỹ kinh nghiệm với vai trò là nhà phát triển cấp cao những năm 20 tuổi. Cách tiếp cận này sẽ giúp bạn đạt được các mục tiêu nghề nghiệp của mình nhanh hơn.
Bên cạnh đó, các hoạt động giải trí, khám phá, vui chơi cùng phần cứng và phần mềm. Hãy xem xét việc xây dựng một giải pháp nào đó có thể giải quyết được 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 thử sức với những điều mà bạn chưa từng làm trước đây.
Monika: Tương lai có gì đối với công nghệ web?
Lar: Tôi nghĩ rằng trong vài năm trở lại đây, web đã hoàn toàn có khả năng cung cấp một nền tảng cho các ứng dụng lĩnh vực 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à đối với các nhà phát triển giao diện người dùng muốn tạo thành phần phụ trợ. Việc này giúp họ bắt đầu dễ dàng hơn 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ẽ ngày càng phát triển—các công nghệ web sẽ đủ để xây dựng bất kỳ giải pháp phức tạp nào. Tôi tin rằng Khả năng của web – Project Fugu 🐡 thực sự đã khai phá được tiềm năng đó.
Hãy xem xét vấn đề này từ một quan điểm hơi khác, tôi cũng nghĩ rằng nếu chúng tôi 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), thì tất nhiên chúng tôi sẽ mở ra nhiều tiềm năng ở Mỹ Latinh và các khu vực khác. Các nhà phát triển ở đó thường không hiểu rõ tiếng Anh để hiểu hết các bài viết có liên quan. Chúng ta cũng nên tạo cho các em cơ hội học tập càng sớm càng tốt, ngay cả trước khi các em bắt đầu học đạ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 rời khỏi nhà và có thể không bao giờ quay trở lại.
Thomas: Bạn đã tiến một bước dài từ việc phát triển ngôn ngữ C trên một máy tính ngẫu nhiên cho đến xâm nhập phần cứng. Bạn đã làm điều đó như thế nào?
Lar: Tôi đã bắt đầu tháo rời nhiều phần cứng mà tôi có ở nhà. Không phải lúc nào cha tôi cũng hài lòng khi tôi không thể tập hợp lại được. Theo thời gian, tôi đã học được cách chế tạo một số thiết bị nhỏ, nhưng sau đó nó đã phát triển mạnh mẽ, khoảng thời gian tôi gia nhập Nokia, nơi tôi có được trải nghiệm nhúng của mình. Tôi có cơ hội tạo ra 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ê nó và có thể thực sự có được những suy nghĩ mới lạ. Họ đã giao cho tôi một nhiệm vụ để xây dựng một trò chơi 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 các hệ thống nhúng và hầu hết mọi thứ khác (bao gồm cả web) là bạn để lại một dấu ấn 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 bộ đệm khung (khoảng 120 x 120 pixel). Tôi đã phải tìm ra cách sử dụng 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 ô. Tôi đã học hỏi được rất nhiều điều, đó là việc chuyển từ các hệ thống lớn hơ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 điển hình rất khác với bộ kỹ năng của người xây dựng phần cứng được nhúng. Bạn sẽ khuyến khích một 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 tư duy ở dạng nhị phân như thế nào?
Lar: Tôi nghĩ rằng bước đầu tiên là xem xét một số APIFugu hoạt động trong Chrome và Edge, sau đó đượ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 khi bắt đầu.
Một điều nữa là các chuỗi công cụ dùng để xây dựng các giải pháp được nhúng có đường cong học sâu. Nếu muốn tự xây dựng phần cứng tuỳ chỉnh, hãy bắt đầu với Arduino hoặc ESP32. Đây là một 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ể thiết lập và chạy dự án một cách nhanh chóng.
Bạn cũng có thể mua thiết bị đo nhịp tim hoặc thiết bị đa cảm biến, đã sử dụng dịch vụ Bluetooth GATT, vì vậy, bạn 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ì hiện có và bắt đầu thử nghiệm với Web Bluetooth API để bắt đầu kết nối với nó.
Ngoài ra còn 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 đã 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 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 không được bất kỳ hệ điều hành nào hỗ trợ trong nhiều năm, nhưng nhờ kỹ thuật đảo ngược, tôi phải mất vài giờ để bật lại các thiết bị đó.
Có các 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 nhận một đơn vị cảm biến chắc chắn, có thể là Thingy 52 từ Nordic Semiconductor; nó 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 mất 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 đó nói với thiết bị hiệu quả — đó lại là một việc hoàn toàn khác. Tại 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?
Lar: Đối với cá nhân tôi, khía cạnh xã hội của việc giải quyết mộ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 chính 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 cho các khu vực đang phát triển. Vợ tôi đến từ Mexico và tôi đã thấy một số trường học ở đó; một số công ty ở ngoài các thành phố lớn trông khá tồi tệ, không được tiếp cận các vật liệu và thiết bị mà chúng tôi có ở khu vực của mình.
Niềm đam mê tạo dựng thứ gì đó có thể dùng để giúp người khác. Đó là điều thôi thúc tôi tiếp tục. 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à họ đều vô cùng hữu ích và kiên nhẫn trả lời tất cả câu hỏi của tôi.
Thomas: Nhiều người có một số loại thiết bị tại nhà nhưng không biết phải làm gì với chúng. Làm thế nào để bạn tìm được cảm hứng cho tất cả dự án tuyệt vời của mình, đặc biệt là dự án có tên hoạt động SimpleMouse?
Lar: Gần đây, tôi đã thực sự hồi sinh rất nhiều phần cứng cũ, nhưng đối với dự án cụ thể này – tôi chưa đặt tên, nhưng hãy gọi là SimpleMouse – tôi đã 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 phiên bản Windows XP cũ được cài đặt một số phần mềm để chạy các chương trình đó. Bạn thực sự không thể cập nhật các thiết bị đó mà chỉ có thể sử dụng những thiết bị đó tại nhà vì bạn không thể di chuyển chế độ thiết lập của mình.
Vì vậy, tôi tự hỏi làm thế nào để kết hợp các kỹ năng của mình từ thế giới nhúng với dự án Fugu và những gì hiện có thể có trên web để tạo ra phần cứng giá rẻ, giá cả phải chăng kết hợp với phần mềm dễ hiểu ở cả hai mặt, để 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ỏ có chip phản xạ, nRF52840. Thiết bị này kết nối với Bluetooth ở một bên còn kết nối với USB ở bên còn lại. Về cơ bản, bạn có thể lập trình nó thành bất kỳ thứ gì ở cả hai bên. Rồi 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ể thấy khó sử dụng các thiết bị đó và tôi muốn giúp đỡ họ.
Việc đầu tiên tôi làm là đảm bảo rằng bất kỳ hệ điều hành nào cũng sẽ thấy thiết bị phần cứng USB như một con chuột. Bạn có thể kiểm soát Bluetooth trực tiếp từ một ứng dụng gốc hoặc ứng dụng web. 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 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.
Việc thiết lập đó sẽ cho phép bất kỳ ai trên thế giới có kinh nghiệm web nào đó có thể xây dựng một giải pháp rất được tuỳ chỉnh cho những người khuyết tật muốn điều khiển máy tính của mình trong vài ngày. Điều thú vị là bạn có thể mang theo thiết bị bên mình mọi nơi, cũng như sử dụng với các thiết bị khác. Phiên bản này vẫn sẽ có cùng một trải nghiệm. Đối với tôi, tính di động và giá thành của thiết bị là rất quan trọng vì mọi người không còn bị hạn chế khi sử dụng thiết bị của riêng mình và không còn bị giới hạn ở một địa điểm.
Thomas: Bạn có cơ hội thử nghiệm thiết bị trong thực tế không?
Llar: Thực ra trong chuyến đi Mexico lần trước, tôi đã thảo luận về vấn đề này với một chuyên gia web sống ở đó; hiện anh đang xem xét các khả năng sử dụng thiết bị này trên thiết bị. Ở trên, thiết bị này rất đắt đỏ 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 kiểm tra xem chúng tôi có thể xây dựng các thiết lập trên thiết bị tại đó hay không để dùng thử. Tuy nhiên, tôi chưa cung cấp bản dùng thử 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 thực sự đắt đỏ. Bạn có đang dự định hợp tác với một công ty cụ thể và đưa vào sản xuất với giá chỉ bằng một phần giá của thiết bị đắt đỏ đó không?
Lar: Chắc chắn rồi! Tôi đã trao đổi 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ị này sẽ không thay thế tất cả các giải pháp có tính chuyên môn 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 đối với các công nghệ web. Đây sẽ là một cách dễ dàng để kiểm soát các thiết bị bằng điện thoại Android của bạn; nó có thể hoạt động với mọi loại thiết bị.
Chỉ cần có thể xây dựng bất cứ thứ gì bạn muốn trên web và sử dụng công cụ đó để điều khiển bất kỳ máy tính lưu trữ nào sẽ mở ra rất nhiều khả năng.
Thomas: Có phải bạn sẽ phát hành dự án Zephyr của mình dưới dạng nguồn mở không? Bạn sử dụng loại giấy phép nào? Google có kế hoạch kiếm tiền từ dự án này không?
Lar: Đúng, giải pháp này là nguồn mở. Tôi không có giấy phép cụ thể cho nó, nhưng tôi nghĩ Apache 2.0 sẽ là cách 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 trên SimpleMouse, tôi không nghĩ đến việc kiếm tiền từ dự án đó — đó không phải là mục tiêu của tôi. Nhưng tôi cũng nghĩ việc cố gắng đưa sản phẩm vào sản xuất theo cách nào đó cũng là hợp lý và đi đôi với chi phí. Mục tiêu cuối cùng là làm cho ứng dụng có sẵn. Tôi rất mong được triển khai tính năng này với chi phí thấp và trên quy mô lớn.