快轉到主要內容

軟體開發

2024


邊緣機器學習與機器人技術的未來:打造下一代 SDK 和平台

我很興奮能分享 Orangewood Labs 最具雄心的專案之一:開發由邊緣機器學習驅動的下一代機器人 SDK 和平台。這項計劃將重新定義我們如何處理機器人程式設計和管理,為機器人系統帶來前所未有的智能和效率水平。 機器人技術中的邊緣機器學習革命 #邊緣機器學習(EdgeML)正在改變機器人技術的格局,使人工智慧處理能夠直接在機器人設備上進行,而不是完全依賴雲端解決方案。這種範式轉變帶來了幾個關鍵優勢: 降低延遲:對機器人的即時決策至關重要。 增強隱私:敏感數據可以在本地處理,降低安全風險。 離線功能:即使沒有持續的網路連接,機器人也能智能運作。 頻寬效率:只需將相關數據傳輸到雲端。 我們的願景:統一的機器人平台 #我們的目標是創建一個全面的 SDK 和平台,利用邊緣機器學習的力量來簡化機器人程式設計、增強功能並改善互操作性。以下是我們正在構建的內容: 1. 模組化 SDK # 語言無關:支援多種程式語言(Python、C++、Rust)以滿足不同開發者的偏好。 硬體抽象層:實現跨不同機器人硬體的程式碼可攜性。 邊緣機器學習整合:內建支援在機器人邊緣設備上部署和運行機器學習模型。 2. 直觀的開發環境 # 視覺化程式設計介面:為非程式設計師提供拖放工具,以創建簡單的機器人行為。 進階 IDE 整合:為流行的 IDE 提供插件,以支援專業開發者。 模擬環境:用於在部署前測試和除錯機器人應用程式。 3.

2023


創新用戶參與:為電子商務開發實時個人化信息流

作為印度一家領先電子商務平台的首席工程顧問,我領導開發了一項突破性功能:實時個人化信息流,徹底改變了用戶在我們應用程序中發現和參與內容的方式。這個受抖音啟發、為電子商務量身定制的功能顯著提高了用戶參與度和在平台上花費的時間。 項目概述 #我們的目標是創建一個動態、吸引人的信息流,以: 為每個用戶實時提供個性化、相關的內容 提高用戶參與度和在應用上花費的時間 推動產品發現和銷售 利用用戶生成的內容和精選品牌內容 技術方法 #關鍵組件 # 內容聚合系統:收集和處理各種類型的內容(用戶生成、品牌創建、產品信息) 實時個性化引擎:利用人工智能/機器學習為每個用戶提供個性化內容 基於標籤的內容分類:實施複雜的標籤系統,以實現高效的內容分類和檢索 高性能內容交付:確保流暢、無緩衝的內容串流 技術堆疊 # 後端:使用 FastAPI 的 Python,用於高性能 API 端點 機器學習:TensorFlow 和 PyTorch 用於推薦模型 實時處理:Apache Kafka 和 Flink 用於流處理 數據庫:MongoDB 用於內容元數據,Redis 用於緩存 內容交付:AWS CloudFront 和 Elastic Transcoder 用於視頻處理和交付 主要功能 # 個性化內容排名:開發了一種算法,根據用戶偏好、行為和實時參與指標對內容進行排名

2022


開創印度第一個真正的電子商務市場平台 Tradus

在2010年代初期,當印度的電子商務格局剛開始成形時,我有機會在 Tradus 領導一個變革性的專案。作為資深工程經理,我的任務是開發印度第一個真正的電子商務市場平台,這個挑戰將推動印度新興線上零售領域的可能性極限。 Tradus 的願景 #Tradus (http://tradus.com) 旨在透過創建一個多個賣家可以列出產品、在價格和服務品質上競爭的平台來革新印度的線上購物。這在當時的印度是一個新穎的概念,因為大多數電子商務網站都採用庫存模式運營。 團隊領導和專案範圍 #管理一個15人的工程師團隊,我們的任務明確但具有挑戰性: 將現有的 Tradus 平台轉變為全面的市場平台 開發印度第一個面向爬蟲和聚合器的公開電子商務 API 使用複雜的小工具和 JavaScript 庫增強用戶界面 優化平台性能以處理增加的流量和交易 建立市場平台 #市場平台架構 #我們首先重新設計核心架構以支持多個賣家,實施: 可擴展的賣家註冊系統 賣家庫存管理工具 強大的訂單路由和履行系統 公平透明的賣家評級機制 開創電子商務 API #我們最重要的成就之一是設計和實施印度第一個公開的電子商務 API。這涉及:

2021


在 Tyroo 使用核心 Java 建立分析系統:革新印度廣告科技

在 2010 年代初期,當數位廣告在印度開始蓬勃發展時,我有機會在當時印度最大的廣告科技公司 Tyroo 工作。作為一名軟體工程師,我在開發分析系統方面扮演了關鍵角色,這些系統將塑造該地區數據驅動廣告的未來。 Tyroo 的願景 #Tyroo 旨在為廣告商和發布商提供關於廣告活動效果、用戶行為和投資回報率的深入洞察。我們的目標是建立強大、可擴展的分析系統,能夠實時處理大量的廣告數據。 技術挑戰和解決方案 #處理大數據 #廣告數據的龐大數量是我們的主要挑戰。我們需要每天處理數十億次廣告曝光、點擊和轉換。 解決方案:我們利用核心 Java 的效率來建立分布式處理系統。使用 Apache Hadoop 等技術進行分布式存儲和處理,我們創建了一個可擴展的基礎設施,能夠處理數兆位元組的數據。 實時分析 #廣告商需要最新的洞察來有效優化他們的廣告活動。 解決方案:我們使用 Java NIO(新 I/O)開發了一個實時分析引擎,用於非阻塞 I/O 操作。這使我們能夠高效處理傳入的數據流,為我們的分析儀表板提供近乎實時的更新。 複雜查詢處理 #廣告商經常需要在龐大的數據集上運行複雜的多維查詢。 解決方案:我們使用 Java 實現了一個自定義查詢引擎,針對我們廣告數據的特定結構進行了優化。這個引擎利用先進的索引技術和內存緩存來快速提供查詢結果。

2020


革命性行動通訊:開發 Kirusa 語音簡訊

2009 年,當行動通訊領域正在快速發展時,我有機會在印度新德里的 Kirusa 參與一個開創性的專案。作為一名軟體工程師,我是負責開發和實施 Kirusa 語音簡訊團隊的一員,這是一個創新的應用程式,結合了語音和簡訊,最終觸及超過 2.5 億用戶。 Kirusa 的願景 #Kirusa 旨在縮小語音和文字通訊之間的差距,創造一個可供廣泛用戶使用的解決方案,包括那些覺得打字困難或偏好語音通訊的用戶。目標是開發一個電信供應商可以輕鬆整合到現有系統中的產品。 技術概述 #核心技術 # J2EE(Java 2 Enterprise Edition):我們應用程式的骨幹,提供強大且可擴展的伺服器端平台。 MySQL:我們選擇的資料庫管理系統,為處理數百萬用戶記錄和訊息提供可靠性和性能。 開發的主要功能 # 語音錄製和壓縮:實施高效算法來捕捉和壓縮語音訊息,以最小化數據使用。 簡訊整合:開發一個系統,將語音訊息無縫轉換為簡訊通知,確保與非語音簡訊用戶的兼容性。 電信整合層:創建一個靈活的整合層,允許輕鬆部署到不同電信供應商的系統中。 用戶管理系統:建立一個可擴展的用戶管理系統,能夠處理跨多個電信網絡的數百萬用戶。 訊息排隊和傳遞:實施一個強大的排隊系統來管理訊息傳遞,確保即使在高負載下也能保持可靠性。 技術挑戰和解決方案 #挑戰:可擴展性 #潛在用戶群超過 2.

2012


塑造內容分享的未來:SlideShare 早期時光

2007-2008年,剛從大學畢業,我有了一個非凡的機會加入 SlideShare,成為其首批五名軟體工程師之一。這段經歷將我推向了一個新創公司的核心,這家公司後來徹底改變了人們在線上分享和獲取專業內容的方式。 SlideShare 的願景 #SlideShare 的目標是成為簡報的 YouTube,創建一個平台,讓專業人士可以輕鬆上傳、分享和發現任何主題的簡報。我們的目標是建立一個強大、用戶友好的平台,可以處理各種內容類型並擴展到數百萬用戶。 技術概覽 #作為早期工程師之一,我參與了平台開發的各個方面: 核心技術 # Ruby on Rails:我們的主要網頁框架,選擇它是因為其快速開發能力 MySQL:用於強大的數據庫管理 FreeBSD:作為我們的伺服器操作系統 Nginx 和 Apache:用於網頁服務和代理 各種支援技術:包括 Python、PHP 等 開發的關鍵功能 # URL 上傳系統:實現了允許用戶直接從 URL 上傳簡報的功能。 伺服器管理:參與管理和擴展我們的伺服器基礎設施以處理不斷增長的流量。 轉換引擎:在開發將各種文件格式轉換為網頁友好簡報的系統中發揮了關鍵作用。

革命性行動銀行:使用 Python 和元程式設計在 MPower Money 開發 PHIRE

在 2008-2009 年,當行動技術開始改變各個行業時,我有機會參與了印度新德里 MPower Money 的一個開創性項目。作為一名軟體工程師,我在開發 PHIRE 方面發揮了重要作用,這是世界上第一個允許用戶通過簡訊進行銀行交易的行動借記網路,利用 Python 和先進的元程式設計技術的力量。 MPower 的願景 #MPower Money 旨在革新印度的金融服務使用,因為當時印度有相當大一部分人口沒有銀行帳戶或銀行服務不足。目標是創建一個系統,讓任何擁有基本行動電話的人都能進行銀行交易,有效地將簡訊轉變為金融工具。 PHIRE:行動銀行的突破 #PHIRE(Phone Initiated Remittance Engine,電話啟動匯款引擎)被設計為行動銀行世界中的革命性平台。它允許用戶: 查詢帳戶餘額 轉帳給其他用戶 支付帳單 充值行動電話 接收交易通知 所有這些功能都可以使用簡單的簡訊指令完成,使銀行服務對任何擁有行動電話的人都可以使用,無論是否有網路連接或智慧型手機。 技術概述 #核心技術 # Python:整個平台開發的主要程式語言 元程式設計:廣泛用於創建靈活和動態的程式碼結構 SQLite:用於輕量級、無伺服器的資料庫管理 簡訊網關整合:處理收發簡訊 開發的主要功能 # 動態簡訊指令解析:利用元程式設計創建一個靈活的系統來解釋和執行簡訊指令。

提升PPC管理:在Clickable建立強大且可擴展的解決方案

2009年,我有機會在印度古爾岡的Clickable擔任軟體工程師。Clickable被認可為TechCrunch前50名公司,是簡化主要網絡每次點擊付費(PPC)廣告管理的先驅。我的角色專注於提升其旗艦產品的安全性和可擴展性,為其強大的性能和未來準備做出貢獻。 Clickable的願景 #Clickable旨在為廣告商和代理商簡化PPC管理,提供一個統一的平台來管理多個廣告網絡的活動。目標是讓複雜的PPC廣告世界對各種規模的企業更加易於使用和高效。 技術概覽 #核心技術 # .NET平台:我們應用程式開發的基礎 C#:後端邏輯的主要程式語言 ASP.NET:用於建立動態網頁和網路應用程式 MS SQL:我們的資料庫管理系統,用於儲存和檢索大量廣告數據 重點關注領域 # 安全性增強:實施強大的安全措施以保護敏感的廣告數據和用戶資訊。 可擴展性改進:提升系統處理不斷增長的用戶數量和增加的數據量的能力。 性能優化:提高數據處理和報告的速度和效率。 內部產品工程:開發和完善內部工具以支持核心產品。 技術挑戰和解決方案 #挑戰:數據安全 #保護敏感的廣告數據和用戶資訊至關重要。 解決方案:我們實施了多層安全方法: 利用ASP.NET的內建安全功能進行身份驗證和授權。 使用.NET Framework的加密類對靜態和傳輸中的敏感數據進行加密。 開發全面的審計日誌系統以追蹤所有數據訪問和修改。 挑戰:應對不斷增長的數據量 #隨著Clickable用戶群的增長,系統需要高效處理越來越大的數據集。 解決方案:我們專注於數據庫和應用程式的可擴展性: 在MS SQL中實施數據庫分區以更有效地管理大型表格。 使用ASP.

2011


開創個人視頻錄製:我在Tekriti Software的實習之旅

2005年夏天,作為一名初出茅廬的軟體工程師,我有機會在印度古爾岡的Tekriti Software實習。這次實習為我提供了一個獨特的挑戰:使用現成的硬體和開源軟體開發一個類似TiVo的個人視頻錄製(PVR)原型。這個項目處於數位家庭娛樂革命的前沿,為嵌入式系統和開源開發提供了寶貴的見解。 項目概述 #主要目標是創建一個功能性的PVR系統,能夠: 錄製直播電視 提供互動式節目指南 提供基本的播放控制(暫停、倒帶、快進直播電視) 在價格適中、現成可用的硬體上運行 技術方法 #硬體和軟體堆疊 # 硬體:VIA EPIA嵌入式主板(一個緊湊、低功耗的x86平台) 操作系統:Linux(定制發行版) PVR軟體:MythTV(開源PVR軟體套件) 程式語言:C++(用於MythTV定制),Python(用於網頁爬蟲和數據處理) 資料庫:MySQL(用於存儲節目信息) 開發的關鍵組件 # 定制Linux構建: 創建了針對VIA EPIA主板優化的精簡Linux發行版 配置系統進行無盤啟動以最小化移動部件 MythTV整合: 為嵌入式平台編譯和優化MythTV 為在電視螢幕上更好的可用性定制MythTV界面 電子節目指南(EPG)生成: 開發了基於Python的網頁爬蟲,從Indiatimes.com提取電視節目列表 創建了一個解析器,將爬取的數據轉換為與MythTV的EPG系統兼容的格式 硬體整合:

2010


創新Oracle報表:在Oracle公司開發Web服務PDS插件

2006年,在我的大學學習期間,我有幸在印度班加羅爾的Oracle公司實習。這次經驗不僅讓我接觸到企業級軟體開發,還讓我對Oracle的報表解決方案做出了重大貢獻。我的主要項目涉及為Oracle報表伺服器開發Web服務PDS(可插拔數據源)插件,這項任務將增強這個廣泛使用的企業報表工具的功能。 項目概述 #我的實習項目的主要目標是創建一個插件,允許Oracle報表從Web服務消費數據,擴展其數據來源能力。這個插件將使Oracle報表能夠與現代基於Web的數據源無縫集成,提高其在日益面向服務的架構環境中的相關性。 技術方法 #使用的技術和工具 # Java:插件開發的主要程式語言 Oracle報表:插件的目標平台 Web服務:SOAP和早期的RESTful服務 XML:用於數據表示和配置 JDBC:用於Oracle生態系統內的數據庫交互 Eclipse IDE:開發環境 開發的關鍵組件 # Web服務連接器: 開發了一個強大的連接器,用於與各種Web服務接口 實現了對SOAP和REST協議的支持 創建了一個靈活的配置系統,方便設置Web服務端點 數據轉換層: 建立了一個系統,將Web服務響應轉換為與Oracle報表兼容的格式 實現了XML解析和數據映射功能 可插拔數據源架構: 設計插件以符合Oracle的PDS架構 確保與現有Oracle報表工作流程無縫集成 緩存機制: 實現了智能緩存系統,以優化頻繁訪問數據的性能 錯誤處理和日誌記錄: 開發了全面的錯誤處理,以優雅地管理Web服務故障 創建了詳細的日誌記錄,用於故障排除和性能監控 挑戰和解決方案 #挑戰:理解Oracle的複雜生態系統 #作為實習生,最初理解Oracle廣泛而複雜的軟體生態系統是令人不知所措的。