Home
B(ENG) Mechatronic Engineer
Curriculum vitae:
C.V - New Style - Comprehensive (April 2024)
C.V - New Style - Comprehensive (Nov 2023)
C.V - New Style - Comprehensive (Sep 2023)
C.V - New Style - Comprehensive (Oct 2022)
C.V - New Style - Short and sweet only recent roles (Nov 2020)
C.V - New Style - Comprehensive with tech (Nov 2020)
C.V - Old Style - Short and sweet (Nov 2020)
C.V - Old Style - Comprehensive with all roles+tech (Nov 2020)
Other Profiles and Highlights
https://jonginenge.co.za/livecams/index.php (Surfing and Security Cams)
View screenshots of the Jonginenge Live Cams
Twitter (my interests)
GitHub - All the Typescript BugFix's and + Improvement Request/suggest Issues
GitHub - Repositories of my work
Collatz Conjecture - fastest solution for generating chains, using and Inverse iteration approach that supports - the ability to multi-thread the problem. There is no wasted computation on repeats of an iteration, or having to check it is or is not possible correct, next generate iteration is always correct, so, therefore, it is just single once an off-chain generation iteration process order O(1) or O(max_chain) no lookup times or anything like that.
Typescript - Type generation from a schema, without pre-processors or scripts, only the TS language.
HTML/ JavaScript features - Specific functionality and features I have written.
What modern programming languages are still missing?
Interests:
Developer Blog - Thoughts on developing, that attempt to move us forward.
http://labs.divx.com/node/7029 - Nvidia - cuda the DivX encoder process, who interested and keen?
http://labs.divx.com/taxonomy/term/25?page=6
MERCEDES-BENZ - SOFTWARE ENGINEERING
Lead Software Developer/Engineering + Product Own (Robot Early Fault Finding - FFE)
Deliver numerous improvements, new features, and innovative solutions to ongoing development of Just-in-Time (JIS) edge factory for supplier parts, an ETag React App NodeJs App solutions such as EDI integration and Lower Level Reader Protocol (LLRP) Implementation of adaptors for different hardware vendor devices API. Assumed existing POC PHP+MSQL application tasked with making significant performance improvements and enhancements to data richness and data structures to increase reporting accuracy. Targeting 1 year of BigData storage for FFE, 3/4 billion records per plant. Collaborate with peers and leadership teams to ensure project objectives and overall business needs are met.
Just-in-Time (JIS) edge factory for supplier parts, acknowledged for writing LLRP protocol implementation which has been running live in manufacturing production line since September Sep 2021 and many features in our full-stack React App, team of two for Just-in-Time (JIS) edge factory. My total change is 188 of 188 LLRP + 140 of 190 Full Stack git changes in 5 months.
Contributed numerous changes to Just in Time Supply (JITS) Edge Factory factory for supplier parts, stack build on NodeJs, React, Linux OS, Raspberry Pl with EDI integration, upgraded to TypeScript 4* and latest compatible React, Multi-form factor device layout scaling, sizing for label and validation feedback, input in css, css-selectors, flexbox; designed React input control multi-culture (symbols) numerical input and formation validation, effectively overcoming JS quirks of whole and decimal numbers API.
Implemented Key Typescript Contracts for HTTP REST Request, response including headers, and status codes, enabling inference of server controller and client API JSON structures, for validation at design stage.
Extracted, separated and recovered existing PHP application FFE (Early Fault Finding for 13500 robots plus - Bremen, Sindelfingen, Rastatt, Kecskemét Plants in Germany), East London from existing application stack with 5 code base variants compared and resolved into single coherent and correct code base. Migrated PHP (MS-TSQL, SAP) 5.3 to PHP7/8, requiring library re-works and migrated through three data centres. Legacy code bugfix and revamped architecture for enhanced data structures and richness for all reports to improve accuracy and performance for Big Data (1.5billion records less 0.5s for any period) and correctness and bugfix, feature improvements MQ 17.5mil peaking 20+ mil daily for one year, peaks of 185K in three minutes. 50 git changes in less than one month after code base was unified. 786PHP + 200 of 200 IBM-MQ git changes and migrated through three data centres and upgrades PHP 5 to latest SQL server. Solely fully automated Azure deployments after two months, within 1-2 weeks all scripted with redundancies and look into JEA for other juniors.
Added numerous new features to PHP + SQL: Blacklist Filters, Map Messages (Clean-Up), and Personal User Messages Filtering Rules on 6 Dimensions that support group and aggregation rules to reduce email notifications and more complex logic. Implemented optimized filter accurate ‘to the second’ for reports and durational period reports that event was raised for/or length in time an alarm went off.
Created algorithm in Memory T-SQL and custom-made table as an index for retrieving and filtering big data logs with minimal data storage, indexes overhead and sub 1-100ms custom-continuous paged browsing.
Re-Wrote C# POC consumer of IBM Queue Get, with blacklist filtering algorithm and topic message dump filter for live MQ traffic debugging of robot traffic using PHP frontend; feature a continuous TCP connection, non-dropping, timing out or re-connecting, highly concurrent, chained of Threadpool workers, 400 plus MQ workers; featuring Back pressure, throttling, queuing buffer, upstream and downstream Impedance Matching predicting algorithm, to prevent staling while being agnostic to and eliminate network IO, latency issues (350ms); addressed issues such as partial whole number rounding (prediction) and exploding memory, CPU spinning, idle power consumption, when threading; 1400msg+/second (20MQ+30DB threads), old hardware.
Developed messages filtering on four dimensional/fields with each supporting multiple wildcards per field/dimension that uses optimized Prefix/Suffix Binary Tree Search log(n) with mixed-in Last n HitCount, optimization where applicable, to keep growing list of filters execution time optimal and constant.
Downstream chained ThreadPool of continuous TCP connection DBWrites determining best operating point for highest concurrency without degradation in performance; Pipeline Benchmark of DB yields 30000 records per second on Laptop; reusable library featuring chaining of ThreadPool workers queues; started a custom three-way transaction manager for catastrophic crash/failures of any system part whether current system, upstream, or downstream, avoiding loss or duplicate message delivery; enables any kind of system to be coupled together and have future transaction reliability.
C# Application server Rework Legacy TCP/UDP program Krmsgnet, new DB fields, normalization, validation, message decoding backwards compatible v1, v2 and irrelevant of comms TCP/UDP and connection termination issues and continuous connection problems with TCP resulting in memory bloat and port exhaustion and disconnect after single message.
Separated existing POC PHP+MSQL application from existing application stack, migrating to new PHP 7/8 stack version with many bug fixes, revamping architecture to improve performance and reporting accuracy.
BDD Software development - Client Vodacom
Financial Services Team(FS), for the initial design phase, development of some of the Web and Mobile frontend and backing microservices and integration of a journey spanning multiple upstreams services. The project required one to allow a user to make purchases for 3rd party services, such as electricity products/services, using one of 4 payment mechanisms of which VodaPay was one of them. The journey composition of frontend/backend change as the journey progressed. Advised to use queued, persistent state, transactional comms(undoable/self-cleaning/healing), processing mechanism as opposed to the origin continuous open connection from the client for up to 6 minutes, that is to perform all upstream work. tech NodeJS, expresses, Mobile-react-native, Web
App Enablement Squad pulled off FS and took responsibility to fix native mobile widget that was not functioning correctly on various levels, dated OS compatibility, Auth Failing, Reliability, safe failover, Screen Layouts, UI flow/mechanisms, Threading Requirement, Services, Battery life Optimization, upstream issues. State fixes through various sections, the react-native to react-native-bridge and native android code.
OTP injection helper framework for react-native-bridge, to assist automatic OTP reading from SMS.
Customer Permissions Management, dynamically driven business logic journey in react native, and chapters chosen dynamically, as they are not known upfront based on server response, the paragraphs of the chapter processed for that section. UI work using flex, to achieve shrinking screen for small device, reduce unnecessary re-rendering and alternative method to sync data to server, without requiring explicit saving, foundation to simplify holistic wiring form controls.
Redblade Software
Work on the backend of a loan platform system that takes 6 minutes to process a loan until the money is in your bank account and handles all billing interest calculations, debits, credits, billing.
Worked on a loan platform system, designed such that the user journey frontend/backend composition and flow of configurable block unit of tasks/functions wiring is dynamically configurable from the administrative panel, which eliminates the requirement for any further software development. It makes use of a persistent state queue-based communication mechanism.
Built atop AWS (SNS, SQS, SWF, EC2) based on a MEAN stack originally, however, has few adaptations with a postgres mirror for reporting, retrofitted typescript and a Mongo db approaching 1.6TB. System critical flaws; race; throttling; bug fixes; database-data-fixes(scripts/projecting) and many admin UI improvements to simplify configuration and relationship navigation between the settings.
Bug Fixes (Long Polling-Event Query, SFTP service) any other task, migration to typescript, instrumenting code coverage, more tests and improved factory configuration to provide system flexibility for swapping out subsystem with mock systems. Ideally allow one to run as many tests locally as possible and then only certain sets, different build configuration, depending on 3rd party support and cost of using their services.
Took ownership of the developing a typescript(TS) framework we call JoiX (wrapper of joi), that allows defining of runtime schema, while implicitly defining the TS type constraints for use at design time. This prevents one having to have any plugins or preprocesses, as it is natively supported by typescript at design time. It forms the base of our configuration loader, with factories support framework.
Took ownership of the upgrade to TS targeting 2.4, to ensure all basic building blocks were in place; development of mongoose types for TS using the builder pattern for type inference, supporting populate and deepPopulate, to produce the correct composition of fields-and-modifiers for the final query resulting shape and CRUD operations validations of shapes and types. Improved the C# schema generator using an annotations approach. It required backwards compatibility and peace meal upgrading approach when upgrading missing, corrected-unified-type or suitable weaker fail-over type, for a consensus across mongoose, postgres, typescript, swagger-api . Major refactor of generator and mongoose TS type to use interface composition, with an improved generic TS type templating pattern, boasting a 3 X performance gain and linearly scaling minor memory usage.
Also revamped this to simplify things drastically and allow runtime and typescript types to be defined at the same time. It features an adapter mechanism were typescript is a first-class citizen for determining the shape and structural form, with an alternative approach to annotations for adapter specific configuration, for translation of schemas to different systems. Schema can also be partially defined index into a complete schema for runtime database, ensuring all logic for unit code to work is in one place and not distributed all over the place. See github, not all just there yet.
Have come up with a new mechanism I call tail-recursive validation technique for typescript, that allow validation of recursive structures were the type constraints vary with each nested iteration.
A strategy was employed, whereby existing endpoints controllers code would be upgraded to TS, swagger definitions validated by exercising prod run of endpoints to ensure system fields and types correlated between different domains. A tedious, meticulous, methodical approach of inspection of database records and code interrogation to identify an upgrade path to put the whole system into consensus. Implicitly resulted in creating TS projection helpers and mongoose TS build pattern improvements for implicit type inference. Execute all said upgrade changes, implicit fixing of bugs on system-wide bases to approximately 30 repositories that sharing typing repository of definition on the order of 5000 unique fields. Migrated the backend NodeJS system from typescript 2.8 to 3.2.
Uncovered a new approach to architect code structure for working with Amazon SWF approach style, that results in simplified contained units of work with all related code and lookups, which can be type-checked across the board. Units of work then index at compile time and are then used to assemble a database schema with migration support and API endpoint code. This also units test to be written.
This approach should be suited to both c# dot.net with annotations and typescript, with 2.0 typing enhancement for type extraction as above. The abstract pattern is suited to abstract data capture and interrogation of capture data or potentially cross interrogation of captured data, were by a harnus, will compile the database and maintain the database schema dynamically with version mutation support. Each abstract unit can be used in SWF type flow or own SWF implementation or run on API interface as all the same abstract pattern. frontend is free to change the layout of the captured information. This means that the system should remain maintainable at scale with high productivity and ability to easily change the wiring as the whole system is type-checked, can detect a problem at build time.
Links:
1. TS Community Submissions and improvements
EMSS Consulting as a Software Engineer.
Click here to see the real details of work undertaken and examples.
He started the Netcon Import Process re-write in c# dotnet core with current CTO at the time for a period of about 4 months, he then became responsible for finishing, validating, auditing, bug fixing the old and new product for just short of his tenure. Improvements reduced a weekend process to two hours, to highlight a section reduced to 9.5s versus the typical approach of 15 minutes, by having a sound understanding of the internals, databases, cursors, indices.
He also solely took on the IXUS: Mobile site inspector/Manager project, that used a custom sqlite sync database mechanism. He then re-vamped portions of the data capture workflow; server, client, operator communications for errors, reliability, clarity, which prevents unintentional loss of work, especially with locking features that were enhanced; As well Improved camera functionality support.
Took over Framtracksa product written in NodeJs, Typescript, Aurelia development from the CTO frontend/backend. The product logs vehicles gps positions while in the field. This historical information is incrementally indexed on ingestion and then presented in two formats: web maps visual format, featuring the route, speeding, teleportation, start, stop, idle events, row coverage; Summary reports, Alerts (Speeding, Coverage), Orchards Coverage, Diesel Stations, Crop Protection, Workshop, Vehicles, Human Resources, Overtime, Leaderboard. He worked with the client to validate and audit existing functionality, adding many new features, bugfix, bandaids and improvements to bring a working, usable product to the market.
He also undertook any other ad-hoc issues within the software department, which fell under his skill set, such as bugfix tweaks to the IXUS: Desktop simulation modeller software.
www.farmtracksa.com built using (NodeJS/Aurelia/TypeScript) for about a year now, while finishing off
Click here to see HTML/ Javascript Features - farmtracksa.com developed
Previously Employed by GLS Software with the title of Engineering software developer.
Work on Albion a sophisticated 2D CAD product for rendering GIS (geographic information system)
Click here for manuals and presentation on Albion
Swimming Course Conversion factors explained 2007/2008
Website and archives of the site I have developed over the years.
CNC 2D Optimization - Masterwood 313 - 2008
Optimization of 2D rectangular grid pattern for position location (drilling/sub program) on a CNC that does not support
a to 2 axis drill command. Read more
Adaption of Masterwood 313 CNC program to support multiple directories - 2008
One of the biggest limitations is being limited to 999 programs on a stiff and hard disk drive
as well as there being no ability to file programs descriptively or by function they perform. Read more
Access Swimming Manager - 2005
First developed due to the need of a simple free program that would facilitate the running
and setup of a gala once a year, to provide results, record-breakers instantly at the end of a gala.
This being the requirement by Parel Vallei High School for their Inter-house. inter-schools meet.
It was then later used to run Grey Dogs Swimming Gala in 2010. Read more
The program function is capture the basic essence of a product, store it and be able to easily
recall the information at in suitable logical format. So that a similar product could be accurately
manufactured, cost with minimal user input in a matter of seconds and
eliminating the chance of error. Read more
Some simple Programs written back in the day
Outlook Express - Roaming Profiles -2004
Outlook Express does not allow for the ability to have roaming profiles, like Microsoft Outlook.
With some minor registry tweaks namely exports/imports of registry files on log on/off,
that can be easily set up in server 2000/2003 or any server software. Read more
Web Results Manager for Team Manager 2004
This program provides you with a basic manner in which for you to connect to your
TMII (Team Manager 2) database, through a graphic user interface, to compile meet results
of swimming galas into a highly sophisticated HTML document, which would be easy to use
and upload to the Web.. Read more
Muffin is a simplistic deathmatch, free for Half life 1 map, and one of those that you design, so
that it will at least compile so you and your mates can play in your creation. Read more