Justin Worthe

Email:justin@worthe-it.co.za
Website:worthe-it.co.za
Location:Midrand, South Africa

Skills

Software Engineering

I have been programming since I learned Java in high school. Through my education at the University of the Witwatersrand, I was exposed to programming on many different levels, from Assembly to C++ to Java to SQL. In my career so far, I have focused mainly on higher level languages, and have spent a great deal of time using C# and JavaScript to craft cloud applications.

Web Development

One of the areas that I have spent a lot of time in is creating responsive web interfaces. These range in complexity from static websites all the way up to single page JavaScript applications that connect to a RESTful API. In these projects, I have been involved in the full stack, from the front end to the database, as well as the devops used to push it out into the world.

Responding to Real World Problems

One of my greatest strengths is my ability to learn new systems quickly. This makes it easier for me to get up and running with a new tool, and so focus on using the right tool for the job. It also makes me versatile in the types of problems that I can solve.

Open Source

I am a believer in the value of open source technology, and try to use it where I have the option to. My personal preference for my development computer runs Linux.

Collaboration using Version Control and Continuous Integration

Any project that takes more than one person, or more than a day to throw together, needs systems to keep it organized. I am well versed in the Git version control system. I have also set up continuous integration builds and single click deployments using TeamCity and Jenkins. This includes integrating with the Slack API to notify the team when a build fails.

Solving Challenging Problems

I have a special interest in solving computationally challenging problems. By this, I mean problems that have strict requirements in terms of performance and throughput, problems that need to manage large amounts of data, or problems where an optimal solution is not obvious or may not exist at all.

Unfortunately, these sorts of problems do not come up regularly in my current job, and I encounter them mostly in the form of programming competitions.

Experience

In my career so far, I have seen several project from their initial commit to their release into production. My duties have included both the software development side of things and the softer skills such as mentorship and project management.

2016 - Mobile Companion for Cloud Accounting Software

  • This application is the mobile front end for a large cloud-based accounting package
    • The primary front end for the accounting package is a web browser on a desktop or laptop computer.
    • The mobile application is designed to provide a subset of the functionality most likely to be useful to people on the go, such as creating quotes and invoices.
    • The application needed to be available on both iOS and Android, so PhoneGap was chosen as the tool to build for both simultaneously.
  • Worked closely with the developers of the desktop front end to ensure a seamless user experience.
  • Had primary responsibility for application’s technical direction and development.
  • Managed tasks to be done by other developers.
  • Organized regular training sessions for other members of the development team.
  • Technologies: AngularJS, PhoneGap, Android, iPhone

2016 - Workflow Management for Property Valuation

  • This application is designed to allow a property valuation company to efficiently follow their workflow for providing valuation information.
    • This included surfacing information provided by other in-house web services, as well as tracking all other information relevant to the workflow.
  • Had a senior role in technical decision making and design decisions.
  • Mentored junior members of the team from a technical point of view.
  • Technologies: .Net MVC, JQuery, SQL Server, WCF

2015 - Roboadvisor

  • This application provides people with guided advice on creating a new investment.
    • This is a multistage process, starting with gathering information from the user and visualizing the impact their decisions will have.
    • The interface needed to be targeted towards potential investors, since the system is essentially a sales process.
    • At the end, the user captures their personal information and the system generates their application form.
  • Managed the project in terms of task management and timelines.
  • Had primary responsibility for project’s technical direction and development.
  • Demonstrated the system at regular intervals to the product owner and gathered feedback.
  • Set up the hosting environment and the deployment process.
  • Technologies: Node.js, Express, AngularJS, MongoDB

2015 - Performance Dashboard for Distributed Testing Devices

  • This application allows a person who has used a medical simulation-based testing device to see their results.
    • This involved aggregating data that came from many distributed devices.
    • A technical challenge on this project was to optimize the performance of the system so that the dashboard would be able to load in a reasonable time, despite needing to aggregate large volumes of data.
    • The portal also included a content management system, so that administrators could share relevant content around the tests.
  • Managed the project in terms of task management and timelines.
  • Had primary responsibility for project’s technical direction and development.
  • Demonstrated the system at regular intervals to the product owner and gathered feedback.
  • Set up the cloud hosting environment and the deployment process.
  • Mentored a junior developer and managed the work assigned to them.
  • Technologies: .Net WebApi, AngularJS, SQL Server

2015 - Proficiency Testing Platform

  • This application assists in the continuous testing of employees at a large organization.
    • In the client’s business domain, ensuring their employees’ proficiency at various tasks is critical for safety reasons.
    • Employees all need to complete a number of tests four times a year.
    • The application required a test coordinator to set up the memo, and a participant to fill in an answer sheet.
    • The system would mark the participant and generate reports based on their results.
  • Had the Project Lead role, responsible for managing the project in terms of task management, timelines, and progress reports.
  • Had primary responsibility for project’s technical direction and development.
  • Learned the client’s domain and its terminology.
  • Gathered requirements, and gathered feedback by demonstrating the system at regular intervals to the product owner.
  • Set up the cloud hosting environment and the deployment process.
  • Mentored a junior developer and managed the work assigned to them.
  • Technologies: .Net MVC, SQL Server

2014 - Catalogue Creation

  • This application facilitates creation of presentations by an importing company to show potential customers what they can import for them.
    • The importers attend trade fairs, where they take photos of all of the products available.
    • On their return to South Africa, the importers use the application to capture the information and create printable presentations.
    • The application also includes a calculator to assist in setting a product’s selling price, taking into account shipping costs and import taxes.
  • Developed both client side and server side aspects of the project, including the system that exports the presentation to a printable form.
  • Took over responsibility for client interaction when the project lead was unavailable.
  • Technologies: .Net WebApi, AngularJS, SQL Server

2013 - Financial Wellness Tracking System

  • This application is a dashboard onto a person’s financial wellbeing to assist in debt rehabilitation.
    • A debt counsellor meets with the customer monthly, and uses the dashboard to facilitate the conversation on their finances, and how to improve them.
    • The project needed to integrate with a significant amount of existing infrastructure.
  • Developed both client side and server side aspects of the project, which integrated with existing infrastructure.
  • Worked with existing in-house developers to learn the existing systems.
  • Took part in demonstrating the system and gathering feedback.
  • Technologies: .Net WebApi, AngularJS, WCF

2013 - Direct Marketing Lead Management System and Sign up Process

  • This application enables a sales team to track the interactions they have engaged in with prospective customers.
    • This added transparency to the sales process, as it let managers see a sales person’s work in progress and their history.
    • In the event that a sale was made, the application also handled the sign up process.
    • The application was web based, and so cross platform in nature. The application was specifically intended to run on iPads as that is what the sales team were using.
    • A technical challenge on this project was to make the process of signing up a new customer work, even if the Internet connection failed or the web browser was closed in the middle of the process.
  • Developed both client side and server side aspects of the project.
  • Provided technical support and maintenance on the project after its completion.
  • Technologies: .Net MVC, KnockoutJS, SQL Server

Employers

2017 to present - Jemstep by Invesco - Senior Software Engineer

I joined Jemstep to work on building their software products. This was a major technology jump for me, coming from a .Net and Node stack to working with Scala running on the JVM.

2012 to 2017 - Entelect Software - Senior Software Engineer

I joined Entelect as an intern software engineer while I was still studying. After I completed my degree at the end of 2012, they hired me as a software engineer. I have seen several projects through to completion while working at Entelect, and my level of responsibility from the project has increased steadily. I was promoted to the position of senior software engineer in 2014.

Education

  • 2012 - Bachelor of Science in Engineering (Electrical Engineering) (Information Engineering option)
    • University of the Witwatersrand
    • Cum laude
  • 2008 - Matric
    • Hyde Park High School