
Rowan Titlestad
Verified Expert in Engineering
Software Developer
Pietermaritzburg, KwaZulu-Natal, South Africa
Toptal member since September 20, 2017
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
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
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)
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.
Experience
Recording and Preprocessing of Medical Insurance Claims
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
Customizable Test Case Creation and Execution Based on Production Data
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
Reconciliation of Manually Counted and Automatically Counted Cash Amounts
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
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring