Kevin Eloff

Stellenbosch Engineering Student

About me


Personal Summary

A highly motivated and hard-working electronic engineering student aspiring to change the world through the use of algorithms and software. Passionate about understanding the way the world works and applying knowledge and logic in the solving of everyday problems. Trustworthy, disciplined individual ready to take on any task given.

Skills

Key Skills:

  • High level logical thinking
  • Complex problem solving
  • Algorithm development
  • Software development

Programming Languages:

  • C
  • Python
  • Java
  • JavaScript
  • SQL
  • ARM-Assembly
  • VHDL
  • HTML5/CSS

Other Skills:

  • Fast learner of new concepts and ideas
  • Basic knowledge of AI (Machine Learning)
  • Driven to learn new things

Work Experience


Internship

Jan 2017

AB Ventures R&D

  • Worked on web application design
  • Utilised Linux CLI tooling in a development environment

Internship

Dec 2018 - Jan 2019

VASTech

  • Created a web-based user interface for viewing semantic models
  • Learnt how to use protocol buffers for data transmission

Education


BEng Electrical and Electronic

2017 - Present

Stellenbosch University

  • Currently enrolled in third year
  • Completed first two years cum laude

Secondary Education

2011 - 2016

Fairmont High School

  • Gr.12 standard grade completed
  • Achieved 86.7% aggregate for NSC final examinations

Coding Projects


This is a list of my current coding projects along with a short description. Each project is available on my GitHub.

Evolutionary RNN

Using genetic algorithms and recurrent neural networks to evolve a sensory based agent in the task of navigating an unknown environment


The agent is set in an unknown environment and given a destination. To get to the destination the agent must learn to navigate the environment purely based on its senses. These senses include:
  • x, y scalar distance between the agent's current position and the destination
  • 4 values set to 1 or 0 whether there is an adjacent block or not
  • 2 inputs set to the last move taken in both x and y (optional)
These 6 (or 8) inputs are then used as an input to a Recurrent Neural Network. This network has 4 distinct outputs actions being the cardinal directions the block should move per turn. This model is then trained using a genetic algorithm to find the best possible solution.


MyTelebot

A simple telegram chat bot created in python using python-telegram-bot api


This is a simple chatbot that works through telegram's api. It is able to extract queries from text and act accordingly. The bot makes use of Levenshtein Distance to assist it in locating keywords. The bot uses these queries to do various tasks, such as retrieving news from a news API, fetching images from url's, collecting and sending stickers or sending the current date or time. These are just some simple uses of this bot. It could further be used for controlling other scripts/servers/data in an easily manageble and interactive environment. This bot also works great in groups.


KevinEloff.github.io

Documentation in progress


...