Amaan马,印度卡纳塔克邦班加罗尔的开发者
Amaan is available for hire
Hire Amaan

Amaan马

验证专家  in Engineering

软件开发人员

Location
印度卡纳塔克邦的班加罗尔
至今成员总数
2019年10月9日

Amaan是开源的热心倡导者,也是面向RTEMS的x86-64 BSP的维护者, 用于太空任务的开源实时操作系统, 包括美国宇航局的帕克太阳探测器. 他还致力于在浏览器中运行的英特尔x86模拟器, 由定制的JIT编译器加速. 他喜欢挑战问题, 从内核和编译器到分布式系统, cryptography, 逆向工程.

Portfolio

RTEMS(开源组织)
c++,汇编,C,嵌入式系统,内核,Linux内核,网络编程...
滴计算
Rust,快速模拟器(QEMU),网络,VPN, STUN/TURN, ICE, TCP/IP, UDP...
客户总数(保密协议项下)
C、Intel DPDK、Intel Linux内核、LXC、传输控制协议(TCP)...

Experience

Availability

Part-time

首选的环境

Git, Emacs, Linux

最神奇的...

...我写的代码是从FreeBSD的内核移植UEFI引导加载程序, 并将其适应于RTEMS,以便RTEMS可以加载ELF内核,而不管UEFI/BIOS.

工作经验

x86-64 BSP的维护者

2018年至今
RTEMS(开源组织)
  • 对GCC做了上游补丁,使其能够正确地包含C运行时文件(例如.e. (调用“main”函数)用于RTEMS x86-64目标二进制文件, 并且允许自定义GCC规范选项(例如-qrtems), 它将标准RTEMS库链接到一个程序中).
  • 评估UEFI支持在不同操作系统上的功能, 包括FreeBSD和Arch Linux, 与开源社区讨论每种方法的优缺点, 最后在一致同意后将FreeBSD的UEFI引导程序移植到RTEMS.
  • 开发了使用PIT(以固定频率运行)校准Intel x86-64动态APIC计时器的代码. 因为RTEMS是一个RTOS, 时机至关重要, 这一步决定了内核如何处理任务调度和上下文切换.
  • 实现了RTEMS内核初始化上下文所需的所有代码, 切换上下文(用于先发制人的上下文切换方案), 通过完美地存储和恢复所有机器状态(i.e. 硬件寄存器、标志等.).
  • 为RTEMS内核构建了一个系统,使其能够钩入微处理器的中断, 并在中断时正确地触发用户订阅的任务(例如. 在太空任务中, 它可能是“计算每次传感器检测到运动时推进器所需的重新校准”——传感器可能附加到硬件中断, 内核将处理哪些, 并将用户的任务安排为).
  • 实现了一个轮询控制台驱动程序,以允许RTEMS内核通过UART将消息记录到控制台.
  • 指导学生参加Google的Code- in和Google的Summer of Code, 帮助他们熟悉RTEMS, debug issues, 对他们的项目给予反馈和指导.
Technologies: c++,汇编,C,嵌入式系统,内核,Linux内核,网络编程, Hardware, 微控制器, 嵌入式软件, 嵌入式硬件, 密码学, Networking, Encryption, UEFI, Firmware, 文档, Robotics, ASCII, UTF-8, Embedded C, 嵌入式c++, 实时操作系统(RTOS), 设备驱动程序, Linux, 快速模拟器(QEMU), Linux内核模块, 嵌入式Linux

软件开发人员

2023 - 2023
滴计算
  • 用Rust为QEMU开发了一个跨平台的网络后端(类似于Slirp),支持通过加密的VPN隧道无缝连接虚拟机,就像它们在LAN上连接一样.e., peer A=192.168.1.1、peer B=192.168.1.2).
  • 支持通过WireGuard/BoringTun进行点对点IP报文传输, 不管对等体的网络条件如何(例如.e., NAT遍历“家庭路由器”/具有NAT的isp, UDP打孔, 尽可能地支持端点相关映射(EIM)).
  • 支持基于防火墙/规则的用户模式组网,使虚拟机不仅可以访问对端虚拟机, 还有主机的局域网, 互联网, etc.,为虚拟机适当解封装/封装TCP和UDP报文.
  • 包括对基于libvirt/virsh的QEMU虚拟机的支持,使用Python脚本可以动态编辑libvirt虚拟机的配置,以使用Droplet网络后端而不是Slirp, etc.
技术:生锈,快速模拟器(QEMU),网络,VPN, STUN/TURN, ICE, TCP/IP, UDP, WireGuard, BoringTun, Shell, 嵌入式Linux

嵌入式软件工程师

2021 - 2022
客户总数(保密协议项下)
  • 设置专用32x100G交换机(Aurora Netberg 710), 可编程与英特尔P4(可编程的ASIC网络芯片和BSP)作为一个SPAN与端口镜像(i.e.在可配置端口上捕获数据包,以100 Gbps的速度镜像到其他端口).
  • 构建了一个工具来检测金融市场数据pcap中的丢包/缺口, 作为证券交易所/交易商的诊断软件运行. 数据是基于UDP的专有网络协议.
  • 构建了一个工具来跟踪TCP会话并计算各种rtt(往返时间), 用于初始连接(SYN/ACK)和每个后续消息(PSH/ACK),以便在金融市场分析系统中用于跟踪延迟问题.
  • 使用与DPDK兼容的应用程序(如Suricata IDS/IPS)对Intel DPDK进行原型化,以确保更高的吞吐率,而无需在内核空间中处理数据包(DPDK主要通过作为用户空间运行时来加快网络处理速度)。.
  • 维护一个100gbps的抓包系统, 包括配置TinyCore操作系统, 设置Lua脚本, 调试Linux内核模块, etc.
  • 为一个基于eBPF/ xdp的程序原型化了一个英特尔DPDK替代品,该程序对Linux主机上的所有流量执行负载平衡/预过滤.
技术:C、Intel DPDK、Intel Linux内核、LXC、传输控制协议(TCP), 汇编x86, eBPF, Arduino IDE, Hardware, 微控制器, 嵌入式软件, 嵌入式硬件, 密码学, Networking, Yocto, Kernel, Firmware, Raspberry Pi, Embedded C, 嵌入式c++, 设备驱动程序, Linux, Debian Linux, Linux内核模块, 内核编程, KVM, 嵌入式Linux, Linux设备驱动

全栈开发人员和DevOps

2020 - 2020
客户总数(保密协议项下)
  • 已创建节点.. js后端服务器,带有Next.js组件和自定义Express.Js组件,构建为各种数据流水线应用程序的实时分布式实体存储.
  • 内置Chrome扩展(1)监控RAM+CPU的使用情况在PC上,并自动暂停选项卡和(2)捕获历史档案, notes, 各种模式下的页面截图(例如所有访问过的页面的自动备份vs. 只有亮点,还有更多.).
  • 在React中构建前端组件, 包括React Hooks,它简化了我们系统中实体存储中所有“实体”共有的某些方面:类型检查, permission-handling, undo/redo, and more.
  • 设置一个带有Docker容器的Minikube pod的本地部署,这样AWS云和本地版本的基础设施是兼容的,同时仍然考虑到各种细节,比如DNS主机名, TLS证书, and more.
  • 在web前端构建一个Electron包装器,以使用诸如访问文件系统之类的本地特性.
  • 架构各种可扩展的命题, real-time, versioned, 以及允许的数据存储, 包括Kafka等技术, Redis, Kubernetes, Nginx, 以及Node中特定于应用程序的后端.js.
技术:亚马逊网络服务(AWS), Amazon EC2, SSH, Docker, Kubernetes, Electron, Chrome扩展, PostgreSQL, TypeScript, GraphQL, React, Node.js, JavaScript,密码学,加密

嵌入式工程师

2019 - 2020
MindSea
  • 为新的触摸屏编写和定制Linux内核驱动程序(包括输入和显示驱动程序), 这样它就可以在安卓系统中完全发挥作用(亮度), orientation, resolution, etc.).
  • 增加了对Android应用程序通过SELinux限制访问硬件串口的支持.
  • 帮助硬件团队确定智能电池组, 控制器集成电路, 以及Android设备电池功能所需的充电电路, 基于现有的Linux驱动程序和功能需求.
技术:嵌入式C, C++, Kernel, C, SELinux, AOSP, Android, Linux, 嵌入式系统, Linux内核, Arduino IDE, Hardware, 微控制器, 嵌入式软件, 嵌入式硬件, Networking, Firmware, RFID, Robotics, 嵌入式c++, 设备驱动程序, Linux内核模块, 内核编程, 嵌入式Linux, Linux设备驱动

系统程序员

2017 - 2019
滴计算
  • 帮助开发在浏览器或Node上运行的英特尔x86模拟器.通过编译源代码到WebAssembly . js环境, 在一个小团队中,每个成员总是负责许多组成部分.
  • 创建了自动生成随机的方法, 模拟器支持的大多数机器指令的确定性测试. 测试fixture是通过在oracle(如Intel x86主机的QEMU或GDB)上运行测试而生成的。, 然后通过仿真器与实际运行结果进行比较, 在实模式.
  • 加快了测试夹具的生成,从3分钟, 精确到15秒, 进行数百次自动测试, 通过并行化进程和减少状态设置和拆除.
  • 实现了在客户操作系统中检测热代码基本块的各种技术,并将它们及时编译到WebAssembly中, 从而允许模拟器通过直接执行客户操作系统的指令来加速, 不需要从模拟内存中读取,也不需要重新解释指令, 支持动态系统有效地使缓存块失效.
  • 帮助构建客户机到主机交互之间所需的网络堆栈桥接, 允许客人的社交活动, 例如发送物理以太网帧, 正确地解包成主机操作系统实际可以发送/接收的TCP/UDP数据包, 然后将主机的网络响应重新打包到客户机操作系统的物理框架中.
  • 为模拟器构建了自定义的仪器分析器, 能够动态地检查和发现应用程序中的瓶颈.
  • 实现了硬件浮点单元(FPU)的大部分仿真代码, MMX, 和SSE指令, 使更现代的应用程序,如Microsoft Word和Wine在模拟器中正确运行.
  • 尝试使用KLEE的符号执行方法来自动增加整个项目的代码覆盖率. 由于我们的编译器链以WebAssembly为目标,测量代码覆盖率还需要扩展LLVM的内在特性.
技术:瓶, Python, Docker, OCaml, JavaScript, Assembly, WebAssembly, C, Rust, 嵌入式系统, Kernel, Linux内核, 网络编程, Hardware, 微控制器, 嵌入式软件, 嵌入式硬件, 密码学, Networking, Encryption, Yocto, UEFI, Firmware, ASCII, UTF-8, Embedded C, 嵌入式c++, 设备驱动程序, Linux, libvirt, 快速模拟器(QEMU), Debian Linux, Linux内核模块, 内核编程, 嵌入式Linux, Linux设备驱动

开发者成功工程师

2016 - 2017
Auth0
  • 开发了一个自定义应用程序,作为任何客户机的SAML身份提供程序, 并且允许发送回故意格式化的SAML响应. 这个应用程序在调试客户在将他们的系统与Auth0的SAML系统集成时遇到的问题时非常有用.
  • 为使用多种技术的客户提供支持, 不管是否熟悉上述技术, 通过询问相关问题并了解如何在不同的环境中收集相关的HTTP请求(例如.e. 捕获HAR文件并分析它们).
  • 作为各种授权协议的专家指导客户, 包括OAuth, OpenID连接, SAML, and WS-Fed, 并帮助客户安全地构建应用程序.
  • 创建与授权相关的特定技术主题的内部和外部文档, 从而减少我自己的总线因子.
  • 自愿充当“门房”,回答公司其他员工关于授权流程的任何问题, its features, 它的安全保证, 推荐使用方法, etc. 这使得工程团队可以更多地专注于创造特性,而不是解释它们.
技术:Go, Python, JavaScript,密码学

HTML5游戏开发者

2010 - 2011
CodeHeads
  • 将各种基于Flash / ActionScript的游戏移植到HTML5中,以便它们也能够在移动设备的网页浏览器上运行.
  • 开发多款2D平台游戏, puzzle games, 以及各种在线游戏门户网站的动作游戏.
  • 为游戏开发的常见元素(如精灵管理)创建自定义游戏框架, 媒体管理, UI和屏幕元素, 发布/订阅事件管理, etc.
技术:SVG, CSS3, HTML5, Canvas, JavaScript

手机转Chrome

http://play.google.com/store/apps/details?id=com.amaan.phonetochrome&hl=en_IN
手机到Chrome是一个Android应用程序和Chrome扩展,用户可以安装轻松地分享链接从他们的移动设备到Chrome, 在桌面上神奇地打开它们.

这款应用的下载量已经超过了5万次,并且广受好评.

音乐推荐系统

http://github.com/AmaanC/music-recommender
这是一个用Python编写的概念验证应用程序,它使用LastFM庞大的用户音乐偏好数据库中的余弦相似度,根据新用户的品味向他们推荐乐队.

披萨外卖机器人

我们使用ATMEGA 2560微控制器来构建一个“披萨外卖”机器人. 披萨是不同大小的彩色热冷藏箱, 机器人必须识别它们, 把它们捡起来, 并在最佳时间内将它们送到柔性纸上标记的房屋.

我领导团队,编写微控制器上运行的大部分代码,而其他团队成员则组装机器人的硬件.
2014 - 2018

计算机科学学士学位

孟买大学-孟买,印度

库/ api

Node.js, React, libvirt

Tools

Emacs, VirtualBox, VMware, NGINX, GDB, Kibana, Git, Canvas, Mocha, Intel DPDK, VPN, WireGuard, Shell

Languages

C++, 嵌入式c++, Rust, C, JavaScript, Python, Assembly, Embedded C, NASM, OCaml, Go, HTML5, CSS3, GraphQL, TypeScript, Lisp, Agda, R, 汇编x86

Platforms

Kernel, Linux, Arch Linux, 嵌入式Linux, AVR, 快速模拟器(QEMU), Raspberry Pi, Debian Linux, 内核编程, Kubernetes, Amazon EC2, 亚马逊网络服务(AWS), Android, Docker, Arduino, Intel, KVM

Storage

PostgreSQL, MongoDB

Paradigms

持续集成(CI)、持续部署、敏捷、函数式编程、DevOps

Frameworks

瓶,表达.js,电子,苗条

Other

嵌入式系统, Chrome扩展, WebAssembly, Linux内核, 网络编程, Firmware, Arduino IDE, Hardware, 微控制器, 嵌入式软件, 嵌入式硬件, 密码学, Networking, Encryption, Robotics, 设备驱动程序, Cordova, 逆向工程, LLVM, QNX, Yocto, UEFI, RFID, ASCII, UTF-8, 实时操作系统(RTOS), Linux内核模块, Linux设备驱动, SVG, AOSP, SELinux, WebSockets, SSH, ARM Embedded, LXC, 传输控制协议(TCP), eBPF, 文档, STUN/TURN, ICE, TCP/IP, UDP, BoringTun

有效的合作

如何使用Toptal

在数小时内,而不是数周或数月,我们的网络将为您直接匹配全球行业专家.

1

分享你的需求

在与Toptal领域专家的电话中讨论您的需求并细化您的范围.
2

选择你的才能

在24小时内获得专业匹配人才的简短列表,以进行审查,面试和选择.
3

开始你的无风险人才试验

与你选择的人才一起工作,试用最多两周. 只有当你决定雇佣他们时才付钱.

对顶尖人才的需求很大.

开始招聘