Rowan Titlestad, Developer in Pietermaritzburg, KwaZulu-Natal, South Africa
Rowan is available for hire
Hire Rowan

Rowan Titlestad

Verified Expert  in Engineering

Software Developer

Pietermaritzburg, KwaZulu-Natal, South Africa

Toptal member since September 20, 2017

Bio

Rowan is a full-stack software developer with seven years of experience consulting for clients in the banking, insurance, and cash management industries. He takes pride in delivering high-quality software and being able to produce simple, readable code supported by automated tests.

Portfolio

Business Systems Group (BSG)
C#, Git, JUnit, Apache Maven, Docker, CSS, HTML, Google Web Toolkit, TypeScript...

Experience

  • Java - 6 years
  • Hibernate - 5 years
  • Spring - 5 years
  • SQL - 5 years
  • HTML - 5 years
  • Test-driven Development (TDD) - 4 years
  • JavaScript - 2 years
  • C# - 2 years

Availability

Part-time

Preferred Environment

Git, IntelliJ IDEA

The most amazing...

...thing I've built is a user-configurable application to analyze the results produced by different versions of a system in order to track regression errors.

Work Experience

Software Developer (Java)

2009 - 2016
Business Systems Group (BSG)
  • Worked as a full-stack developer on projects for a number of different clients in the banking, insurance, and cash management industries.
  • Automated the recording and reprocessing of various parts of a complicated medical insurance claim structure in order to find regression errors.
  • Implemented batch-processing systems for recording and reprocessing large volumes of those claims using queues.
  • Developed a web-based user interface for analyzing differences in how those claims were processed and configuring rules to classify those differences in order to track regression errors.
  • Used a profiler to identify performance bottlenecks.
  • Created Docker containers and an automated build and deployment process for those containers in order to create an isolated and deterministic test environment.
  • Worked on a web-based user interface and associated web service which allowed users to customize and run test cases based on sanitized production data.
  • Enhanced parts of the software used for the opening of accounts at a major South African bank to protect against identity fraud and to massively reduce the amount of paper used.
  • Coached other developers in the use of test-driven development, refactoring, and clean code (using training sessions and pair programming).
  • Enhanced an existing web application to automate the confirmation and review of billable hours each month.
  • Automated the generation of reports necessary to organize a large series of sporting events.
  • Worked on a system for a cash management company to reconcile amounts of cash that are physically counted with those that are counted by machine.
  • Developed the persistence component of an interface between a major South African bank’s internet banking and a third party application to allow for single sign-on.
  • Wrote load tests which identified a major race condition.
  • Enhanced a legacy system for managing collateral for a major South African bank.
  • Created automated reports for an international insurance market to provide to regulators.
  • Collaborated with clients or product owners to determine requirements.
  • Used test-driven development to ensure that code was delivered with a high-level of test coverage.
  • Wrote unit, integration, and end-to-end tests.
  • Created automated deployment pipelines to ensure that deployments could be performed often and with a high degree of confidence.
  • Coached other developers using pair programming and code review feedback.
  • Used agile methodologies (Scrum and Kanban) to manage work.
  • Interviewed software developer candidates.
  • Conducted performance reviews for a junior developer.
Technologies: C#, Git, JUnit, Apache Maven, Docker, CSS, HTML, Google Web Toolkit, TypeScript, AngularJS, jQuery, JavaScript, SQL, Hibernate, Spring, Java EE, Java

Experience

Recording and Preprocessing of Medical Insurance Claims

A legacy medical insurance claims processing system was about to undergo a major, incremental rewrite and the client wanted to be confident that the changes being made were not going to adversely impact their business.

I worked on a team (that varied between 2-4 developers) to develop a system that could record all the important inputs and outputs for thousands of actual claims every day and then reprocess those claims against an unreleased version of the system at night.

I worked on a large portion of every part of this system. I also created a deployment pipeline which automatically built, deployed and tested the system (in a separate environment created for this purpose) and then allowed deployments to the test and production environments to be triggered on-demand.

Classification of Processing Differences of Medical Insurance Claims

The above-mentioned system produced a huge amount of data so I was tasked with building a user interface that allowed processing differences to be classified based on user-defined rules. I also developed the UI as well as the back-end batch processing necessary to extract, classify, and report on the differences found.

Customizable Test Case Creation and Execution Based on Production Data

Due to my previous experience with the system for reprocessing medical insurance claims, I was assigned to lead the team for this project.

We built an interface which allowed the user to create a test case based on a sanitized production claim and then customize parts of it. The user could then trigger the test case to run against a completely isolated test environment consisting of the different parts of the claims processing system running in Docker containers.

Enhancements to Bank Account Opening Software

The goal of this project was to enhance the existing software used for the opening of accounts at the branches of a major South African bank in order to reduce both identity fraud and paper usage. I worked on many parts of this system and also coached other developers in the use of test-driven development and identifying and refactoring away code problems in the legacy codebase.

Reconciliation of Manually Counted and Automatically Counted Cash Amounts

I worked with one other developer in building a new system for a cash management company.

The system allowed the user to enter the amount of cash they had counted and automatically reconciled this with the count made by a machine at the business where the cash was received. I later enhanced the system to also reconcile these amounts with the cash management company’s bank statement.

Education

2005 - 2008

Bachelor of Science Degree with Honors in Computer Science

University of KwaZulu-Natal - Pietermaritzburg and Durban, South Africa

Skills

Libraries/APIs

jQuery, React, REST APIs

Tools

Jira, Apache Maven, Git, Subversion (SVN), Jenkins, IntelliJ IDEA, Postman

Languages

Java, JavaScript, TypeScript, CSS, SQL, C#, HTML

Frameworks

JPA, Angular, JUnit, Hibernate, Spring, Bootstrap, Google Web Toolkit, AngularJS, Selenium, Redux

Paradigms

Kanban, Unit Testing, Agile Software Development, Clean Code, Refactoring, Pair Programming, Scrum, Continuous Integration (CI), Test-driven Development (TDD), Object-oriented Programming (OOP), Extreme Programming, Continuous Delivery (CD), Concurrent Programming, E2E Testing

Platforms

Windows, Docker, Java EE, Linux

Storage

Oracle RDBMS, MySQL, Microsoft SQL Server

Other

Build Pipelines, Integration Testing, Back-end Development, Code Review, Debugging, Message Queues, Front-end, Apps, Web Services, SOAP, RESTful Web Services

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring