Adam Schultzer (cont.)
Objective
Seeking a Co-op position in Computer Engineering from June – December 2025
Education
- Bachelor/Master of Science, Computer Engineering, May 2027
- Expected Minor: Quantum Information Science and Technology
Work Experience
Controls Engineering Intern/Research, Brookhaven National Laboratory
- Developed an EPICS (Experimental Physics and Industrial Control System) control driver to interface with the BioLogic VSP-300.
- Driver interfaces with the bluesky experiment orchestration framework in order to be used alongside existing systems in the NSLSII (National Synchrotron Light Source II)
- Interfaces with major experiments on roughly a third of the NSLSII facility's beamlines
- Eliminated a large manual step in using the device, allowing many more experiments to be fully automated
- Used C++ for the primary driver that interfaced with the device API directly.
- Allowed for control over ethernet
- Preserves GUI control using a CS-Studio screen
- Used C++ bindings of EPICS
- Used Python for a secondary driver that interfaced with hardware outputs on the physical device.
- Did not interfere with function of vendor software
- Focused on tracking important datapoints in order to control experiment flow
- Used ophyd python bindings
Projects
This is not a comprehensive list (yet)
Personal Projects
For context, this list is ordered from least to most silly.
Schedge.net
- An appointment and reservation system, originally built to assist
in scheduling appointments for my high school's Tutoring Club
- Frontend logic written in TypeScript, with visuals being done
with standard HTML and CSS
- Backend logic written using Java, with a MySQL database
for the account and reservation data handling.
- Future plans to create systems for creating student schedules,
both per semester and for the future using data from course catalogs
- May be RIT specific at first
- Not a work in progress, this is a completely unstarted idea
-
GitHub Link (Website)
-
Please contact me if you wish to see the source code of the
authentication server, I just want to make sure no one has any
ill-intent
WebGL Game (anthill)
-
Created with the intent to teach myself about WebGL
-
Uses primarily TypeScript for logic and GLSL for shaders
-
Texture defined color maps, extremely easy to change visuals
of game with only a few pixel changes to textures.
-
2D texture for terrain with altitude on one axis and
slope of terrain on the other allows for easy customization
-
1D texture for water allows foam near coastline to be
customized easily, where the x-axis correlates with
depth of the water.
-
Solidified many previously learned OpenGL and general graphics
programming skills
-
GitHub Link
Multiplayer Game with Marching Cubes Terrain (slavv)
-
I have no memory of why I called it "slavv"
-
Created with the intent to teach myself about Marching Cubes
- This led me down a very long and tedious rabbithole resulting in another project
- Solidified previously learned socket and network programming skills
-
Used Java for both client and server, with
LWJGL for OpenGL bindings
-
Currently not in a working state due to me losing a large
chunk of the code (but somehow not all of it) when I accidentally
wiped my laptop's hard drive
C++ VR Game Engine
-
Created with the intent to teach myself about programming in C++ and programming for VR
-
Used OpenVR when it wasn't based on OpenXR (this is old) and C++
-
Has not been touched in several years and I would like
to revisit and revamp the project
- GitHub Link
Basic Video Card using an FPGA
-
Created with the intent to teach myself about FPGAs
- This was probably obvious
-
Used a variant of Verilog
-
Output a valid VGA video output that was accepted by
a monitor.
-
Lower effective resolution than actual VGA resolution
due to clock speed limitations
-
Displayed geometric shapes and patterns as a test case
(More of my projects will be added here soon when I don't have homework)
Schedge.net
- An appointment and reservation system, originally built to assist in scheduling appointments for my high school's Tutoring Club
- Frontend logic written in TypeScript, with visuals being done with standard HTML and CSS
- Backend logic written using Java, with a MySQL database for the account and reservation data handling.
- Future plans to create systems for creating student schedules,
both per semester and for the future using data from course catalogs
- May be RIT specific at first
- Not a work in progress, this is a completely unstarted idea
- GitHub Link (Website)
- Please contact me if you wish to see the source code of the authentication server, I just want to make sure no one has any ill-intent
WebGL Game (anthill)
- Created with the intent to teach myself about WebGL
- Uses primarily TypeScript for logic and GLSL for shaders
-
Texture defined color maps, extremely easy to change visuals
of game with only a few pixel changes to textures.
- 2D texture for terrain with altitude on one axis and slope of terrain on the other allows for easy customization
- 1D texture for water allows foam near coastline to be customized easily, where the x-axis correlates with depth of the water.
- Solidified many previously learned OpenGL and general graphics programming skills
- GitHub Link
Multiplayer Game with Marching Cubes Terrain (slavv)
- I have no memory of why I called it "slavv"
- Created with the intent to teach myself about Marching Cubes
- This led me down a very long and tedious rabbithole resulting in another project
- Solidified previously learned socket and network programming skills
- Used Java for both client and server, with LWJGL for OpenGL bindings
- Currently not in a working state due to me losing a large chunk of the code (but somehow not all of it) when I accidentally wiped my laptop's hard drive
C++ VR Game Engine
- Created with the intent to teach myself about programming in C++ and programming for VR
- Used OpenVR when it wasn't based on OpenXR (this is old) and C++
- Has not been touched in several years and I would like to revisit and revamp the project
- GitHub Link
Basic Video Card using an FPGA
- Created with the intent to teach myself about FPGAs
- This was probably obvious
- Used a variant of Verilog
- Output a valid VGA video output that was accepted by a monitor.
- Lower effective resolution than actual VGA resolution due to clock speed limitations
- Displayed geometric shapes and patterns as a test case
(More of my projects will be added here soon when I don't have homework)
Skills
Computing
- HDL Programming: Lots of experience in VHDL from classes, and some Verilog experience from personal projects
- Serial Communication: Formal experience from multiple class and informal experience from countless random personal projects
- Plan to develop this skill further by developing VHDL program that uses UART to communicate
- Hardware-Software Interfaces: Developing interfaces between physical hardware and either user-friendly programs or firmware
- Firmware experience comes largely from class and in the form of both assembly and C
- Connecting hardware to user-friendly programs in my experience has largely fallen under the task of controls engineering during my internship at BNL
- I have done a few projects where I developed both firmware-level and user-level programs that work alongside each other
Programming Languages (In order of how much I like them)
-
Java: So many projects that I can't count (I accidentally deleted around
twenty in 2018), easily my most proficient language. If I need to get something
to work correctly quickly, I do it in Java
- Favorite Project: Hard to choose
-
C/C++: I am more familiar with C++ than C, but have been using both in
some form for at least since 2019. Most of my C knowledge comes from embedded
programming with various microcontrollers, while most of my C++ knowledge comes
from game engine development
- Favorite Project (C): Embedded Chess Engine
- Favorite Project (C++): VR Engine
-
Assembly: So far I am mostly proficient in Arm assembly, and as of the
Spring 2025 semester I am taking two classes about MIPS processors and programming
them, so I'm certain I will be confident in MIPS assembly soon enough
- Favorite Project: Fancy Schmancy UART driver
-
TypeScript/JavaScript: Although these are two very separate languages,
I am grouping them because I don't actually use plain JavaScript for all that much,
only for projects that don't need much interactivity, like this website. I far
prefer TypeScript, and have used it for a lot of projects so far. I can admit
I don't always write the cleanest code, but I haven't stumbled across a frontend
project that I haven't been able to crack with some TypeScript
- Favorite Project: monke.gay
-
VHDL: Not super proficient relative to professionals, but pretty decent in
the context of being a student. I seem to be in a very small subset of people
who enjoy writing VHDL despite the crime that is its syntax, and I hope to get
much better at VHDL in the future (maybe at a co-op?)
- No favorite project yet, but there is likely soon to be one
-
SQL: About as proficient in SQL as I feel I'll ever need to be, even though
that's largely the basics. I have used MySQL as the database backend for several projects,
both for storing authentication hashes/salts and for storing player data and inventories
- Favorite Project: Schedge.net
-
Python: I am pretty solid at Python, and have programmed a lot of projects
using it, since as much as I may hate it, it works pretty well for small tasks. I
also used it at my BNL internship, as I needed to use the ophyd, bluesky, and caproto
libraries extensively. Despite being very good at Python, I despise the syntax and
if given the option will use pretty much anything else
- Favorite Project: FRC Scouting Discord Bot
-
Verilog: I only have Verilog at the bottom of this list due to the fact that
I have very little experience with it, but have used it. I'm certain that if I took
the time to learn more Verilog that I would enjoy it more than Python
- Favorite Project: Basic FPGA Video Card
Web Technologies
- WebSockets: I have done a few projects now that required the use of WebSockets. Personally I'm a huge fan aside from the relatively small HTTP overhead, and they have fit seamlessly into projects that otherwise would have been impossible.
- HTML/CSS: I didn't include this with the programming languages since HTML and CSS aren't programming languages, but I have used them in every project that included TypeScript or JavaScript, aside from a single project with NodeJS. I have used them in both normal web design as well as to design interfaces with microcontrollers like the ESP32
- NGNIX: I use NGINX for hosting the webserver that handles every website I have created, those being mainly this website, Schedge.net, and monke.gay, as well as various other projects hosted as subpages of those websites. I have messed around a lot with the configurations to get everything working as I want, which has given me a lot of experience with getting them right
Software Proficiencies
- The Obvious:
- IDEs/Editors: VSCode, Visual Studio, Vim, Keil µVision, Quartus Prime, Vivado, Notepad++
- Document Creation: Google Suite, Microsoft Suite, LaTeX
- Operating Systems: Windows, Linux (mostly Debian)
- The Less Obvious
- 3D Modelling/CAD/3D Printing: Blender, Fusion 360, Onshape, Cura Slicer
- Music/Audio: Musescore, Audacity
- Graphics: paint.net, Inkscape