
Marnus Weststrate
Verified Expert in Engineering
Full-stack Developer
Marnus is a full-stack JavaScript, React, and React Native developer with 14+ years of experience in web development, performance optimization, and architecture design. He has led teams of different sizes and development paradigms and managed and built multiple products from inception to production. Marnus is passionate about building and improving products that make the work of others more efficient and enjoyable. He communicates well and is active in the open source community.
Portfolio
Experience
Availability
Preferred Environment
Git, Node.js, Redux, React, JavaScript, TypeScript, React Apollo, React Native, SQL
The most amazing...
...product I've built is Flix Premiere, a video streaming app for independent film spanning 19 different platforms across web, iOS, Android, and smart TV/OTT.
Work Experience
VP of Software Engineering
Flix Premiere
- Led the design and development teams in building an enterprise video streaming platform for independent film distribution on 19 different platforms across web, iOS, Android, and smart TV/OTT, with 280,000+ user sign-ups to date.
- Managed and worked in the development team comprising in-house developers and contractors that released the initial product in four months on the web and native mobile at the 2016 Cannes Film Festival.
- Rewrote the front-end web app from scratch after the initial launch using React and Redux, reducing the bounce rate by more than 60%.
- Rewrote the mobile and smart TV/OTT apps in React Native and React Native web to consolidate all apps in a single codebase with a reusable API client and business logic. Increased maintainability and reduced the codebase by over 50%.
- Led the improvement and build-out of admin and CMS features for effective content management of thousands of films and actors and added integrated release scheduling, video ingest and encoding, email campaigns, and blog and press release management.
- Implemented a basic video and subtitles editor for clipping from films and splicing these together to form trailers to post on social media. Reduced the time spent by content creators by as much as 40% per asset.
- Created an image editor with Konva and HTML5 Canvas to quickly convert film screenshots to social media assets with cropping, text, and other overlays, such as logo images, and automatic resizing to the specs of different social platforms.
- Mentored junior developers to become productive team members.
React Developer
BioSort
- Collaborated with BioSort's computer vision team and back-end engineers, actively driving the UX design of the annotation front end and influencing the back-end API design.
- Added an easy-to-use segmentation tool for creating segmented outlines around fish using React Konva and HTML5 Canvas.
- Extended the React front end with an image browser to quickly review and tag large image datasets containing thousands of images for creating annotation tasks.
- Rewrote more than 95% of the Redux logic to untangle interdependent reducer functions, ensuring good performance with even tens of thousands of annotations, reducing the surface area for bugs by over 50%, and ensuring long-term maintainability.
- Modernized the integration with the REST API back end by moving data fetching out of Redux and using React Query for a simple, elegant, and optimized solution.
- Refactored and simplified numerous React components, particularly those for rendering the actual annotations and tools for creating them. By encapsulating this logic, enhancements and bug fixes now take minutes rather than hours.
Co-founder and CTO
PropertyClan
- Led the product design and development of the PropertyClan iOS and Android apps for individual property investors to discover and invest in new property developments, selling 40+ properties in the first 1.5 years.
- Implemented extensive financial modeling and projections of property investment opportunities, the back-end infrastructure, admin interfaces, and push notification services.
- Created a chatbot by integrating WhatsApp with the IBM Watson Assistant chatbot AI and Intercom for manual intervention while storing data inputs in the PropertyClan system and augmenting the conversation.
- Built a web scraper for crawling property websites to analyze thousands of daily listings and aggregate property value and rental figures over time by area.
- Integrated Freshsales CRM to capture Facebook and landing page leads and app sign-ups in real-time and send Slack notifications to sales agents.
Lead Developer
Inventorsspace
- Designed the workflows and user experience of the Inventorsspace web app.
- Implemented the web front end in React, initially using the Fluxible framework and later migrating to Redux with Sass and CSS3 for the style sheets.
- Created the REST API of the app in Node.js using the Sails.js MVC framework.
- Experimented with a client-side data layer that could use GraphQL introspection for effective querying and normalization of data into a normalized client-side cache.
Owner | Lead Developer
MW Consult (Self-employed)
- Wrote an AngularJS application for exporting data and configuring an embedded missile subsystem via an API built with the above MVC framework, including a Java applet for managing queued downloads of many large files.
- Coded an embedded MVC framework to enable easy implementation of web APIs for embedded systems in C++, using the Mongoose web server written in C.
- Wrote the initial API and admin interface for hearscreen.co.za, part of the hearX Group, for storing audiology screening test results online using AngularJS and PHP, Zend Framework 2, and MySQL.
Co-founder | Lead Developer
Property Frontier
- Collaborated with a chartered accountant to conceptualize and design the propertyfrontier.com application and workflow, which allows property investors to view financial projections and track portfolio performance.
- Wrote a financial modeling module for projecting investment property performance any number of years into the future with parameters that can be configured over time.
- Architected and implemented the server-side code and API in PHP using the Zend Framework with CouchDB for storage.
- Coded the client-side app using JavaScript MVC, including a custom client-side data layer and cache and the integrated financial modeling module.
Electronic and Software Engineer
Denel Dynamics
- Created measurement automation software in LabVIEW for measuring and storing on-wafer micro-sensor response characteristics with multiplexed probes.
- Wrote a C++ application for parsing raw flight test data files with fully configurable data types into structured HDF5 files that could be analyzed with MATLAB.
- Rewrote an embedded bootloader that could be used to reprogram various embedded devices in a system over a network in C.
Experience
Flix Premiere
https://flixpremiere.comI wrote the bulk of the code for the client apps, including a React web app, React Native iOS and Android apps, and smart TV/OTT apps for Apple TV, Android TV, LG, Samsung, Xbox, and many more. Because we used react-native-web, most of the UI components and business logic can be reused across all these apps, which improves maintainability. We used React Apollo to implement a single API client shared across all the apps for normalized, client-side data caching.
The admin and CMS back end allows for effective content management of thousands of films and actors. We also added integrated release scheduling, video ingest and encoding, email campaigns, and blog and press release management. The back end is written in PHP using the Laravel framework, and it uses an event sourcing and CQRS architecture.
Date-fns-tz Open Source Library
https://www.npmjs.com/package/date-fns-tzWorking with ISO date strings and JavaScript dates is easy when all times are displayed in a user's local time in the browser. The difficulty comes when working with a local time zone that differs from the current system's time zone; for example, on a Node.js server or when showing the time of an event in a specific time zone, such as an event in Los Angeles at 8:00 PM PST, regardless of where a user resides.
In this library, I used the JavaScript Intl API in a novel way to enable dates to be formatted for any time zone without bundling any time zone database files. This solution keeps the browser code bundle size to a minimum.
React-css-transition-replace
https://www.npmjs.com/package/react-css-transition-replaceProperty Frontier
https://propertyfrontier.comI built the full-stack app single-handedly, from the ground up, using the JavaScriptMVC framework, Zend PHP, and CouchDB. This was the first major web project I worked on with a chartered accountant.
When server-side apps were the norm and client-side JavaScript frameworks for building client-heavy apps were only emerging, we achieved fast response times by running all the app logic in the client after initial data fetching. The app logic included financial modeling and projections.
Skills
Languages
CSS3, Sass, JavaScript, CSS, HTML5, SCSS, HTML, C, C++, PHP, SQL, TypeScript, GraphQL
Frameworks
Redux, Express.js, React Native, Bootstrap, JavaScript MVC, Next.js, Swagger, Zend Framework, AngularJS, Laravel, PHP MVC, MUI (Material UI)
Libraries/APIs
React, Node.js, React Native for Web, React Redux, REST APIs, Konva, HTML5 Canvas, Stripe, Stripe API, Twitter API, Facebook API
Tools
React Apollo, Git, Amazon Simple Email Service (SES), Canvas, Canvas 2D, Expo, Jira, LabVIEW, Amazon Simple Queue Service (SQS), NGINX
Paradigms
Functional Programming, Requirements Analysis, REST, UX Design, Agile, DevOps, UI Design, Microservices
Storage
Amazon S3 (AWS S3), JSON, PostgreSQL, MySQL, CouchDB, NoSQL
Other
Apollo, Video Streaming, Styled-components, TypeORM, APIs, API Integration, Full-stack, Responsive UI, Web Development, Real Estate, Residential Real Estate, Software Design, Streaming, Embedded Systems, Apollo Server, Electronics, Computer Engineering, Architecture, Leadership, Image Annotation, Scalable Architecture, Video Encoding, Media Encoding, Cloud, Integration, Web Scraping, Scraping, Performance, Serverless, Computer Vision, Scalability
Platforms
Linux, Docker, Amazon Web Services (AWS), Mobile, Firebase, Blockchain
Education
Ph.D. in Microelectronic Engineering
University of Pretoria - Pretoria, South Africa
Honor's Degree in Microelectronic Engineering
University of Pretoria - Pretoria, South Africa
Bachelor's Degree in Computer Engineering
University of Pretoria - Pretoria, South Africa