David Baker Effendi

Stellenbosch University · Cape Town Area, South Africa · +27 83 432 4666 · dbe@sun.ac.za

My current position is as a post-graduate computer science student at Stellenbosch University with my current research focus being static data-flow analysis - specifically regarding issues such as scalability and real-world application. I leverage graph database technologies as the storage backend to much of my research.


Experience

Class Assistant and Hons Project Co-Supervisor

Stellenbosch University

Help students with course material during fixed sessions and online. Courses I have assisted or am currently assisting with are: vulnerability discovery and code analysis, functional programming, databases and web programming, computer networks, software engineering, and applied discrete mathematics.

February 2019 - Present

Internships

ACI Worldwide, CPT
December 2019 - January 2020

Frontend development in Angular 8 for payment terminal management software. Involved processing an input file, converting rows and transforming data into models, iterating through collection of models and posting resulting model to API. All features tested with Jasmin and E2E on a Jenkins pipeline.

MWR InfoSecurity, JHB
June 2019

Created a full-stack Vue.js, Tornado, MariaDB web application within two weeks from scratch. Deployed each of the three components using Docker and Docker Compose.

ACI Worldwide, CPT
November 2018 - January 2019

Maintained and added features to in-store software (Angular 6/Spring Boot/MSSQL) developed in the last internship (June 18 - July 18) and ended internship with being part of the architectural team for developing new time logging software. (Java)

ACI Worldwide, CPT
June 2018 - July 2018

Working under Postilion L3 Support to create maintenance and diagnostic software as web applications (Angular 6/Spring Boot/MS SQL) for clients and Help 24.

ACI Worldwide, CPT
November 2017 - January 2018

Working under Postilion L3 Support to create product enhancements for already present diagnostics software (Java) to serve clients and Help 24.

Intermittent

Education

University of Stellenbosch

PhD Candidate
Computer Science

Upgraded from MSc in 2021

Publications: Suitability of Graph Database Technology for the Analysis of Spatio-Temporal Data

February 2019 - Present

University of Stellenbosch

Bachelor of Science (Honours)
Computer Science

Cum Laude

February 2019 - November 2019

University of Stellenbosch

Bachelor of Science
Computer Science
February 2016 - November 2018

Grey High School, Port Elizabeth

Matric
Mathematics, Physics, Biology, and Information Technology
March 2011 - November 2015

Skills

Programming Languages & Tools
Preferred Stack
  • Flutter | Vue.js
  • Kotlin | Scala
  • TigerGraph | PostgreSQL | ScyllaDB
  • GitHub Actions | Travis-CI | GitLab CI/CD
  • AWS

Interests

Apart from studies and internships, I enjoy brewing homemade craft beers, gaming and exercise in the form of gym and occasional runs. I also enjoy the fine wine of Stellenbosch and Scotch will always be my favourite of the whiskies. Most recently find myself occupied with cooking, baking, and gardening.

In high school and my undergraduate I was a member of the ballroom and Latin-American dancing societies. This is something I've only found useful at weddings these days.


Awards & Certifications

Leadership

Member of the House Committee

Helderberg Men's Residence
September 2018 - September 2019

Head Mentor

Helderberg Men's Residence
September 2017 - September 2018

Mentor

Helderberg Men's Residence
October 2016 - October 2017

Projects

Plume

JVM bytecode code-property graph (CPG) language frontend

Plume is a Kotlin library with the purpose of extracting a program's code-property graph (CPG) from JVM bytecode. The graph is persisted in a graph database of which the library supports multiple. Dataflow analysis is then performed on the CPG to track multiple dataflow issues.

This project is part of my MSc and is my current main focus. The source code and example usage can be found on the project's GitHub Organizations page and documentation found here.

Plume was submitted to the TigerGraph 2020 Graphathon and won 2nd place.

March 2020 - Present

VSC TigerGraph Extension

Syntax highlighting tool for GSQL

A community driven GSQL extension for VS Code. Due to the absence of extensions for GSQL on VS Code (one of my main code editors) I took the initiative to make my own starting with syntax highlighting. This can be found here.

May 2020 - Present

Yelp Open Dataset Quickstarters

Quick ways to get started with data analysis on the Yelp dataset

I've open-sourced three small projects that can help one get started with analysis on the Yelp dataset by providing a data cleaning script and import guides for TigerGraph and Neo4j.

This code was used for my 2019 honours project and for the RW334 web development course. These are the three parts of the code:

March 2019 - March 2020

Providentia

Database benchmarking suite

This is a web application that measures the query response times of 3 databases on queries and data analysis similar to those found in the real-world. The three databases benchmarked are JanusGraph, PostgreSQL, and TigerGraph.

This is the code behind my 2019 honours project and is what collected the results for my publication.

March 2019 - March 2020