John Hedges
Verified Expert in Engineering
Software Developer
John是一位热情的开发人员,对分布式应用程序和网络协议有着深刻的理解. He has a strong and wide-ranging set of skills, including the traditional languages, C and C++, languages of the internet such as Python and JavaScript, and the more modern Rust and Go. 无论是作为团队的一员还是独自完成一个项目, John will strive to produce clean, ergonomic, and reliable code.
Portfolio
Experience
Availability
Preferred Environment
Git, Linux, Go, Rust, C, JavaScript
The most amazing...
...project I've worked on was a network assurance product, 由一家大约40名员工的小公司开发,并被Orange和乐天等电信公司使用.
Work Experience
Senior Software Engineer
Outreal Interactive Entertainment Ltd.
- 改编了一个开源的ALVR游戏流项目,运行在WebSockets上.
- 为一家寻求种子资金的游戏初创公司开发了一款MVP.
- 预置的AWS实例具有GPU功能,可在云中运行计算密集型应用程序.
- 使用Rust和WASM进行视频和音频的前端渲染.
Senior Software Engineer
Spotify
- 领导将Elixir预测应用程序转换为Go的工作, 包括多种功能和效率的改进, documentation, unit and integration tests, and infrastructure as code.
- 使用Jira将必要的工作划分为票和冲刺.
- 创建了集成测试,以生成侦听器数据,并使用Docker Compose设置测试预测的位置.
- 创建了一个Jenkins构建和测试脚本来补充构建.
- 实现了产品的持续交付,为每个合并的pull请求创建一个新版本.
- 在良好的编码实践中指导团队成员,并在我们的构建管道中建立了筛选器的使用.
- 是否有建设性的代码审查和结对编程来与其他团队成员交流想法.
- 提交了开源过滤器golangci-lint所需的修复.
Senior Software Engineer
Growth Lab Inc.
- 在Go中开发了一个加密哈希模块,使用种子对二进制数据进行哈希.
- 编写了Go模块并进行了全面的测试,确保了可靠性和正确性.
- 与使用Slack的分布式加密专家团队合作.
Senior Software Engineer
Arctoris
- Worked as a senior developer to help improve the engineering delivery for Arctoris's robotic drug discovery laboratory; diagnosed and made recommendations to remove bottlenecks in the adopted development process.
- Integrated SMILES chemical compound SVG images into PDF/LaTeX report generation in Rust; upgraded existing Rust software from Tokio v0.2 to Tokio v1.3.
- 在一个五人的分布式团队中工作,使用Jira进行问题跟踪.
- 研究构建脚本从Rust原生到Nix的迁移.
Staff Software Engineer
Juniper Networks
- 作为团队的一员,将网络测试和保证产品集成到瞻博网络的路由器和无线设备中. 这涉及到对Juniper运行时、Junos配置和libvirt虚拟化的深入研究.
- 在NFX-150系列路由器上改编现有的网络保障设备映像,使其作为VNF可用.
- 为C网络保证软件增加了下载插件支持. 这使得许多保证实例的远程编排成为可能.
- 致力于Go微服务的实现,提供可下载的插件.
- 与两个团队合作,每个团队约6人,使用Scrum和Jira进行问题跟踪.
- 获得测试代理的创新软件体系结构专利:用于网络性能测量的名称空间感知测试代理. http://patents.justia.com/patent/11546244.
Consultant | Senior Software Engineer
Netrounds
- 为Netrounds提供网络测试和保障产品的后端咨询服务. 后端是用Go和Python构建的,测试探针使用C/ c++和Python.
- 实现了一个Go微服务,通过WebSocket接收来自测试探测器的Protobuf消息,并将其发布到Kafka.
- 用C语言实现了一个HTTP保证产品,可以重复下载内容并在失败时触发警报.
- 与Python/Django前端一起集成新模型.
- 增加多线程支持的c++ UDP网络监控软件.
- 编写了一个FFI适配器,将核心C库合并到Python项目中.
- 查找并修复C/ c++、Go、Python和Bash脚本中的错误. 使用Jira Test Case Management软件在每个发布周期中测试产品.
- 参与了两个使用Scrum方法的5 - 6人团队.
Consultant | Software Developer
Ribose, Inc.
- 被Ribose聘为软件开发顾问,在他们屡获殊荣的安全协作平台上工作.
- Designed and implemented Riffol, an open-source minimal init system in Rust, 用于管理少量进程,并针对Docker容器.
- 在Rust中设计并实现了Nereon/Nereond(一个开源配置库)和配置实用程序.
- 致力于Retrace,一个用于测试ELF二进制文件的开源实用程序. 它使用LD_PRELOAD技术来拦截对标准库的C调用.
- 在GitHub上使用Travis和Jenkins CI/CD维护项目.
Consultant | Software Engineer
Croesyceiliog School
- 为Croesyciliog学校制定成绩总结报告,为每个年级组的年级提供年度报告.
- 使用JavaScript和React前端上传学生成绩的Excel电子表格并下载相应的PDF报告.
- 用Haskell写了一个后端,将Excel电子表格转换为CSV, calculate the statistics required, and generate graphical reports using PDFLatex.
- Hosted, maintained, 并管理了一个docker实例和Nginx代理服务器,使学校管理部门可以使用该系统来生成报告.
Freelance Consultant | Full-stack Software Engineer
Drystone
- Worked on Ella for BMAT using Python and C. Ella是一个类似于shazam的系统,用于检测哪些歌曲正在播放,然后收集并将录音权转发给相应的艺术家.
- Scripted Blender, a 3D modeling system, 使用Python和Blender为在线游戏生成一系列图像.
- 在Haskell中用rdash-ui为仪表板创建了一个HTML模板系统,用Haskell组合子代替自定义标记创建了一个MJML风格的响应式电子邮件.
- 实现了一个系统,将收到的电子邮件排队,并在特定时间将它们转发到不同的电子邮件地址. 这是使用Haskell、shell脚本和Exim完成的.
- 为系统概览仪表板创建了各种监控插件, collecting various metrics from MongoDB, Node.js, Conntrack, ActiveMQ, and RabbitMQ. The plugins were written in Lua.
- 写了一个C程序,通过RS232从SATEK太阳能控制器使用树莓派收集指标.
Consultant | Full-stack Developer
Taskworthy
- 曾在Taskworthy担任IT顾问和开发人员, 高端定制室内细木工制造公司.
- 设计和构建定制的衣柜设计软件与JavaScript和Ajax在前端和Python, XML, and XSLT on the back end. 客户可以设计衣柜,并以PDF格式生成精确的裁剪清单和车间时间表.
- 设计并实施Taskworthy网站的至少三个版本, including an admin facility to upload images. 它使用Python、XML、XSLT和XML- fo来生成PDF.
- 在Debian Linux上使用Apache, Nginx和Exim4托管网站和电子邮件.
Consultant | Back-end Developer
Blurrt
- 帮助开发了一种算法来衡量社交网络帖子中的情绪.
- 编写了一个C程序,使用Twitter的API根据简单的搜索词从Twitter的“火龙”推文中收集情感.
- 帮助定义了这个初创公司使用的技术栈.
Consultant | Full-stack Developer
Percol Coffee
- 使用静态XHTML模板、XML数据和XSLT样式表重新设计Percol的网站.
- 为网站的交互部分创建了一个Python CGI后端.
- Maintained, monitored, and hosted the Percol.co.uk website using Nginx on Debian Linux.
Consultant | Full-stack Developer
The Real Adventure
- 共同创建q点,一个网络和IVR销售创新方案由黑马金融采购. Salespeople earned virtual Q points, 他们可以在系统上赌博,然后用高街代金券兑换.
- 在Perl后端工作,每天导入数十万条财务记录供q点玩家兑换. 该系统还承载了奖励性赌博游戏的博弈逻辑. It ran on Linux with an Apache webserver.`.
- 在Windows上开发了一个完整的c++拖拽式IVR(电话)系统,通过电话游戏(如点球大战和21点)来管理语音呼叫,) buy vouchers, order statements, and so on.
- 使用JavaScript, Java applet和Flash为游戏编写多个web前端.
- 维护和管理q点系统多年, monitoring logs, fixing bugs, and dealing with customer support requests.
IT Consultant
Watts of Westminster
- Worked as a contractor for Watts, a textile company.
- 维护Mac、Linux和Windows电脑的混合网络.
- 重新设计他们的网站,并将其与公司的电子邮件一起托管在Linux、Apache和Exim上.
Consultant | Software Developer
Freelance
- Co-founded Renwah, a consulting startup, after college. 项目包括北安普顿Target Furniture的生产调度软件,使用BBC basic和C语言.
- 在Computasoft工作,负责他们的金融产品系列, 主要是将他们的Noteware数据库系统从BASIC语言转换成C语言和x86汇编语言. 最值得注意的是,我编写了一个新的磁盘排序算法,将它们的排序速度提高了10倍.
- Wrote, for Cinteract Systems, 使用现已过时的B-tree和R-tree库的C语言体育中心会员数据库系统.
- Developed several websites, 包括合同车辆租赁系统和在线书店(遗憾的是不是亚马逊)!) Both use HTML templating and Perl CGI back ends.
- Contributed to the implementation of Homework High, 这是英国电影学院奖获奖网站,由英国第四频道委托制作, using mainly Perl and HTML templates.
Experience
Production Scheduling for CNC Furniture Manufacturer
Patented Technology for Juniper Networks
http://patents.justia.com/patent/11546244Skills
Languages
C, Rust, JavaScript, HTML, Bash, Go, Python, C++, XSLT, XML, SQL, Haskell, Java, Lua, Visual Basic, Perl, Assembler x86, BASIC, XHTML, CSS, Elixir, Bash Script, WASM
Libraries/APIs
Protobuf, OpenAPI, Node.js, Twitter SDK, Microsoft Foundation Class Library (MFC), jQuery, React, Amazon EC2 API, WebGL, Web Audio
Tools
Git, Jenkins, LaTeX, Vim Text Editor, Jira, Confluence, Slack, Travis CI, Blender, Shell, Exim4, RabbitMQ, ActiveMQ, GitHub, NGINX, Apache, Flash, Confd, BigQuery, Cloud Dataflow, Grafana, Docker Compose, Cgroups
Platforms
Linux, Docker, Raspberry Pi, Debian, Debian Linux, Apache Kafka, MS-DOS, Quick EMUlator (QEMU), Amazon Web Services (AWS), Amazon EC2, Google Cloud Platform (GCP), Kubernetes, Embedded Linux, Windows, Blockchain
Other
TCP/IP, Open Source, Back-end, System Design, CI/CD Pipelines, Networking, Software Development, Software Design, Virtualization, PDF, SVG, Open Babel, NixOS, Ajax, RISC Assembly, Slack App, Integrated Services Digital Network (ISDN), Junos OS, CGI, Scrum Master, Excel 365, CSV, Debian Packaging, Software Architecture, Requirements, Software Analysis, Front-end, Full-stack, Big Data, Prometheus, Kustomize, Google BigQuery, Cloud Storage, Cloud Architecture, ASCII, UTF-8, Robotics, Embedded Systems, WebSockets, HTTPS, SSL, NVIDIA Codec SDK, HTTP, Video Encoding, APIs, Containers, Video Processing, Streaming
Paradigms
REST, Agile, DevOps, Scrum, Microservices
Frameworks
Django, JUCE
Storage
MongoDB, Berkeley DB, Amazon S3 (AWS S3), PostgreSQL, Google Cloud, Druid.io
Education
Bachelor's Degree in Computer Science
Open University - Milton Keynes, UK