Darnell Andries

Darnell Andries Hello

Hello!

I am a passionate software architect/engineer, who focuses on full-stack web & Android applications. Jack of all trades, master of a select handful. 😉

My work has consisted of different projects in academic, corporate, personal and freelance settings. Feel free to explore my projects and connect with me on LinkedIn!

Over time, I have accumulated numerous programming skills with different frameworks and technologies.

Strong Skills!
  • Rust
  • Node/Koa/Express
  • GraphQL/REST architecture
  • Javascript/ES6/Typescript
  • React/Redux
  • Docker/AWS/Terraform
Also decent at...
  • Solidity
  • Spring Boot - Java/Kotlin
  • Android - Java/Kotlin
  • Python/Django
  • C
  • Angular
  • Penetration testing (Metasploit/other Kali tools)
Have worked with...
  • Ruby/Rails
  • PHP/CodeIgniter
  • JQuery
  • Jenkins
  • Travis CI
  • Codeship
  • React Native
  • C++/C#
  • Cordova
  • Bitrise
  • Tensorflow/Keras/TFJS 🤖
  • Little bit of k8s...

Let's chat!

Email

Email me at darnell@andries.ca

LinkedIn

Connect with me on LinkedIn

GitHub

Fork my projects on GitHub

Resume

View my resume / CV

Projects

Present

Android VPN Manager

August 2021, Android/Kotlin

VPN management/automation application for Android. Supports Wireguard and OpenVPN.

Check it out on GitHub.

sbsimple

March 2021, Shell

Utility for setting up UEFI secure boot in a simple way. Focused on Arch Linux + GRUB setups at the moment.

Check it out on GitHub.

Goals dApp

March - May 2021, Solidity/React/Redux

Collaborated with friend to create a fully decentralized goals tracker web app. Uses Ethereum blockchain as a backend.

Check it out on GitHub.

Cubik / Wolf Pack

November 2020 - February 2021, Rust
Wolf Pack

OpenGL/glium-based multiplayer 3D game framework (cubik) and partially finished multiplayer battle royale game (Wolf Pack).

Check it out cubik and Wolf Pack on GitHub.

2021

picodo

October 2020, C
picodo

Bicycle odometer/speedometer firmware for the PIC16F87X microcontroller.

Check it out on GitHub.

gpio2pic

September - October 2020, C

GPIO based in-circuit microcontroller programmer/debugger for the PIC16F family. Tested on the PIC16F876.

Check it out on GitHub.

desk-otp

September 2020, C
desk-otp

Desktop one-time password widget designed for Raspberry Pi + 320x240 framebuffer-enabled LCD. Encrypts OTP keys with PIN sequence entered via GPIO buttons.

Check it out on GitHub.

dquickstat

August - September 2020, C
dquickstat

Remote system statistic monitor for Raspberry Pi.

Client runs on the monitored machine, and sends statistics to Raspberry Pi with a 320x240 framebuffer-enabled screen.

Check it out on GitHub.

dotp

September 2020, C

Small time-based one time authentication (TOTP) C library. OpenSSL based.

Check it out on GitHub.

fbmagic

August - September 2020, C

Simple C library for drawing graphics to a framebuffer display device.

Check it out on GitHub.

Serverless contact form mailer

August 2020, Terraform

AWS-hosted contact form mailer. Handles POST requests and sends emails to pre-configured contact email.

Check it out on the Terraform registry and GitHub.

Android Port Knocker

August 2020, Android/Kotlin

Simple network port knocker app for Android.

Download & install on F-Droid. Check it out on GitHub.

freemaker

August 2020, Ansible

Ansible playbooks and guide that replaces mainstream cloud software.

Sets up self-hosted e-mail, Nextcloud (Google Drive/Calendar/Photos replacement). Secures the server using numerous techniques.

Check it out on GitHub.

funnyfarm/dreamfire

April - May 2020, Typescript/Node/Apollo GraphQL
funnyfarm

Created three COVID-friendly multiplayer web-based games. Uses Apollo GraphQL to handle WebSocket subscription/mutation communication.

The dreamfire framework was created/published for web-based multiplayer game development.

Play some games at funnyfarm. Check out dreamfire on GitHub: dreamfire

dtorr

February - March 2020, Python, wxWidgets, C
dtorr

Simple torrent client with a library handling networking communication (in C, called libdtorr) and a user interface/front-end (in Python/wxWidgets, called dtorr).

Takes advantage of non-blocking I/O which reduces the numbers of threads (one network thread, one UI thread).

It's cross-platform (Linux/Windows).

Check it out on GitHub: dtorr, libdtorr

2020

Offensive Security Certified Professional (OSCP)

November 2019 - February 2020, certified June 2020
OSCP

After years of software development experience and "blue team" security, I wanted some insight on penetration testing, and "red team/hacking" specific security.

The OSCP was a great fit for this. Over three months, I learned the fundamentals of enumerating systems for vulnerabilities, taking advantage of exploits, exploit development and privilege escalation. A lab VPN containing many vulnerable machines was provided to students to learn and develop their hacking methodology.

Within 50-60 days of the provided lab time, I was able to gain administrative access to over ~40 machines. In June, I scheduled my 24 hour exam which involved gaining access to five machines within a network. The exam is notorious for its difficulty, with many students performing multiple exam attempts to gain their certification. After developing a fool-proof methodology, I was able to complete the exam within 11 hours on my first attempt. This course/certification has given me another perspective in regards to cybersecurity, which has significantly improved my abilities as an engineer.

cli-oauth-client

October 2019, Node

NPM library and CLI tool that requests OAuth 1.0 tokens without need for a remote server. Designed for CLI tools that require three-pegged OAuth authentication.

Check it out on Github: cli-oauth-client.

dhackasm

October 2019, C

Nand2Tetris project. Assembler for the "Hack" assembly language. Produces binary code from assembly. Performant; assembles Pong in ~40ms on a standard machine.

Check it out on Github: dhackasm.

dminesbot

January 2019, Python
dminesbot

Quick and dirty Minesweeper bot.

Check it out on Github: dminesbot.

2019

Lazylocal

Launched May 2018, Dev. October 2017 - present, Node/Koa/React/Angular/Android/ES6
lazylocal

Translation management engine SaaS. Automatically translates apps into 100+ languages. Ability to make tweaks and updates to translations without a software update.

Available at lazylocal.io.

magicnes (along with magic6052 / magic2c02)

May - June 2018, C
magicnes

A partially working NES emulator. Modular CPU (NMOS 6502) and PPU (Ricoh 2C02) emulation libraries included.

Check them out on GitHub: magicnes, magic6502, magic2c02

2018

Bookshelf.js plugins

December 2017, Node

Contributed two plugins to the Node object-relation mapping library, Bookshelf.js:

bookshelf-default-select (GitHub, NPM)
Enables default column selection on a database level.

bookshelf-ez-fetch (GitHub, NPM)
Convenient fetching methods which allow for compact filtering, relation selection and error handling.

Photocollect

June 2017, Angular/Rails
photocollect collection page

Web application used to organise Google Photos albums into shareable collection pages. Uses Google API to fetch & display album data. Material Design look & feel.

Check it out here!

Drag Timetable

February 2017, JS/ES6
drag-timetable demo

Generates timetable, with custom times & sizes. Easy drag-and-drop for changing times of tasks. Simple API to add/remove/retrieve tasks. Created for personal purposes for future project, but released under MIT License.

Install it via NPM, or fork it on GitHub!

2017

Windows Tower Defender

September - December 2015, C#/Unity

Multiplayer Tower Defence game in C#/Unity3D. Academic project with a team of eighteen students. Contributed game logic algorithms and integrated network communication.

Old Interurban Forest Preservation Society

Launched July 2015, Dev. July 2015 - present, Bootstrap/JS/Django
Old Interurban Forest Preservation website

In my hometown, a group of residents started a movement to protect a forest from development. We started a society to lobby the city to preserve this precious area. So far, we have had many converstations with the city council of Burnaby. In order to advertise the movement, a website had to be created. I built this website with a members-only section, where registered members can log in and view city documents. We also have a private mailing list built into the website. The backend functionality was developed using Django/Python.

You can learn more about the movement here.

Genetic Magic

June 2015, Bootstrap/JS

Created a visualization of a genetic algorithm as a hobby project. Used jQuery and Bootstrap technologies for presentation. Built JavaScript logic of binary genetics, including chromosome mutations & crossovers.

The project uses the algorithm to solve a simple problem. Let's say we have a list of 10 numbers. We must find two equations that use all the numbers in the list. One equation will only use addition and the other will use multiplication. One number in the list can only be used in one equation. These equations must satisfy a target sum and a target product (can configure in the application). Each circle in the visualization represents a chromosome, which contains two equations as possible solutions. Each ring of circles is a generation. A chromosome in the next generation will be a product of two chromosomes from the last generation (two parents create a child). A chromosome will be given a score (0 to 1), which will determine the 'fitness' of the potential solution. The parents of a child chromosome will usually be the fittest chromosomes within their generation. Once a chromosome has a fitness score of 1, the solution is found!

Try it out on web, or clone it on GitHub!

Curatio Networks Android Prototype

May 2015, Android/Java

Built working prototype of the Curatio Networks client with a team as a student industry-sponsored project. Added communication & authentication with existing REST API endpoint. Used API model data to create graphical visualizations for users.

You can learn more about Curatio here.

Albert's Hell

January - April 2015, C#/XNA

Worked with academic team to create side-scrolling 2D game within one semester. Used C# and XNA Game Studio technologies for implementation. Involved in level design, basic physics handling, XML map parsing, and NPC AI.

This game includes voice recordings from one of our favourite instructors! Level names are named after Dante's Inferno, and includes a great final boss. There are some cheat codes if you wish to skip levels. Press any key from 1 to 9 to select a level, and press the C key to see the credits.

Download it here!

2015

Quiz Bank

May 2014, JS/PHP

Worked in academic group to create a jQuery Mobile/PHP web application which allows students to test themselves with submitted questions for specific courses.

2014