Andrew Dassonville

Web Developer

Scroll down to see more!

About Me

I've always loved playing around with computers and telling them what to do, ever since I was a little kid.

When I was 10, I started making small Python games and Minecraft mods and plugins. Playing around with my new games and sharing them with my family, friends, and online forums was the only thing I liked more than making them. Soon I discovered GitHub, where I could share my projects with other programmers like myself.

A few years later, I started to move from small Python games and Minecraft plugins/mods to web development in PHP. I also learned a lot about server administration from my time using PHP.

After getting fed up with PHP and all its weird/annoying "features", I moved on and started using Node.js, Django Python, and Ruby on Rails. Node.js has been my go-to language for backend web development for quite some time, while Java and Python get called in when the time is right.

On my FRC Robotics Team, SERT, I have used a wide variety of languages, from Java to JavaScript to Python and more. My skills using developer tools such as git were not the only thing to improve - I also learned new frameworks such as OpenCV for vision detection.

My Work

MAY 2013 - Present
Open Source Developer - JavaScript, Node.js, Python

I have contributed to many open source projects, including Electron, PokemonGo-Map, and many Steam-related modules such as passport-steam and node-steam-tradeoffer-manager.

AUG 2015 - Present
South Eugene Robotics Team - Java, Python, JavaScript, Node.js

I'm a programmer on the South Eugene Robotics Team (SERT) where we compete in FRC competitions using our robots programmed in Java. In 2015, our team made it all the way to the world championships in St. Louis. Hopefully we can make it back again soon!

My Projects

CSGOItemDB is an open-source way for CS:GO website developers to easily be able to get the prices of items. It was one of my first open-source projects and taught me a lot about using technologies such as Git and GitHub. CSGOItemDB also helped familiarize me with Node.js, despite its fairly ugly code (as of right now, I'm working on improving the code and functionality).

hltv-livescore is most likely my largest project in terms of users and functionality. It originated as a fork of Nils Margotti's amazing work with hltv-scorebot, but evolved into a much larger project which works with more recent versions of the HLTV scoreboard and has more functionality. I am most proud of this project, as it has very clean code (in my opinion) and utilizes only two external modules. In addition, it has also attracted a large audience and I hope it has come in handy for the many users!

hltv-live-games is another one of my HLTV-related modules. This module will emit an event every time a game goes live on HLTV and has a valid matchid. You can safely expect more things to come from this module as I'm always implementing new features!

CSGOScoreBot is a bot which will automatically post live CS:GO scores and updates to a Reddit live thread. It makes use of hltv-livescore to get live game updates, and creates a new instance every time a game goes live thanks to hltv-live-games.

Not only was this my first time using Jekyll to create a website, it also taught me a lot about using Cloudflare (which I had already used for numerous other websites, including this one) and website management in general. The website is currently hosted using GitHub pages, allowing all South Eugene Robotics Team members to make new posts and update the site with new information, which is much better than our previous Squarespace approach.

To see more, checkout my GitHub profile!

My Skills

Web Development

Backend Development - Node.js, Django, Ruby on Rails

I've used Node.js for most of my major projects, as mentioned above. Ever since starting to use it in early 2015, I've loved the language and have grown very familiar with many major modules, such as Express, Async, Lodash, Request, and more. Along with my Node.js knowledge, I also actively use Django Python and Ruby on Rails to create backend web applications.

Frontend Development - Angular.js, React, jQuery

Angular.js and React go hand-in-hand with Node.js, and therefore I've used them right alongside many of my Node.js websites. They provide simple two-way data binding between the frontend and the backend, which makes them ideal for any application where data binding is usefull.

Jekyll - Ruby on Rails, JavaScript

I've used Jekyll many times in the past to create blog-aware websites such as the new South Eugene Robotics Team website, which may be viewed by visiting SouthEugeneRoboticsTeam.github.io. I am also in the process of converting this site to use Jekyll, as well.

Server Management

Linux, *nix

Linux is an extraordinarily useful operating system when it comes to development. I've managed many Linux servers using the command-line interface and run many websites and applications on Linux VPS's.

Load Balancing - Nginx

I've used Nginx extensively for load-balancing applications and websites. Nginx makes load- balancing a breeze, and keeps servers running incredibly fast.

Security, DNS Management - Cloudflare

Security and DNS Management are both incredibly important for every website. Fortunately, tools such as Cloudflare allow easy management of both, and I've used them to protect many servers from DDoS attacks and nasty web-scraping bots.

Robotics

Software - Java

Working on creating robot software with the South Eugene Robotics Team has helped me not only refine my Java skills, but also refine my productivity in a team environment. Working on robot software has been incredibly challenging at times, but simultaneously incredibly rewarding.

Vision Processing - Python

I've used Python and OpenCV to track goals and target objectives. This vision code returns delta values to the robot software, where we then tell the robot where to move next in order to perform the objective.

Version Control

Git, GitHub

I've been using Git and GitHub for many years and, over that time, have learned the best practices and have developed many Git related skills to maximize the utility of version control. I started out by using GUI interfaces to interact with Git and GitHub, but have found overtime that the command-line interface provides much more utility and simplicity.

Contact Me

andrew@andrewda.me