Profile Picture

Hi everyone! I'm Paul.

Welcome to my homepage!

About

Me

I currently live in the Greater Boston area, and I am working as a software engineer at Meta's Reality Labs. I am experienced with building and debugging iOS and Android applications at work (including Android system apps). I have also developed full-stack web applications with Node.js, React, and Next.js. One of the projects I am doing outside of work is a hardware-agnostic parallel computing library written in C++, Objective-C, and CUDA, as I am interested to learn more about the area of HPC.

This site

This website is developed with Next.js. The production website's server is running as a systemd service on an Oracle Cloud Instance. The systemd service is backed by a Nginx reverse proxy, which directs traffic to the Next.js server if the domain name matches panpaul.com



Repo Link: personal-website-minified

Experience

Meta

Software Engineer

Aug 2022 - now

Currently working on the Meta View App. Previously on device updates and frameworks.



Programming Languages: Kotlin, Java, Hack, Swift, Objective-C, C++

Query Languages: SQLite, Presto

Debugging IDEs: XCode, Android Studio, Visual Studio Code

Amazon Web Services

Software Development Engineer Intern

June 2021 - Sept 2021

I worked on an internal tool which helps developers automatically be granted IAM permissions based on the types of data they are requesting / the team they are in. Throughout the internship, I learned how to provision server instances at various stages in the pipeline, along with how to develop server-side rendered webpages.



Programming Languages: Ruby, JavaScript

Frameworks and Databases: Ruby on Rails, PostgreSQL

Tools: Amazon S3, Amazon RDS

Highlighted Projects

numvk and numgpu

Two parallel computing libraries meant to be hardware agnostic (numvk written using only Vulkan and numgpu written using CUDA, Metal, and Vulkan Kompute)

This project is designed as a GPU alternative to the popular Python library numpy. The CUDA implementation uses kernels to run code on the GPU while the Metal and Vulkan implementations use MSL and GLSL shading languages to perform similar actions. The build automation system used here is CMake (which detects which build files to generate depending on the SDKs available and the operating system)



Programming Languages: C++, Objective-C++, CUDA

Shading Languages: MSL (Metal Shading Language), GLSL (OpenGL Shading Language)

Build Tools: CMake, Ninja, XCode

Links: numvk numgpu

mlp-theano

Implementation of multi-layer perceptron using Theano, a popular Python tensor library used in ML research.

This project implements the multilayer perceptron uses the library Theano. The purpose of this is to allow for GPU offloading of matrix operations, which speeds up training compared to numpy as well as being more simple to implement / maintain when compared to using libraries like PyTorch and Tensorflow.



Programming Languages: Python

Libraries: Theano

Links: mlp-theano

More About Me

Old Email: [email protected]

New Email: [email protected]

Phone Number: +16266918088