Karl Penzhorn, Developer in Cape Town, Western Cape, South Africa
Karl is available for hire
Hire Karl

Karl Penzhorn

Verified Expert  in Engineering

Multiprocessing Developer

Location
Cape Town, Western Cape, South Africa
Toptal Member Since
March 29, 2016

Karl is doing his PhD part-time in numerical analysis and is looking for work to compliment his skill-set: C, writing solvers and matrix libraries, and speeding things up with CUDA. He has a lot of low-level experience, writes cross-platform code, and knows how to create beautiful visualizations of datasets.

Portfolio

Strategic Water
Prophet ERP, Pandas, Python
Feral Design
Amazon Web Services (AWS), Docker, Django
PiSeas
Python, NVIDIA CUDA, C

Experience

Availability

Part-time

Preferred Environment

Linux

The most amazing...

...thing I've coded is an LU factorization linear solver with partial pivoting.

Work Experience

Developer

2018 - 2018
Strategic Water
  • Created timeseries predictions using various data science libraries and techniques.
  • Implemented a REST API for managing the data server.
  • Deployed and managed Amazon EC2.
Technologies: Prophet ERP, Pandas, Python

Back-end Developer

2018 - 2018
Feral Design
  • Supported servers for the web front-end.
  • Deployed and managed features using EC2 and Docker.
  • Built staging and production servers, with testing.
Technologies: Amazon Web Services (AWS), Docker, Django

Consultant

2017 - 2017
PiSeas
  • Coded a 2D data smoothing algorithm with visualization.
  • Wrote a tri-diagonal linear solver to implement a Crank-Nicholson scheme for heat equations.
  • Created spline interpolation functions of CSV data.
  • Wrote initialization and solvers on GPUs using CUDA.
Technologies: Python, NVIDIA CUDA, C

Blog Writer

2016 - 2017
Stormpath
  • Wrote various tutorials explaining how to use Stormpath's user management system with various platforms (Java, React, React Native). Also wrote interest pieces like how to secure JSP web pages. https://stormpath.com/blog/author/karl.

Freelance Writer

2016 - 2016
The eTraffic Group
  • Wrote a blog series on web speed optimization, explaining to non-technical readers how the internet works and how to use simple tools to evaluate website speed. https://www.etrafficwebmarketing.com.au/categories/website-speed-optimisation/.
  • Started a blog series on how PHP works, explaining to beginners how it works under the hood and how to understand its relationship to other technologies like HTML https://www.etrafficwebmarketing.com.au/blog/php-primer-help-position-brand-success-part-1/.

Senior Engineer

2010 - 2015
SOLIDitech
  • Created a job scheduling module with a JSP front-end and a REST back-end that was tied to OSWorkflow.
  • Wrote multi-threaded JDBC migration scripts with object validation reports from Oracle to MySQL database schemas.
  • Designed a modular front-end component system based in JSP to minimize code reuse.
  • Developed training materials for business platforms, Java coding, back-end support, and system architecture.
  • Created a time-independent interest charge calculations module for a financials core with regression tests.
Technologies: MySQL, Jakarta Server Pages (JSP), Hibernate, Eclipse, Apache Tomcat, Java

Finite Element Analysis

For my PhD, I am building a finite element gradient plasticity code in C, tying together various systems I wrote myself—an LU matrix solver, a matrix library with preallocation, an iterative Newton-Raphson solver for the non-linear equations, cross-platform stack traces, graphical animations of the output, and multi-threading. Wrote high-performance code for GPUs using CUDA and using multithreading locally. Also converted Matlab to C using outputs to compare results one line at a time.

Numerical Modeling of Fish Populations

Helped design algorithms and implemented the code for predicting the population of fish based on various data. Created 1D and 2D smoothers to allow for taking derivatives on the data, which we had planned to input into a Newton-Rhapson type algorithm to find optimal parameters in our model. Also wrote various solvers to optimize for speed as well as using GPUs for parallel processing through the nVidia library CUDA, which we ran on Google's Cloud infrastructure.

Remote Process Scheduling and Monitoring

Upgraded our in-house ticketing system to allocate remote jobs, which were scheduled in a calendar and manageable through our administrative interface. It also exposed a REST API so our mobile app could connect to it, allowing contractors to view their schedules and locate and update job statuses, all through their phones. It also allowed admin staff to be notified when jobs escalated for being late or overdue.

Oracle to MySQL Systems Migration

Migrated a platform from an existing Oracle-based ERP system to new MySQL database tables, mapping fields, validating data, such as customer names and addresses, and generating reports for offending results. Customers, contracts, products, and the entire financial systems were all done through independent modules using a common code.

Redesign of JSP Interface Architecture

Won the bid among our top developers to retool our front-end interface platform by designing a modular JSP-based component and layout system.

Training Courses for Client Developers

Many of our clients had their own in-house developers who needed to be trained on the new system they were going to support. I was tasked to develop the courses and exams for training and certifying external coders with our system architecture, development tools, and best practices.

Real-time Overdue Interest Charge Calculation

Recently, one of our larger clients wanted to start charging for interest on overdue accounts, for some 350,000 customers. Along with another developer, I wrote the system that enabled the charge calculations based on timestamped financial transactions in the financials core. To understand how much each customer was overdue at any point in time, we took things like dynamic prime lending rates and custom charge dates into account.

React/React Native Tutorials

Wrote tutorials for a SaaS company on how to set up and create React and React Native applications that are authenticated and that access and control a remote data display.

Timeseries Prediction

Using various Python libraries (e.g., Facebook Prophet) I implemented a REST API for a startup company to process time series data coming from Asana, producing things such as decomposition and forecasting.

Languages

C, Assembly, Python, Java, C++

Other

Freelancing, Numerical Methods, Algorithms, Multiprocessing, Writing & Editing, Cloud Computing

Platforms

NVIDIA CUDA, Linux, Eclipse, Amazon Web Services (AWS), Docker

Frameworks

Hibernate, Jakarta Server Pages (JSP), Django

Libraries/APIs

Pandas

Tools

Apache Tomcat, Prophet ERP, MATLAB

Storage

MySQL

2007 - 2010

Master's Degree in Mechanical Engineering

University of Cape Town - Cape Town

2001 - 2005

Bachelor of Science Degree in Mechanical Engineering

University of Cape Town - Cape Town

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring