Morné Fourie

Hello, I'm Morné Fourie

Full-stack .Net Developer. | Full-stack Java Developer. | SQL Developer. | Inquisitive Thinker. | Mentor.

072 336 4924
60 Killarney Street, Bellville, South Africa

Morné Fourie

Full-stack .Net Developer. Full-stack Java Developer. SQL Developer. Inquisitive Thinker. Mentor.

.Net Development

Entity Framework / Dapper
Windows Forms
ASP.Net Web Forms
ASP.Net MVC Framework
StructureMap IoC Container
NUnit / xUnit / MS Test
Log4Net and many more
WCF / SOAP / REST
Web API / NancyFX
Active Directory Integration

Java EE Development

Spring Boot / MVC / IOC
SOAP / REST Web Services
JSP / Vaadin
JPA / Hibernate
JUnit
Log4J
Grails
LDAP / Active Directory Integration

UI Design

AngularJS / ReactJS
HTML5
CSS3
Javascript / ES2016
JQuery
Bootstrap Responsive Design
(This very CV is a great example!)

Professional Profile

I started programming at the age of 14, and received a national award in the same year.

Today I am a senior .Net and intermediate Java Developer and with strong working experience in Microsoft, Java and Open Source technologies.

I manage the full software development lifecycle (SDLC):

  • Gathering business requirements
  • Drawing up / grooming specification documents
  • Sprint planning and review (Agile methodology)
  • Implementation / Programming
  • Automated builds, Unit testing and Integration testing
  • Deployments to development, UAT and production environments
  • Monitoring and bug reporting

For Microsoft based solutions, I follow best practice coding standards in the form of the .NET Framework Design Guidelines as documented on MSDN. Any developer who is familiar with the .NET framework, will be comfortable with the code conventions in the delivered codebase.

I focus on developing robust software by adhering to the SOLID principles:

  • Single Responsibility Principle
  • Open / Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

I use the most common Design Patterns to make code more readable and maintainable.

I use the best available refactoring and code quality tools, and have a professional and systematic approach to everything I do.

“If you think hiring a professional is expensive, wait ‘til you see what an amateur costs you”

Cups of coffee

Lines of code

+

Happy users

What I do

My Skills.

.Net Development

As a .Net Web Developer, I specialise in the latest Microsoft frameworks and best practises.

  • Entity Framework / Dapper (ORMs)
  • Linq
  • Web Services (serve and consume WCF, SOAP, REST, JSON, XML)
  • ASP.Net Web Forms / ASP.Net MVC
  • Windows Forms
  • AngularJS / HTML5 / CSS3 / JQuery / Bootstrap
  • C#, .Net, .Net Core
  • Object Oriented Design via battle-tested Design Patterns
  • N-Tier Design
  • Test Driven Development
  • Active Directory integration

Java Development

As a Java Developer, I solve complex problems by harnessing the latest Java technologies.

  • Spring Boot /MVC / IOC
  • Hibernate / JPA
  • JSP / Vaadin / HTML5 / CSS3 / JQuery / Bootstrap
  • Web Services (serve and consume SOAP, REST, JSON, XML)
  • Activity Workflow Engine (BPMN)
  • Object Oriented Design via battle-tested Design Patterns
  • N-Tier Design
  • Test Driven Development
  • LDAP / Active Directory integration

SQL Development and Reporting

Data is everything. I help companies configure their database servers according to best practise guidelines, and also implement their backup strategies.

General development: I have years of experience in Database Design, T-SQL, Views, Functions and Stored Procedures.

SSIS development: Setup ETL processes according to the Kimbal methodology (Facts and Dimensions).

SSRS development: Design, test and deploy standard and custom reports

Custom Data Processing Extensions (DPEs) to enable web service queries in RDLs

Mapping solutions via SQL Geography and Geometry APIs

I also setup and monitor two-way Data Replication between sites.

Integration with Financial Systems

My software passed Deloite audits every year since 2011. I help companies integrate their financial software with other 3rd party applications.

  • Pastel Partner (designed my own API)
  • Sage Evolution SDK
  • SagePay (Netcash) Debit Orders
  • SagePay (Netcash) Payment Gateway
  • PayFast Payment Gateway
  • MyGate Payment Gateway
  • Absa Host-to-Host service
  • FNB SFTP service

Microservices / SOA Architecture

Are your developers constantly introducing new bugs or breaking existing features? Does it take hours to build your existing codebase? Do teams break other teams' code?

You may need to break down your monolith codebase into separate micro-services that can be built and deployed independantly.

I have rescued many projects that were doomed to fail, because their architecture was not based on today's best practises.

As an SOA specialist, I help businesses architect their systems for loose coupling, tight cohesion and increased productivity.

Consulting and Coaching

I help companies setup their development environments so that their development teams can be productive from day one.

Source Control

  • Git server configuration

Continuous Integration (CI) / Build environment

  • Jenkins configuration for both Java and .NET builds
  • Maven configuration
  • Sonatype Nexus configuration
  • NuGet configuration

Project Management / Agile

  • Jira Agile configuration
  • Jira Capture bug reporting
  • Confluence Wiki

Test tools

  • Selenium

Production Environment Monitoring

  • PRTG Monitor configuration

Mentoring

  • I mentor software developers in SOLID principles and robust software Design Patterns

I'm a Lead .Net developer at DVT in Cape Town, where I develop custom software solutions for our clients.

Let me know what your needs are. Then let's set up a meeting.

Contact me

Curriculum Vitae

My education and experience.

Education

National Certificate in Datametrics

My studies centered around systems analysis and various design methodologies. I use UML, Use Case, Flow Control, Timelines and other diagrams in my technical documents.

UNISA

2003 - 2004

Advanced Delphi and Oracle Course

My first in-house CRM was written in Delphi. This course helped me to master the more advanced concepts, and also introduced me to Oracle databases.

Dakota Training Centre

2002

Microsoft Certified Systems Engineer (MCSE)

My MSCE certification enabled me to administer and maintain Microsoft Windows Servers and provided me with the necessary network skills.

Dynamix Training Centre

2000

Experience

Automated Order Validation

Affilinet's UK offices needed an automated system to monitor an inbox and parse the attachments containing the previous day's returns and cancellation data.

I designed and implemented a job scheduler that processed the incoming files without any user intervention. Only when the users receive an email containing any errors that may have occurred, they need to log in to troubleshoot the process via the user interface.

The web application also updates the external stock system via a SOAP API.

The automated application created an operational efficiency, accelerating the reconciliation process from weeks to a single day.

Affilinet / Debenhams

2016

Custom Data Processing Extensions (DLLs) for SSRS

It is estimated that only 20% of all data is tabular and can be stored in databases. MiX Telematics needed their SSRS reports to bind to other data sources like SOAP and REST Web Services.

Enter the Custom Data Processing Extension (DPE)! As a DVT contractor I was responsible for implementing a set of DLLs for deployment alongside SSRS, to enable RDLs to access non-SQL data via Web Services.

Complex business rules could be implemented, because it could not be done in stored procedures alone. Data could be merged from various sources, and greatly simplified the report design.

I was also responsible for implementing changes to the ETL processes from the OLAP databases to the Staging and Warehouse databases.

DVT / MiX Telematics / Matrix Vehicle Tracking

2015

Peer to Peer Lending Platform

RainFin's lending marketplace is an alternative way to borrow or lend money. It directly connects borrowers and lenders, allowing for cheaper credit for borrowers and better returns for lenders.

As a DVT contractor I was responsible for completing the SME version of the application, along with 3 other developers. I learnt from one of the best architects in South Africa.

We also ported the PHP version of the Personal Loans application to a .Net MVC application.

The Personal and SME applications consumed web services exposed by the core system, and also did live credit checks.

DVT / RainFin / Absa

2015

Software Development Project Manager (Agile)

Curro Holdings upgraded both their academic and financial systems in the same year. The 3rd party academic system was retired in favour of a new in-house system, a web-based system based on Grails and Vaadin.

As project manager I was responsible for gathering user requirements from academic specialists and the financial department. We collaborated on a shared specification document, which I enhanced with technical details and UI wireframes.

We hired external developers and followed the Agile Methodology, based on the Jira project management software.

Curro Holdings

2014

Data migrations from Pastel Partner to Sage Evolution

The company had a need to migrate their Customer, Supplier and GL history for 2013-2014 from 50 Partner databases to 10 Evolution databases. Evolution was configured with segmented GL's and branch accounting.

I harnassed the power of my own Partner SDK and the Evolution SDK to migrate the transactions to the new system.

The trial balances were signed off by the financial department and balanced to the cent.

Curro Holdings

2014

Budget Manager Application (Java EE)

I had to rescue a Budget Manager Spring application in a very short time after a junior programmer left the company.

The application is used by management to build the next year's budget from external sources and to present it to the Board.

Curro Holdings

2013 - 2014

Database replication to 33 sites

Because of slow internet connections between sites, the company could not centralise information as they would like. Financial data would reside at Head Office while academic data would be managed at each site.

I was asked to implement a replication strategy to synchronise financial and academic data between sites.

I chose to use SQL Server Merge Replication, in addition to an ASP.Net implementation on each site where staff members could process invoices and billing remotely.

Curro Holdings

2012 - 2013

ETL implementations (SSIS)

As a database administrator I was asked to implement ETL processes to stage subsets of data on the company's public facing website.

The data is used by the self-help customer portal.

Curro Holdings

2012 - 2013

Reporting (SSRS)

I was asked to design a number of web-based reports, which I chose to implement in SSRS.

The reports were used mainly by financial users, including auditors.

Currently we are migrating these reports to a StimulSoft reporting platform.

Curro Holdings

2012 - 2014

Debit Order implementation

We retired Absa Bank's debit order system in favour of a new ASP.Net implementaion where the financial department could administer the customer's debit orders from any site.

The debit order system interfaces with Netcash (now SagePay) and pushes billing and unpaid transactions to Pastel Partner (and now Sage Evolution).

Curro Holdings

2013

The Synergy billing engine is the heart of the company's cashflow provision.

I was asked to implement a system which would take inputs from the 3rd party academic system as the basis for monthly billing. I implemented an ASP.net solution that would generate batches for import into Pastel Partner.

Today Synergy generates more than 30000 monthly invoices for study fees and other adhoc fees. These invoices are pushed to Sage Evolution.

Parents can view their statements online and also pay online.

Curro Holdings

2010 - 2014

Contact Me

If you think hiring a professional is expensive, wait ‘til you see what an amateur costs you.

Let me know what your needs are. Then let's set up a meeting.