Nico Hickman

Summary

I’m extremely passionate about computer science and software development. I’ve created or contributed to multiple open-source projects, including maintaining them, reviewing patches and resolving issues that users have. Throughout high school, I have consistently taken all of the programming courses available to me, as well as considerable time spent learning on my own new languages and technologies (such as Rust).

Technical Skills

  • Rust for low-level command line applications and web servers using the rocket framework
  • Client-side JavaScript for the web using jQuery
  • Server-side JavaScript using NodeJS, mostly with the Express framework
  • MongoDB for data storage and retrieval
  • Unity for video game production, using C# for scripting
  • git for version control/project management
  • Github & sourcehut for git repository hosting
  • Familiar with: C, C++, Python, bash, HTML/CSS, Nginx

Primary Areas of Interest

  • Linux and *nix development
  • Command-line applications
  • Web servers
  • Video game programming and development

Experience

Cedarcrest High School IT Department

Student Teacher Team Volunteer

Hand-picked during my freshman year of high school to be one of two members of the student technology team for the following 3-4 years. The student technology team is responsible for responding to technical assistance requests from school faculty. Specific responsibilities included:

  • Troubleshoot and resolve printing and email issues
  • Assist with the installation and use of new devices
  • Provide network connectivity support

DigiPen ProjectFun

Lead Teacher and TA

I spent the summer working for Digipen’s ProjectFun summer camp as both a lead teacher and teaching assistant for courses like Programming 1 and Beginner Minecraft Modding, where I taught middle-school aged students the fundamentals of programming and JavaScript.

Education

  • Cedarcrest High School September 2015 - June 2019
  • Western Washington University September 2019 - Present

Personal Projects

wyvern

Wyvern is a command-line GOG client for Linux, allowing Linux users without access to GOG Galaxy to download, install, update and manage games. It includes a delta updating system that selectively downloads only the parts of an installer that have changed, using HTTP ranges and CRC32 checksums. This project required mapping out and using an unsupported API with a small amount of outdated documentation. Published to Crates.io (Rust package manager), snapcraft.io and the Arch user repository, it currently has over a thousand installations and 50+ Github stars.

eidolon

Eidolon is a command-line tool for Linux users that lets them easily group and manage games from up to five different launchers and launch them easily. It includes parsing Steam records and libraries in order to determine all installed Steam games for importing. I’ve shared this application with the user community by publishing it via Crates.io and the Arch user repository. It currently has 2,000 installations and 50+ Github stars.

demenses.net

This is my personal domain/server that I've maintained for over two years. It currently hosts two web services:

  • ravenserver, an online repository for Linux desktop themes that can be installed automatically with the corresponding tool. It provides a documented REST API. There's also an older version written in NodeJS.
  • My personal website, which is written in Emacs' org mode, exported to static HTML and served by a small python flask server.

This site is under the MIT License. The CSS for this website comes from sourcehut, where it is also distributed under the MIT license. If you would like to view the source of this site, it is available here.