Software Engineer

Software Engineer 📊

Expertise in, computer vision, CPU/GPU programming, device driver development, memory management, TCP/IP network protocols, cloud computing, and AI technologies.

Work Experience

AI Trainer
Outlier
November 2024 - Present
Model Trainer
Cypher Reinforcement Learning from Human Feedback training.
Correctly extract question, answer, and explanation triples from AI extracted text that are relevant to a given image.

Software Engineer
Tabalot - Bryanston, Gauteng
March 2023 - May 2024
Swift | SwiftUI | AWS | FireBase |
led the development of the app's auth, and messaging systems on Google Firebase, and a complete rewrite on the auth, and messaging system from Google Firebase to AWS Amplify using Cognito. led production workflows and discover opportunities to enhance and improve customer experiences on the app's software. From a software perspective. I solved sophisticated problems and work on evaluating and improving the performance of app's systems under development. My responsibilities in this role included but are not limited to, developing system automation, and tools used to measure and analyze performance. I support existing automation environments and integrate new internally and externally developed benchmarks, applications, and analysis tools used for analyzing software performance. led the analyzing of system performance and identify bottlenecks. I worked on supporting teams with debugging performance and test issues and also test code, analyze results, identify bugs and resolve issues as necessary. I was also an active participant in technical software design discussion.

Projects

Enhancing SwiftUI Applications with Core Data using MVVM Architecture

Objective:
Integrate Core Data into SwiftUI applications using an alternative approach to @FetchRequest. By leveraging the Model-View-ViewModel (MVVM) architecture, the goal is to maintain a clean separation of concerns, keeping Core Data update logic distinct from the UI code, which ensures better maintainability and scalability in production applications.
Key Features:
Core Data Integration:Implement Core Data to handle data persistence in a SwiftUI application.
MVVM Architecture:Utilize MVVM to separate business logic and UI code, improving code organization and maintainability.
ViewModel Implementation:Use a ViewModel to manage Core Data operations and provide data to SwiftUI views.
Alternative to @FetchRequest:Avoid using @FetchRequest directly in SwiftUI views and instead handle data fetching and updates through the ViewModel.
Core Data Manager:Implement a Core Data Manager to handle the Core Data stack (persistent container, context, saving context).
SwiftUI Views:Design SwiftUI views that bind to the ViewModel, observing changes and displaying data.
Data Fetching and Binding:Use the ViewModel to fetch data from Core Data and bind it to SwiftUI views. Ensure the ViewModel updates the views when the data changes.
Benefits:
Separation of Concerns:By using MVVM, the Core Data-related logic is separated from the SwiftUI views, resulting in cleaner and more maintainable code.
Scalability:This approach makes it easier to scale the application and add new features without heavily modifying existing code.
Enhanced Maintainability:Keeping Core Data logic within the ViewModel reduces coupling and makes the application easier to test and maintain.
Conslution:
This project demonstrates a robust method for integrating Core Data into SwiftUI applications using the MVVM architecture. By avoiding @FetchRequest directly in SwiftUI views, the solution promotes better code organization, maintainability, and scalability, making it suitable for production applications.
Swift - SwiftUI - CoreData - MVVM

Sample Projects

  • Core data app01
  • Core data app02

  • mario thumbnail 1
  • map app 01

Cryptocurrency Portfolio App

Objective:
Develop a cryptocurrency application that downloads live price data from an API and saves the current user's portfolio using Core Data. The app employ the MVVM (Model-View-ViewModel) architecture to ensure code efficiency and maintainability.
Key Features:
Live Cryptocurrency Data:Fetch live price data for various cryptocurrencies from an external API.
User Portfolio Management:Save and manage the current user's cryptocurrency portfolio using Core Data.
Data Operations:Provide functionalities for searching, filtering, sorting, and reloading cryptocurrency data.
User Interface:Implement a custom color theme and loading animations for enhanced user experience.
Technical Features:
MVVM Architecture:Organize the project using the MVVM architecture to separate data management, UI, and business logic.
Core Data:Utilize Core Data for persistent storage of the user's portfolio.
FileManager:Save images related to cryptocurrencies using FileManager.
Concurrency with Async/Await:Manage multiple API calls efficiently using Swift's async/await for asynchronous operations.
API Integration:Make multiple API calls to fetch live cryptocurrency data.
Codable:Decode JSON data from API responses using Swift's Codable protocol.
SwiftUI Interface:Build the entire user interface using SwiftUI.
Safe Coding Practices:Use if let and guard statements to avoid crashes and ensure code safety..
Multi-threading and Performance:Utilize background threads for intensive tasks like data fetching and processing. Optimize app performance and responsiveness.
Conslution:
This project delivers a robust and user-friendly cryptocurrency app that leverages SwiftUI, Swift concurrency, and Core Data to provide real-time data and efficient portfolio management. The use of MVVM architecture ensures the code remains organized and maintainable, setting a strong foundation for future enhancements.
Technologies and Skills:
Swift - SwiftUI - FileManager, CoreData - MVVM - Concurrency with async/await

  • CrypAppDark
  • CrypAppLight
  • EditPortfolioDark
  • EditPortfolioLight

iOS Image Caching App

Objective:
Develop an iOS application that downloads images from an external API using Swift concurrency, stores them in a cache directory, and retrieves them efficiently. The app aims to minimize network usage and improve user experience by caching images locally.
Key Features:
Image Downloading:Fetch images from an external API using Swift concurrency with async/await for efficient asynchronous operations.
Caching Mechanism:Save downloaded images to a cache directory on the device. Check if an image is available in the cache directory before downloading it again to reduce network calls.
Image Loading:Load images from the cache directory if they are already available. Download and cache images if they are not available locally.
Technologies and Skills:
Swift - SwiftUI - FileManager - Concurrency with async/await

  • CrypAppLiveDark
  • downloadingImages

Adaptive iOS Personal App

Project Overview:
A personal mobile application developed with Swift, SwiftUI, CoreData, Combine, and Notifications, designed to adapt seamlessly to any screen size on iPhone and iPad.
Technologies Used:
Frontend Swift, SwiftUI
Data Management CoreData, File Manager
Asynchronous Programming Combine
User Engagement Notifications
Features:
Responsive Design: The app’s interface adapts smoothly to various screen sizes of iPhones and iPads, ensuring a consistent user experience across all devices
Image Descriptions: Integrates with a backend API service to fetch and display image descriptions dynamically.
Local Storage: Uses File Manager and app storage to save a small amount of data in a cache directory, enabling efficient data retrieval and offline access.
Notifications Implements local notifications to keep users informed and engaged with timely updates.
Responsibilities::
Designed and developed the entire frontend using Swift and SwiftUI, focusing on responsive design principles.
Implemented CoreData for efficient local data storage and management.
Utilized asynchronous events and data streams.
Integrated backend API service to pull and display image descriptions.
Managed local storage with File Manager to save data in the cache directory.
Set up local notifications to enhance user engagement and provide timely alerts.
Outcome:
Successfully delivered a versatile and adaptive iOS app that offers a smooth and responsive user experience across different device screens. The integration of API services and local storage capabilities ensured efficient data handling and offline functionality.
Project Scope:
This personal project was aimed at exploring advanced iOS development techniques and implementing a robust, responsive design. The app serves as a practical example of utilizing modern iOS development tools and frameworks to create a high-quality user experience.
Achievements:
Developed a fully responsive app interface compatible with various iPhone and iPad screen sizes.
Enhanced user experience with dynamic content fetching and local data storage.
Implemented effective local notifications to keep users informed and engaged.
Project Highlights:Swift and SwiftUI for a responsive and adaptive UI.
Frontend Development:CoreData for local storage and Combine for asynchronous programming.
Data Handling:API service for fetching image descriptions.
Backend Integration:API service for fetching image descriptions..
Local Storage: File Manager for saving data in the cache directory.
User Engagement:Notifications for timely updates.
This project demonstrates my capability to design and develop sophisticated iOS applications that are both user-friendly and technically robust.

  • mobile application
  • mobile application
  • mobile application
  • mobile application

FoodNavigator

Project Description and Inspiration:
Living in large cities like Johannesburg, Pretoria and Captown, I noticed a major issue; food insecurity. This problem not only affects those lacking sufficient food but also those without culturally and dietary appropriate options. For example, food pantries often distribute food that doesn't align with the cultural preferences of their recipients. Consequently, people don’t know how to use these ingredients, leading to waste and defeating the purpose of the pantries.
What It Does:
To address this, I created an app similar to a GPS for food pantries and food-insecure individuals.
Here's how it works:
User Requests: Individuals can request specific types of food that match their cultural and dietary needs.
Database Creation: The app collects these requests, building a database of preferred food items over time for each pantry.
Smart Lists: The app then generates a smart list, displaying the requested foods to the pantry staff.
Informed Donations: Donors can see this list and provide the specific items needed, ensuring the food given out is culturally and dietary appropriate.
By using this app, I aim to reduce food waste and ensure that everyone gets the food they need and prefer, making food pantries more effective and efficient.
How we built it
I created an iOS app that functions like a GPS for food distribution. It collects data from user input, manages inventories for food pantries, and displays desired and necessary food items to users. Just as a GPS guides you to your destination, our app guides pantries to stock the right foods, ensuring users receive culturally and dietary appropriate items.
Challenges I ran into:
Creating and storing data into a server. Creating the proper algorithm that suits the goals of the app.
Accomplishments that I am proud of:
Smooth and simple UI.
Integrated a smart list feature that changes dynamically.
What's next for my food delivery app:
Create a large server that accumulates inputted data over multiple pantries over time and expand our services to communities across the country.
Built With:
Swift - SwiftUI - Mapkit - CoreData.

  • mobile application
  • mobile application

Gauteng Bus Transportation App

Project Overview:
Developed a comprehensive mobile application for iOS and Android platforms to facilitate easy payment of bus fares and trips from all bus companies using a single platform.
Features:
Unified platform for payment and management of all bus transportation services in the Gauteng province.
Responsibilities:
Designed and implemented key app features, ensuring seamless integration with various payment systems.
Collaborated with cross-functional teams to enhance user experience and app functionality.
Conducted extensive testing and debugging to maintain high performance and reliability.
Outcome:
Successfully delivered a robust app that improved the efficiency and convenience of bus transportation payments for users across Gauteng province.
Project Details:
Client: Boston App Development
Role: Frontend Developer.
Project Scope:
The application was designed to be a one-stop solution for all bus fare payments and trip management in Gauteng. It aimed to streamline the user experience by consolidating various bus companies into a single, easy-to-use platform.
Achievements:
Delivered a high-performance, user-friendly app.
Enhanced the efficiency of the bus transportation payment system in Gauteng.
Improved user convenience by providing a single platform for multiple bus services.
Team Collaboration:
Worked closely with backend developers, designers, and QA teams.
Ensured that the app met all client requirements and user expectations.
Participated in regular meetings to discuss progress and resolve any issues.
This project stands as a testament to my ability to develop and deliver high-quality mobile applications that meet user needs and improve system efficiencies.
Built With:
React Native - C#.

  • mobile application
  • mobile application
  • mobile application
  • mobile application
  • mobile application
  • mobile application

Skills!

Mojo • MAX • Software Development • Machine Learning • AWS • GitHub • Linux • Docker