projects
shmeeload.xyz
This website has been a large project for me to showcase some of my development skills. I developed the full server backend from scratch in Go. On the GitHub repository, you will find the project demonstrating some of my project management, CI and organizational skills. Before this, I didn't know anything about HTML, CSS, JavaScript or TypeScript, so this has also been a chance for me to gain some of those skills. I hope you like the look of the site. A little bit of the old web look, a bit of my own touch.
For more information and source code, please check out my repo.
chef library
This is a simple HTTP utility library that is used extentively for the backend of this website. Demonstates some slick test-driven development and has extensive coverage for all use cases I will ever have. I plan on continuing to flesh this project out into a nice minimal HTTP backend library that hopefully someone other than just me can use. In designing this package, I've learned a lot about making extendable APIs/packages and creating development roadmaps for a more organized engineering workflow.
For more information and source code, please check out my repo.
shmeechain and shmeecoin
Ongoing project for learning and implementing a public blockchain and crypto ecosystem. I am planning to use libp2p as the core of the project to learn more about their ecosystem and its available transports like QUIC. I currently have a basic blockchain with a Bitcoin-style proof of work consensus mechanism with tuneable difficulty. Current plans of the project are to fully flesh out the p2p networking stack so I can set up easily runnable nodes for my friends.
For more information and source code, please check out my repo.
djinn 3D game engine
My ongoing game engine project. Vulkan rendering engine with physically-based rendering, custom memory allocators, hardware accelerated ray-tracing, editor and audio engine. I've learned so much about GPU hardware, physics and high-performance allocations and threading on this project. A main goal of the project has been to build a strong knowledge base in performant modern C++ (C++20), which can be seen with the engine's use of compile-time computation, concepts, and anonymous functions (lambdas). I'm planning to merge this project with another Vulkan renderer from my colleague at NSF SHREC, Bill Derksen (github), so we can have an ongoing collaborative renderer project.
For more information and source code, please check out my repo.
algorithms and data structures from scratch
My repo for algorithms and data structures from scratch. Currently using Golang, but I want to try to expand to a variety of language as a learning exercise. I use this for training for coding interviews and practicing implementing design specifications. The excercise of writing down the theory of how an data structure should work and implementing it without looking at any other code has helped me a lot in how to translate more complex ideas from paper to code.
For more information and source code, please check out my repo.
skills
programming
- Languages (in order of experience): C++, C, Go, CUDA, Python, HTML/CSS, TypeScript, JavaScript, Shell, Haskell, GLSL, Matlab, Dlang, C#, OpenCL, Lua
- APIs (in order of experience): MPI, OpenSHMEM, OpenMP, Vulkan, OpenGL, PyTorch, TensorFlow
hardware / software
- Hardware: CPUs, HPC Interconnects (Infiniband, Aries, OmniPath), GPUs (Data-center and consumer), TPUs, FPGAs
- Software: Linux, Git, Windows, Altium Designer, Visual Studio, Simulink, NVIDIA Nsight, LTSPICE
knowledge bases
- Distributed Systems: blockchains, smart contracts, proof-of-work, proof-of-stake, leader election
- Networking: RPC, HTTP, TCP, UDP, QUIC, IBVerbs, RDMA
- Rendering: physically-based rendering, ray-tracing, distributed offline rendering
- Control: adaptive control, PID, fuzzy logic, complex control
languages
- German: intermediate
- Mandarin Chinese: intermediate
experience
Graduate Research Engineer
NSF Center for Space, High-Performance and Resilient Computing (SHREC)
August 2019 - April 2021
- Led and developed research plans for team of 3 graduate and 2 undergraduate researchers.
- Provided code review and debugging support for all team members along with weekly internal meetings.
- Developed novel benchmarks for evaluating communication scaling performance of supercomputers using up to 320 nodes.
- Wrote grants to gain access to national supercomputers such as National Scientific Computing Center (NERSC) and Pittsburgh Supercomputing Center (PSC).
- Analyzed inference performance of Convolutional Neural Networks (CNNs) on edge devices such as embedded TPUs.
- Designed a CNN-based single-image-super-resolution model for on-Earth upscaling of low-resolution imagery sent from space.
publications
In progress: A. Johnson, and A. D. George, Performance and Productivity Evaluation of HPC Communicaiton Libraries and Programming Models,
2021 OpenSHMEM Workshop, 2021.
L. Kljucaric, A. Johnson, and A. D. George, Architectural Analysis of Deep Learning on Edge Accelerators,
2020 IEEE High Performance Extreme Computing Conferece (HPEC), 2020.
D. Langerman, A. Johnson, K. Buettner and A. D. George, Beyond Floating Point Ops: CNN Performance Prediction with Critical Datapath Length,
2020 IEEE High Performance Extreme Computing Conferece (HPEC), 2020.
D. Kline, N. Parshook, A. Johnson, J. E. Stine, W. Stanchina, and A. K. Jones, Sustainable IC design and fabrication,
2017 Eighth International Green and Sustainable Computing Conference (IGSC), 2017.
education
M.S. in Electrical and Computer Engineering, University of Pittsburgh
August 2019 - April 2021
- Swanson School of Engineering
- GPA: 3.969
B.S. in Electrical and Computer Engineering, University of Pittsburgh
August 2015 - April 2019
- Swanson School of Engineering
- GPA: 3.741
- Summa Cum Laude
awards & honors
Outstanding Graduate in Electrical Engineering
August 2019
- Awarded to the top Electrical Engineering student in Pitt's Class of 2019
references
Available on request.