Karl Penzhorn, Multiprocessing Developer in Cape Town, Western Cape, South Africa
Karl Penzhorn

Multiprocessing Developer in Cape Town, Western Cape, South Africa

Member since October 19, 2015
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.
Karl is now available for hire

Portfolio

Experience

  • C 10 years
  • Linux 10 years
  • Multiprocessing 5 years
  • C++ 5 years
  • Numerical Methods 5 years
  • CUDA 2 years
  • MATLAB 2 years

Location

Cape Town, Western Cape, South Africa

Availability

Part-time

Preferred Environment

Linux

The most amazing...

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

Employment

  • 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), 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, 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, JSP, Hibernate, Eclipse, Apache Tomcat, Java

Experience

  • 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.

Skills

  • Languages

    C, Assembly, Python, Java, C++
  • Other

    Freelance, Numerical Methods, Algorithms, Multiprocessing, Writing & Editing, AWS, Cloud Computing
  • Platforms

    CUDA, Linux, Eclipse, Amazon Web Services (AWS), Docker
  • Frameworks

    Hibernate, JSP, Django
  • Libraries/APIs

    Pandas
  • Tools

    Apache Tomcat, Prophet ERP, MATLAB
  • Storage

    MySQL

Education

  • Master's degree in Mechanical Engineering
    2007 - 2010
    University of Cape Town - Cape Town
  • Bachelor of Science degree in Mechanical Engineering
    2001 - 2005
    University of Cape Town - Cape Town

To view more profiles

Join Toptal
Share it with others