Nicholas S. Boutboul

What I'm doing

I decided to take some time off this winter to work on some hobbies of mine, video and music production. I am also building a unique gaming matchmaking service using the DiscordAPI. Ask me about how I saved 15% on car insurance.

My daily medicine

Projects I worked on is a revision platform for artists. It keeps track of previous version of a project in a GIT like manner, also handling file uploads to facilitate project file sharing. One time line where an artist and a client can share details and talk about past versions of a project to see the full picture. The project is still being worked on...

Javascript, NodeJs, Express, Passport, JWT, MongoDB, Mongoose, Webpack/Babel, SocketIO, Multer, ReactJs, Axios, PM2, Digital Ocean connects any two given wikipedia articles by 6 degrees of separation or less. This project required more thinking than actual code. Reading up on API's and different algorithms that might help us parse thru the hundreds of thousands wikipedia articles was a daunting task, but in the end we found a way. By downloading all of wikipedia (wikipedia has monthly dumps) we can then parse those SQL dumps to get the info we need and generate a sqlite database with just the right info for our algorithm to use. The rest of the info such as image links and page description can all be fetched via the wikimedia api. A modified bi-directional algorithm then sorts thru thousands of incoming and outgoing links and returns the results for the front end team to display. I, along with Jacob Hartman, where in charge of making a production level API for the front end to query along with all of the backend requirements such as caching previous searches and optimizing the algorithm from >15 seconds back down to a reasonable <2 seconds.

Python, Javascript/Node, Flask, Express, ReactJS, Sqlite3, Gunicorn, Upstart, Digital Ocean


slashBot is a discord bot that primarily streams music from youtube to play it in a specific channel. This was a really fun project and gave me some insight on how bots worked along with how to work with an NLP. Overall I was satisfied with how it turned out, I planned a lot of features I never got to finish but since I spent a lot of time laying out scaffolding I can add mods very simply and efficiently without changing much code.

Javascript/Node, Mongo, Mongoose, Redis, Express, API.AI(now Dialogflow), Digital Ocean


Reddit on the command line. This was one of my first Javascript project. It taught me about API's, JSON Structure, ASYN javascript, callback hell (why promises are better) and most importantly I learned about refactoring code. Originally I had written the same function multiple times and when it finally came time to update one thing I had to update it in 4 other different places, at that point I knew I was doing something wrong. This project was really fun and overall gave me good foundations on code modularity

Javascript, NodeJS

Raising the Terrain

This was a side project I completed a week before break. I wanted to understand how early video games where made and since I had learned C I wanted to use it in a project. The task seemed simple, turn a file with points represented by altitude into a isometric grid using SDL2. This project exposed me to lots of new ideas and showed me how complicated video game engines actually are.


Simple Shell

This project straight forward. Make a shell interpreter along with all of its basic features. This project solidified my knowledge in C, applying everything I had learned into this project. I wrote a function that made me very proud, at the time it was something new, it solved multiple problems, it refactored a lot of code and it was very efficient. I called it... `_stralloc(int n, ...)`. It's a variadic function that takes `n` string literals and/or malloced strings and returns a pointer to a new string all concatenated up. It was very fun and I think C is a really interesting language. I preferred to debug in C rather than Python or Javascript because it's challenging and you almost always learn something new I would want to work on a project with it again.