Nick Drian

Software Engineer













Who am I?

I am a software engineer.

After falling in love with programming five or so years ago, I have explored many areas of software engineering. I have done lots of work in computer graphics because I really enjoy the spatial reasoning, low level API's, computational geometry and performance engineering that are so common in the field. I have also spend much time developing my algorithmic prowess. I used spend large portions of my free time LeetCoding and competitive programming. More recently, I have been interested in Systems Engineering. I have been exploring Rust and the ways that it can be leveraged to build scalable, robust, safe, and generally 'good' software. I have also spent lots of time learning my tools and optimizing my workflow. These days I'm feeling highly productive in my riced Neovim setup. I have worn many hats in the programming world, and am excited to wear many more.



Personal Info

  • Email : nickdrian45@gmail.com
  • Phone : +1 (530) 386-8800
  • Address : San Francisco CA
  • GitHub : NicholasDrian
  • Instagram : nicks_designs_


My Expertise

Computer Graphics

Everythong from GPGPU to accelerated computational geometry.


Performance Engineering

I enjoy squeezing every last FLOPS out of my processors.


Algorithms

I eat DP for breakfast.















My Resume

Projects

CAD - 3D NURBS Modeling Application
Languages: Rust, Typescript, C++, GLSL, WGSL
  • A few years ago, I wrote some 3D modeling software in C++. I was enjoying the project until I switched from using Windows to MacOS, and became frustrated with to complexity of porting my software between operating systems.
  • I decided to rewrite the project in typescript because of the superior accessibility granted by the browser. No downloads, no conditional complication, and no re writing of the build system for every OS. At around 20k lines of code, this iteration of the project is the most complete. Click HERE to check out the project.
  • After discovering that WebGPU has brought compute shaders to the browser, I decided to rewrite my software one last time, entirely on the GPU. The goal of this iteration is to eliminate all geometry streaming between RAM and VRAM, and move all heavy compute to the GPU, to achieve state of the art efficiency. My new software stack involved compiling rust to WASM (for threading support), along with thousands of lines of WGSL. This project is not entirely complete, but it already supports blazingly fast surface sampling and acceleration structure generation all on the GPU. This iteration is also much more organized, with a wasm geometry engine that exposes a high level JavaScript API. You can view the code HERE.
Path Tracing
Languages: C++, GLSL | APIs: OpenGL, glm
  • Created path tracing software that supports global illumination, reflection, refraction, dispersion, textures sampling with trilinear mipmap interpolation, and material properties such as specular, diffuse, roughness, and more.
  • Achieved unbiased results through Monte Carlo integration while importance sampling both the BRDF and lighting.
  • Used photon mapping and statistical error metrics to support dispersion with a parametric error threshold.
HomeSlice - 3D Printing Software
Language: Java | APIs: Swing, AWT
  • Implemented a desktop application that builds printable .gcode from an .stl file and various printing parameters.
  • Features a fully maneuverable, real time rendering of the print path and source mesh
  • Capable of rasterizing a 20,000 face mesh at 20 fps on the CPU. (From before I learned APIs such as OpenGL)
  • Optimized the program to process large mesh inputs using kd-trees.

Work Experience

BMW - Software Engineering Intern Oct 2022 - Apr 2023, Germany
  • Explored the graphics pipeline of BMW’s driving simulator for possible performance and fidelity optimizations.
  • Moved skeletal mesh animation onto the GPU using bone animation textures to help alleviate a CPU bottleneck.
  • Wrote an Unreal Engine utility for automating the generation of high performance MetaHuman animations.
  • Created an application for generating, previewing and benchmarking GPU based animation from FBX files.
  • Achieved 2x frame rate improvement on some animation intensive benchmarks.

UC Berkeley - Computational Design Instructor Spring 2021
  • Created and taught a graduate course on parametric design using the plug-in Grasshopper for Rhino.
  • Presented a series of 10 lectures demonstrating a streamlined architectural workflow through CAD scripting.

Education

UC Berkeley - Architecture BA 2018 - 2022
  • Computer Science GPA: 3.85
  • Relevant Coursework: Data Structures (A+), Logic (A+), Computer Architecture, Computer Graphics, Computational Structures in Data Science, Computer Security (audited), Operating Systems (audited)

Skills

  • 3D Modeling
  • Rendering
  • Unreal Engine
  • Computational Geometry
  • Linear Algebra
  • Algorithms
  • Parametric Design
  • Competative Programming
  • Languages

  • Rust
  • C++ / C
  • Python
  • Java
  • GLSL / HLSL / WGSL
  • JavaScript / TypeScript
  • x86 / RISC V
  • And More...
  • Hobbies

  • Rock Climbing
  • Mountaineering
  • Camping
  • Cooking


  • I Am Available For Freelance work.




    Send a message

    Get in touch

    Phone : +1 (530) 386-8800
    Email : nickdrian45@gmail.com