Kurt Lourens Senior Software Engineer
Full Stack Engineer with 7+ years of experience in developing technological solutions for large companies. I find that the best way to learn is to build! I love creating beautiful and striking front-end user experiences, blazing fast APIs, services, etc, that follow best practices and building amazing user experiences for mobile. Throughout my career, I have been involved in numerous projects and collaborated with diverse teams, which has significantly deepened my technical skills and also enhanced my abilities in mentoring, presenting, managing expectations, and leading projects. My goal is to continue learning all that I can and use that knowledge to create more opportunities to learn! 😂
Full Stack Engineer with 7+ years of experience in developing technological solutions for large companies. I find that the best way to learn is to build! I love creating beautiful and striking front-end user experiences, blazing fast APIs, services, etc, that follow best practices and building amazing user experiences for mobile. Throughout my career, I have been involved in numerous projects and collaborated with diverse teams, which has significantly deepened my technical skills and also enhanced my abilities in mentoring, presenting, managing expectations, and leading projects. My goal is to continue learning all that I can and use that knowledge to create more opportunities to learn! 😂
Currently living in Almere, The Netherlands.
P.S. I also have a blog, Inside my Mind - by Kurt Lourens. I haven't been making use of it as much as I could have, but I have written an article on it about how I made this site and all the effort I put in to make it the best that it could be click here to read it 😁.Work Experience
October 2021 - Present
Senior Software EngineerAmsterdam, The Netherlands
Through various courses and opportunities within the project I was able to show Entelect and BEE123 that I am able to design complex systems, develop solutions, mentor team members and manage sprints for the team. There is still a lot to learn and I look forward to the opportunities and possibilities made available to me going forward with this new position
July 2021 - September 2021
Senior Software EngineerJohannesburg, South Africa
Entelect gave me the opportunities to grow, mentor and lead. Over the years I can see how I have changed from hacking together code to someone who plans, strategises, follows best practices and works with their team to achieve the client's vision. I am so thankful that Entelect saw my potential and helped me achieve this title.
January 2019 - June 2021
Intermediate Software EngineerJohannesburg, South Africa
I am very thankful Entelect recognised my abilities and promoted me to an Intermediate Software Engineer. Entelect gave me a lot of opportunities to use and improve my soft skills. Such as organising of team lunches, building relationships with clients and their employees, being in charge of onboarding new members and taking large chunks of work as if they were mini projects and so on.
January 2017 - December 2018
Software EngineerJohannesburg, South Africa
Entelect really encourages all of it's employees to continuously learn, and when you are in I.T. that is extremely important. Entelect has given me many opportunities to grow my knowledge with the crazy amount of initiatives that they allow/provide. I have been exposed to new ways of structuring code, (CI) continuous integration, (CD) Continuous delivery and much more. I have worked on a few side projects for the teams that I have been a part of. Such as a Build Monitor and Timesheet App.
January 2014 - Present
Co-OwnerJohannesburg, South Africa
I joined Red Ruby IT with a focus on Web Design and Web Hosting Management as well as looking into mobile application development for the android platform, with multiple android applications on the Google Play Store that I designed, latest one released was Red Ruby IT Client which allowed our clients to view details about their domains such as registration date, expiry date, recurring fee and so on. I did some work as a developer (up until December 2016), performing Website Development using ASP.Net and Mobile development with Xamarin as well as making use of Ionic to create hybrid apps.
January 2016 - June 2016
Junior Sales RepJohannesburg, South Africa
Working for a great company trying to bring world class internet to South Africa, my role was to speak to people who had recently had fibre installed in their neighbourhood and get them to have the fibre be installed into their homes.
January 2015 - January 2015
I.T. InternNzema Mine, Ghana
I worked for Endeavour Mining - Adamus Resources Ltd, Nzema Ghana as an intern. I worked with virtual servers using a hypervisor (VMWare ESXi 5.1.0) to install create Windows Server 2008 R2 and 2012 environments as well as configure them to make use of Group Policies and Active Directory Management.
Projects
December 2022 - Present
Rabobank Rabo LabsUtrecht, The Netherlands
I joined Team Nomads within the Digital Platform Tribe. This project allows the teams within Rabobank to allow users to test out their new experimental features without having to build their own systems to limit who can view & test their experiments. Our solution standardizes the process across the teams and we take care of allowing a certain amount users to access new features and collect analytics & feedback from them
December 2021 - December 2022
Rabobank TASUtrecht, The Netherlands
My first project in the Netherlands! I joined team Atlas within TAS, to help build software to monitor all the Azure DevOps projects within Rabobank as well as automate the process of migrating 1900+ projects to around 30 projects, merging many of the teams into Tribes, Chapters, Areas and Squads. Within this team we make use of a lot of Azure services, CLIs, SDKs, etc to automate tasks that would take a lot of time away from the many teams
After building the Assistant for Scrap Mechanic I realised that there was a lot of functionality that was shared between is and the Assistant for No Man's Sky. I created a common library in Dart to write shared functionality once and have it be reused across the different apps as well as having a central API for common functionality. I hope to continue expanding the number of apps that fall under the AssistantApps brand! 💪
August 2020 - Present
Assistant for Scrap Mechanic
Google Play Store , Apple App Store , Website , Github
After the success of the Assistant for No Man's Sky I wanted to try building another app making use of all the knowledge I had gained and try to do some aspects of the apps better. This was also a way for me to experiment with Flutter for Web. This app did not have the same amount of success as the Assistant for No Man's Sky, but I learned a lot and now I have an example of how to do a Flutter app that is responsive on Mobile, Tablet and Desktop screens!
July 2019 - Present
Assistant for No Man's Sky
Google Play Store , Apple App Store , Website , Youtube
During a few days while my home internet connection was down, I picked up the game No Man’s Sky again. While playing I was frustrated with the crafting mechanics of the game and how it expected the player to remember over 1200 different items and crafting recipes. I wanted an app that would allow me to get those recipes as easily and fast as possible. There was one app on the Google Play Store, however a lot of its functionality was behind a pay wall. So I decided to build my own version using Flutter. As of August 2021 (2 years later) the apps reached 70 000 active users! 🎉
April 2019 - December 2021
BEE123
app.bee123.co.za , bee123.co.za
I moved on from Hollard to work on the then Sage BEE123. It was a lot older project than what I had been exposed to before. This did lead to some interesting problems such as migrating to latest technology within an old framework. On this team we also had a lot more control over things like deploys and business decisions, which gave everyone in the team exposure to problems we would not have had to deal with.
March 2019 - April 2019
Flutter CV App
View on Google Play Store
I still had the interest for building apps that was sparked by Hollard's Customer App, but I had gotten tired of waiting for Xamarin to compile. I had a few small POCs of React Native apps which I thought would be easy to create since I had React experience. During this time Flutter had just been announced that it was production ready. So I decided to learn Flutter and Dart by making an App as my CV.
February 2019 - Present
BTS Portal
app.btsra.co.za
This project was the second version of the BTS Site Status website. It was rebuilt with dotnet Core and Angular 7. It was quite a challenging project as we needed have all the same functionality of the old project as well as add new features, while maintaining the old project.
January 2019 - March 2019
Hollard Easy4BusinessJohannesburg, South Africa
While I was working on the CQT team, a new project was started called Easy4Business. Which was formed from some of CQT's members. CQT shared knowledge and helped set up Easy4Business. I mainly helped in setting up their CI / CD and using Typescript and Redux as I had learned a lot about these from my home projects. I learned a lot about starting projects on the right foot.
July 2018 - December 2019
RemoteConfigs
remoteconfigs.com
This project was started from a problem that a friend of mine had which was managing his configs across multiple apps. This solution allows users to save the configurations as key value pairs and then retrieve those values through a Restful Api. Some of the cool things we added was a Nuget package so our users could get started quickly and Variants (which allows a user to set up simple logic to return different configs based on the current date, day of the week or random percentage chance). In the future we aim to have asymmetric encryption, user based A/B testing, hit user webhooks on certain events, and an NPM package. This app makes use of RemoteConfigs to get the in App announcements.
June 2018 - July 2018
Cards Against Humanity
cah.kurtlourens.com
I started this project because I wanted to learn about SignalR, as I was going to need it in the Build Monitor project. This project ended up being a really good learning opportunity. I got to learn some C# image manipulation (cutting the Cards from Cards Against Humanity's official Cards PDF) , some Optical character Recognition (using Microsoft's Cognitive services to read the words on each of the Cards), some in browser text to speech (HowlerJS reading the Card's text out loud), QR code generation and Reading (So that people wouldn’t have to enter the GameId manually) and A LOT of CSS animations. Some of the best animations that I have done in any project.
March 2018 - December 2019
Build Monitor
monitor.kurtlourens.com
While I was working on the CQT team, we had a Raspberry PI that was our build monitor. It was just running the VSTS (at the time, now Azure Devops) dashboard. However the PI would often become overwhelmed and the web page would go into not responding (we theorised that the dashboard webpage was just to heavy). I created an AngularJS app to serve as our build monitor. Eventually I recreated it in Angular 6. Ever since then our team's PI has been happily trudging along.
March 2018 - October 2018
BTS Site Status ̶p̶o̶r̶t̶a̶l̶.̶b̶t̶s̶r̶a̶.̶c̶o̶.̶z̶a̶
BTS was a small project which showed the status of cellphone towers in South Africa. BTS had about 300 devices with a range of meters each, that were attached to cellphone towers across South Africa. Each of these devices would inform PnPScada what the tower's voltage, amps, electricity usage, etc were. Myself and Morné created a .Net Core Api with an AngularJS front-end to display this data to BTS clients who wanted to know how much electricity their towers were using as well as the last time the specific tower was 'online'.
February 2018 - Present
KhaozNet IoT
In the beginning of 2018 I attended an Entelect Makers Club, it instantly sparked my interest in Arduino. It felt like a whole new world had been opened up for me, one where my software could affect the real world. Since then I have made quite a few Arduino contraptions, such as hooking up a Garage Remote so that I can open my garage from my app, from anywhere in the world. My garden has sensors for Temperature, Humidity, Soil Moisture and the ability to switch the water on and off (which I plan to automate in the future).
August 2017 - March 2019
Hollard CQTJohannesburg, South Africa
CQT is an internal system to help Broker Consultants create quotes. We integrated into many services at Hollard. The team had quite a lot of say in the technologies used. The technology stack that we ended up going with (React frontend and C# MVC .Net Framework backend) caused us to spend a lot of time learning (mostly React) and we ended up with quite a bit of technical debt due to time constraints and pressure from business. We were one of the first teams in Hollard to have a fully automated CI / CD pipeline and we set the golden standard on how to do deployments at Hollard. I grew a lot in this project. In the beginning I was the only Junior in the team of 5. As the team grew I was able to take on some more responsibilities. I became known as the 'Senior Grad' up until my promotion to Intermediate Software Engineer.
July 2017 - August 2019
TennoDex ̶t̶e̶n̶n̶o̶d̶e̶x̶.̶c̶o̶m̶
TennoDex has been my longest running side project. It simply consumes a Web Api and displays data, but it's technology stack has grown as I have. TennoDex has been rebuilt from the ground up more than 3 times by now, each time with a new tech stack. Initially TennoDex was a .Net Framework Web Api with an AngularJS front-end, then it was a .Net Core Web Api with an Android App built with Xamarin. Currently TennoDex is a .Net Core Web Api with a ReactJS front-end and an Android App built with React-Native. What makes the latest version special is that the Web App and the Mobile App use the same Typescript objects that are generated by the Web Api as well as sharing the same logic (i.e. mostly only implementing the native presentation layer. For the web: HTML, CSS and Javascript. For Mobile: React Native Components).
March 2017 - July 2017
Hollard Customer AppJohannesburg, South Africa
I joined a team at Hollard Insurance in Parktown North, where I worked on their Customer App built with Xamarin. It was quite a tough fit as I did not have any real experience with Xamarin. This move was only temporary, as Hollard wanted me for a project that was to start soon after I joined. I learned a lot from working on that team and it sparked an interest in App Development. I went on to create the first version of TennoDex (Xamarin app with a C# .Net Core Api backend) in my spare time using what I had learned.
No projects selected
Publications & Certificates
Aug 2021
Demystifying IoT
Demystifying IoT.pdf
I contributed to a publication on IoT managed by Entelect. It introduces you to what IoT is, what components and projects are common and popular, and gives you an overview of designing an IoT solution and the difficulties and complications inherent in this type of IT project.
2013 - 2016
Bsc Computer Science and InformaticsJohannesburg, South Africa
4 Year degree, BSCIT Extended degree.
February 2014 - July 2014
Assistant / TutorJohannesburg, South Africa
My responsibilities included helping students find the resources they required to complete their weekly practical assignments. Give advice on their practicals and to not do the practicals for them
March 2015 - March 2015
BizSpark Start-up Business Development ProgrammeJohannesburg, South Africa
I have completed the Microsoft BizSpark Programme, which was focused on Business Development.
2008 - 2012
Matriculated from King Edward VII School for BoysJohannesburg, South Africa
Matriculated with university exemption.
Latest Blog Posts
Mastodon
Twitter
NoMansSkySocial
Migration to Mastodon
How I joined thousands of developers, jumped the Twitter ship and headed for the great plains of Mastodon! The migration to Mastodon as been awesome!
Azure DevOps agent on Ubuntu 22.04 LTS
How I recently set up an Azure DevOps agent on Ubuntu 22.04. This post describes a workaround for the "No usable version of libssl was found" error message.
Why does software decay?
Why is it that some software projects work decades after initial development and other projects require constant upkeep? Does the software we write today have an expiration date?
Migrating to React from Durandal, slowly
One of the client projects that I work on makes use of Durandal and KnockoutJS for their front end. This approach is quite old, so old that Durandal's Github repository has not received significant updates in several years and has even been archived.
About this Website
I originally built this website while I was in university. I had very little understanding of html, css, and javascript. I mostly copy-pasted html with inline styles and grabbed javascript from Stack Overflow to make the site 'work'. Around the 19th November 2018 I started rebuilding the site with the intention of making it small, fast, SEO friendly and to apply as much of what I had learned onto the new site. I wrote a blog post about the redesign click here to read it.
As part of the redesign this website has an automated CI / CD pipeline: