Ewald Horn
Freelance Software Developer
This feels like talking about myself too much.
Alas, I have to have some kind of online profile for some of the corporate gigs I take on and LinkedIn isn't always suitable, so, here we are. If you are a potential client, you are welcome to read this to get a bit of a better idea of my background and skills.
Overview
My passion is building business solutions, with a specific focus on startups and entrepreneurs. Over the past two decades, I've been involved in various industries and have constantly refreshed and updated my skills to keep delivering the best solutions I can.
I enjoy solving interesting challenges using Go or JavaScript, usually as part of a project team. In the past, I've worked in Web Assembly, Rust, Zig, Python, Flutter, Dart, C#, F#, Xamarin (Forms and Native), NativeScript, Java (ME, SE, EE), Scala, Swift, Kotlin, C, C++, PHP, HTML5, Delphi, Objective-C, TypeScript and even some Cobol... Yes, it's a lot of languages, but it's been a long a career with oh so many, many spectacular bugs.
As a firm believer in the iterative development process, I find that I add the greatest value when I fully understand the problems I'm trying to solve. Part of my work involves coaching startup founders and helping them deliver prototypes and proof of concept builds to secure funding. The lessons learned during these phases can then be applied when building an MVP or production application, saving time and effort in the long run.
From around 2012, I spent almost all my time building mobile applications on iOS and Android. I started out using Appcelerator and quickly moved into Objective-C and Java. Still later, I added Swift and Kotlin as well as Xamarin to my portfolio. The last few apps I did used Kotlin Native, Jetpack Compose and of course SwiftUI. For a couple of years now I've found myself usually working on the API's and services required, as that has become challenging to find someone for.
In the modern mobile world of fantastic technologies like React Native and Flutter, it's often more difficult to find someone to build the mobile friendly API's required by these apps than getting the apps themselves built. I've naturally migrated towards this part of the development world and I really enjoy it. It is quite nice to be able to use my mobile knowledge to build easy to consume API's for the rest of the team.
My ideal client understands remote and asynchronous work and values output and results more than how many hours you spent staring at your monitor. I work the best in small teams with good communication and a clear sense of ownership. The optimal team setup for me would include a business analyst, a UI specialist and some kind of quality control person, along with of course me and one or two other developers if needed. Larger teams would need some more structure and people, but communication can then become a bottleneck if not properly managed.
Previous Projects
Here's a short list of the type of things I've been involved with over the years.
-
Payments
-
Postilion, previously owned by S1, now by ACI Worldwide.
Various integrations and utilities written in Java, Delphi and Python. -
Undisclosed QR Code Scanner and Payment App
Involved in the Android and iOS client of a QR code based mobile payments platform. -
WyzeTalk
A social collaboration tool for the enterprise. I was mainly involved with the Android client, mainly in Java, as well as a desktop prototype in Nw.JS (NodeJS). -
Doozie
A video capturing and sharing platform. I was involved with the Android client and Scala API, using Java, Scala, OpenGL ES, GLSL and C++. -
Over
A media creation and sharing tool. My involvement was with the Android client, using Kotlin and Java. Over was bought by GoDaddy. -
Undisclosed Air Purity Monitor
Developed a mobile app in Flutter and Dart to manage and control air purity monitoring devices. -
Juicy Kaboom!
An Android game developed for a summer campaign, using Java. -
Simvida
I built the original foundation API's and services using a mixture of Go, Python, SQL and various AWS services like Lambda, RDS and API Gateway. -
Pension Fund Administration System
I worked on a Java Enterprise codebase for a large FSP, using Spring, Hibernate and Java Enterprise. -
Employee Benefits Administration Systems
I worked on a Java Enterprise codebase for two large FSPs, using Spring, Hibernate and Java Enterprise. -
Salesforce Integration
I was part of a team integrating Salesforce and Chatter into a corporate system, using NodeJS, JavaScript and the Salesforce platform. - With Neurocast, a group that's building technology to assist people with medical challenges, I assisted with mostly the Android development and building a test automation solution.
-
HomeKick
A large Xamarin project to facilitate and manage home-related services. I worked on the mobile client in Xamarin (C#) as well as the APIs in Scala and the web interfaces in JavaScript. -
REVIS
Real Estate Valuation Information System is a Java-based 2D CAD system to map out properties to determine valuation values. Built using Java, Swing and H2. -
VisioRite
Reading assessment and improvement software written in Java, Swing and JavaFX. -
NoFuss Invoicing
A basic invoice management system for small businesses developed in Delphi.
Social Media
Internet of Things
Games
FinTech
Health Tech
Home Services
Home Valuation
Educational Software
Financial Management
Alright, you can stop here
What follows is a section containing a hopefully not too out of date list of the courses and certifications etc. that I've done over the last while. This exists to help me keep track!
As a freelance software developer, I often end up being the only developer on startup projects. This naturally requires me to work full-stack, and then some. Hence the eclectic mix of front-end, back-end, mobile and other assorted courses I've done.
Honestly, it's all boring stuff, so you can stop here and not waste your time.
Courses and Certificates
I spend a lot of time learning and improving my skills, usually with online courses. Some of these courses are for personal enrichment, others to be able to solve a particular challenge for a client.
One of the questions I often get asked is why there are so many courses that I do that is for things I should already know. For example, I did a SQL Fundamentals course in 2019. Well, things change, skills rust and I find it useful to refresh and update my foundation knowledge from time to time.
Ultimately, the goal is to be able to provide the right solution to clients, which is hard to do if you have not bothered to learn about the changes that have occurred in the industry over the last while.
2KO International
- Microsoft SQL Server Performance Tuning, 2010
AWS
- AWS Cloud Quest: Cloud Practitioner, 2022
- Getting into the Serverless Mindset, 2020
Coursera
- Dog Emotion and Cognition, 2020
- Computer Vision Basics, 2020
- Kotlin for Java Developers, 2020
- Creative, Serious and Playful Science of Android Apps, Android application development, 2014
- Computer Science 101, 2013
Data Camp
- Intro to SQL for Data Science, SQL for Data Science, 2018
- Introduction to R Course, Data Analysis with R, 2018
- Intro to Python for Data Science Course, Python for Data Science, 2017
FreeCodeCamp
Google Analytics Academy
- Introduction to Data Studio, 2019
- Google Analytics for Beginners, 2019
Google Developers
Great Learning
Indian Institute of Technology, Kanpur
- Certificate of Competence, Mobiles For Development, 2013
LinkedIn Learning
- How Blockchain Will Change Business, 2022
- SQL Analysis for Data Developers, 2021
- Writing in Plain Language, 2020
- Effective Listening, 2020
- Communication Foundations, 2020
- Teamwork Foundations, 2020
- Why Trust Matters, 2020
- Critical Thinking for Better Judgment and Decision-Making, 2020
- Embracing Unexpected Change, 2020
- Building Resilience, 2020
- Developing Your Emotional Intelligence, 2020
- The DIY Photographer, 2020
- Microservices Foundations, 2020
- Digital Body Language, 2020
- 2D Game Design and Development Essential Training, 2019
- Processing: Interactive Data Visualization, 2019
- Programming Foundations: Fundamentals, 2019
- Android O First Look for Developers, 2019
- iOS App Development: Notifications, 2019
- Google Firebase for Android: First Look, 2019
- Building Adaptive Android Apps with Fragments, 2019
- Securing Android Apps, 2019
- Android Development: Modern Android UI Design Elements, 2019
- Learning Firebase Cloud Messaging for Android, 2019
- C++ Game Programming 2, 2019
- C++ Game Programming 1, 2019
- Learning OpenGL, 2019
- Building a Game App with the Android SDK, 2019
Microsoft Learn
- Build real world applications with Python, 2022
- Python for beginners, 2022
- Build JavaScript applications with Node.js, 2022
- Build JavaScript applications using TypeScript, 2021
- Write automated tests in Rust, 2021
- Explore modules, packages and third-party crates in Rust, 2021
- Implement generic types and traits in Rust, 2021
- Understand how Rust manages memory, 2021
- Handle errors in Rust, 2021
- Understand common concepts in Rust, 2021
- Get started with Rust, 2021
- Take your first steps with Rust, 2021
- Azure Data Fundamentals: Explore core data concepts, 2020
- Core Cloud Services - Azure networking options, 2020
- Core Cloud Services - Azure data storage options, 2020
- Migrate your repository by using GitHub best practices, 2020
- Upload your project by using GitHub best practices, 2020
- Introduction to GitHub, 2020
- Build a web app with Blazor WebAssembly and Visual Studio Code, 2020
- Improve the developer experience of an API with Swagger documentation, 2020
- Create an Azure account, 2020
- Cloud Concepts - Principles of cloud computing, 2020
- Introduction to Docker containers, 2020
- Prepare to publish your Xamarin app, 2020
- Create a mobile app with Xamarin.Forms, 2019
- Introduction to Xamarin.iOS, 2019
- Develop web applications with Visual Studio Code, 2019
- Execute an Azure Function with triggers, 2019
- Introduction to Xamarin.Android, 2019
- Create serverless logic with Azure Functions, 2019
- Prepare your development environment for Azure development, 2018
Microsoft Virtual Academy
- Advanced Office Add-in Development with Outlook, 2019
- Redesign for the Cloud: Building a Cloud-First Network at Microsoft, 2019
- Introduction to Logic and Computational Thinking, 2019
- Build and Run Container-Based Web Apps Using Azure App Service, 2019
- Facilitating an Hour of Code, 2019
- Visual Studio 2017: Mobile and Desktop Development, 2019
- C# Fundamentals for Absolute Beginners, 2019
- MongoDB and Redis Caching, 2019
- Introduction to Angular 2.0, 2019
- Using NodeJS with Visual Studio Code, 2019
- MEAN Stack Jump Start, 2019
- Doing more with your Data, 2018
- Introduction to Data Science, 2018
- JavaScript for Experienced Developers, 2018
- Game-Changing Features in ES2015, 2017
- Getting Started with Web Technologies, 2017
- Top 10 JavaScript Questions, 2017
- Top Python Questions, 2017
- Quick Start Challenge: Python and MongoLab, 2015
- Querying Microsoft SQL Server 2012 Databases Jump Start, 2015
- Developing in HTML5 with JavaScript and CSS3 Jump Start, 2015
- Developing 2D Games with HTML5, 2015
- Bing Ads Jump Start, 2015
- Implementing Big Data Analytis, 2015
- From Data to Insight and Impact: The BI Revolution, 2015
- Windows 8.1 UX Design Jump Start, 2015
- The Modern Web Platform Jump Start, 2015
- Practical Performance Tips to Make Your HTML/JavaScript Fast, 2015
- Java on Microsoft Azure, 2015
- Quick Start Challenge: HTML5 Portability Challenge, 2015
- C# Fundamentals for Absolute Beginners, 2015
- Programming in C# Jump Start, 2015
- Twenty C# Questions Answered, 2015
- A Lap Around Azure Websites, 2015
- Creating Windows Phone and Windows Store Games with MonoGame, 2015
- Software Development Fundamentals, 2015
- Quick Start Challenge: Microsoft Advertising SDK, 2015
- Developing Universal Windows Apps with C# and XAML, 2015
- Best of Build and Windows 10, 2015
- Web API Design Jump Start, 2015
- Designing Applications for Windows Azure Jump Start, 2015
- A Developer's Guide to Windows 10, 2015
- JavaScript Fundamentals for Absolute Beginners, 2014
- C++: A General Purpose Language and Library Jump Start, 2014
- Introduction to C++ and DirectX Game Development Jump Start, 2014
- Tune Your Site and Web Apps to Maximize Traffic Jump Start, 2014
- Gaming Engines for Windows 8 Jump Start, 2014
National Archives
- Diploma, Archive Management, 2004
PluralSight
- The Go CLI Playbook, 2023
- Getting started with Kubernetes, 2022
- Fundamental Cloud Concepts for AWS, 2022
- Troubleshooting SQL Server Performance Problems, 2022
- AWS Foundations: Machine Learning Basics, 2021
- Installing and configuring macOS, 2021
- Getting Started with the C Language, 2021
- Site Reliability Engineering: Measuring and Managing Reliability, 2020
- Managing Files with Node.js, 2020
- Creating reusable React components, 2020
- JavaScript Arrays and Collections, 2020
- Introduction to Threat Analysis, 2020
- Getting started with BeEF, 2020
- PCI DSS: Securing Data, Systems, and Applications, 2020
- Securing the Docker Platform, 2020
- HTML, CSS and JavaScript: The big picture, 2020
- Node.js: The Big Picture, 2020
- Analyzing Text on AWS with Amazon Comprehend, 2020
- Ethical Hacking: Cryptography, 2020
- Android Apps with Kotlin: Build Your First App, 2020
- Next Generation Android UI with Jetpack Compose, 2020
- Droidcon NYC '19: Getting Big Payouts with Koin, 2020
- Managing Docker Container on AWS with the GUI, 2020
- Android Fundamentals: Layouts, 2020
- Android FirebaseUI Authentication with Kotlin, 2020
- Android UI Tests: Espresso Fundamentals, 2020
- Android Keyboard Inputs: Getting Started, 2020
- Kotlin: Using Coroutines, 2020
- Android Apps with Kotlin: Custom Views, 2020
- Android Data Binding: Getting Started, 2020
- Kotlin on Android: Managing Preferences and Settings, 2020
- Getting Started with Augmented Reality on Android Devices, 2020
- Android Threads: Getting Started, 2020
- Android Security: Inter-app and Network Communication Security, 2020
- Android Fundamentals: Implementing Effective Navigation, 2020
- Firebase on Android: Cloud Messaging, Cloud Functions and Crashlytics, 2020
- Android Services Fundamentals, 2020
- Android Apps with Kotlin: ViewModel and Lifecycle, 2020
- Firebase on Android: Cloud Firestore, 2020
- Android Fundamentals: ConstraintLayout, 2019
- Overcoming common Android performance barriers, 2019
- Android navigation architecture components: Getting started, 2019
- Becoming a better listener, 2019
- Android Animations, 2019
- Building Apps with Android Architecture Components, 2019
- Avoid Common Writing Mistakes, 2019
- Building Android Apps with Kotlin: Getting Started, 2019
- Firebase on Android: User Email Authentication and Verification, 2019
- Android Fundamentals: Localization and Internationalization, 2019
- Cloud-native Architecture: The Big Picture, 2019
- Android Apps with Kotlin: Tools and Testing, 2019
- Android Security Permission Handling, 2019
- Broadening Android App Appeal and Reach, 2019
- Leveraging the Power of the Android Platform, 2019
- Creating Your First Android App with Android Studio and Firebase, 2019
- Java Fundamentals: The Core Platform, 2019
- Managing Android App Data with SQLite, 2019
- Building your first connected app with Android Studio, 2019
- The successful technical interview for interviewers, 2019
- Enhancing the Android application experience, 2019
- What's new in Java 12, 2019
- Java Fundamentals: The Java language, 2019
- Android Fundamentals: Intents, 2019
- Modern Java: The big picture, 2019
- Conflict resolution in the workplace, 2019
- What's new in Office 2016, 2019
- Data Science, the big picture, 2019
- Introduction to Git, 2019
- Dealing with a new company culture, 2019
- Introduction to emotional intelligence, 2019
- Writing process instructions and directions, 2019
- How to stay abreast in the ever-changing world of tech, 2019
- Understanding Machine Learning, 2019
- Working with Android tools and testing, 2019
- Understanding Android application basics, 2019
- Web development: Executive briefing, 2019
- How Git works, 2019
- Data Science: Executive briefing, 2019
- Databases: Executive briefing, 2019
- Cloud Technologies: Executive briefing, 2019
- What is programming, 2019
- Learning technology in the information age, 2019
SoloLearn
- Python Intermediate, 2023
- PHP, 2023
- Intermediate C Tutorial, 2023
- C Tutorial, 2023
- Game Development with JS, 2023
- JavaScript Intermediate, 2023
- Go, 2022
- Python for Beginners, 2022
- C++ Tutorial, 2021
- Kotlin Tutorial, 2021
- JavaScript Tutorial, 2020
- SQL Fundamentals, 2019
- Java Tutorial, 2017
- CSS Fundamentals, 2017
- HTML Fundamentals, 2017
Stone River eLearning
Triplebyte
Udemy
- Introduction to Testing in Go (Golang), 2024
- Building Your First 2D Game with Flutter and Flame, 2023
- Building GUI Applications with Fyne and Go(Golang), 2023
- Go Programming (Golang): The Complete Developer's Guide, 2023
- Creative Coding Deep Dive for Beginners, 2023
- Go: The Complete Developer's Guide (Golang), 2023
- React Tetris with Hooks API - Intermediate, 2020
- Develop my first sound game - (ASD Supported), 2020
- Intermediate Android: Jump Scare App Clone In Kotlin, 2020
- Mastering Kotlin: a Fast Guide to Null Safety, 2019
- Python for Smarties in 59 minutes, 2019
- Dart 2 Complete Bootcamp - Go Hero from Zero in Dart Flutter, 2019
- Basics of Bash Scripting, 2019
- Dart Course for Beginners, 2018
- Python: Hands-On Introduction for Beginners, 2017
- Python for Absolute Beginners, 2017
- Learn HTML5 Programming From Scratch, 2017
- iOS 9 App Development for Beginners, 2015
- Java Design Patterns and Architecture, 2014
- Certificate, Mobile Development Made Easy : iOS and Android, 2013
- Learn JavaScript Basics, 2013
- HTML Workshop, 2013
- Getting Started with Android, 2013
- Certificate : C++, 2013
- Java for Complete Beginners, 2013
- Android Game Programming, 2013
Social Media Links
- BSky
- CodersRank
- CodinGame
- Exercism
- GitHub
- GitLab
- Hacker Rank
- Microsoft Learn
- Onee Page
- PluralSight Profile
- PeerList
- Ray Wenderlich Profile
- SalesForce Trailblazer Profile
- Stack Overflow
Not so secret secrets
Sometimes, I build stuff that are just small experiments and I'll list them here for folks to find.
These are experiments and they are as likely to fail as they are to work. May the bytes forever be in your favour.