Requirements analyst, software architect and budding game developer and actor. I am primarily a **requirements analyst** and **software architect**. I've worked mainly using **Delphi**, but also for many years using **C#**. Also, studied then worked on a few projects using **Unity**. I also have studied **professional acting** for a few years. In my experience, all requirements (even seemingly complex real world requirements) can be distilled into a few core rules. When those rules are combined, they give rise to the appearance of complexity. My strengths are to: • Discover the essences of complex requirements. • Combine creative thinking with critical thinking. • Architect simpler and cleaner solutions. Core rules are simple and clean, leading to simple and clean architecture and code, leading to simpler testing, debugging, extending, documenting... maintenance in general. (Yes, I prefer to document my code to help future developers, mainly with diagrams.) --- **Employment and project experience** I have worked many years as a full stack developer, from junior developer to senior tech lead, in Australia, Sweden and Taiwan. My work history is too long to describe here, and I assume my job history is visible. So, I'd rather describe a few of my favourite projects.

Peter Thönell

Requirements analyst, software architect and budding game developer and actor. I am primarily a **requirements analyst** and **software architect**. I've worked mainly using **Delphi**, but also for many years using **C#**. Also, studied then worked on a few projects using **Unity**. I also have studied **professional acting** for a few years. In my experience, all requirements (even seemingly complex real world requirements) can be distilled into a few core rules. When those rules are combined, they give rise to the appearance of complexity. My strengths are to: • Discover the essences of complex requirements. • Combine creative thinking with critical thinking. • Architect simpler and cleaner solutions. Core rules are simple and clean, leading to simple and clean architecture and code, leading to simpler testing, debugging, extending, documenting... maintenance in general. (Yes, I prefer to document my code to help future developers, mainly with diagrams.) --- **Employment and project experience** I have worked many years as a full stack developer, from junior developer to senior tech lead, in Australia, Sweden and Taiwan. My work history is too long to describe here, and I assume my job history is visible. So, I'd rather describe a few of my favourite projects.

Available to hire

Requirements analyst, software architect and budding game developer and actor.

I am primarily a requirements analyst and software architect.
I’ve worked mainly using Delphi, but also for many years using C#.
Also, studied then worked on a few projects using Unity.

I also have studied professional acting for a few years.

In my experience, all requirements (even seemingly complex real world requirements) can be distilled into a few core rules. When those rules are combined, they give rise to the appearance of complexity.

My strengths are to:
• Discover the essences of complex requirements.
• Combine creative thinking with critical thinking.
• Architect simpler and cleaner solutions.

Core rules are simple and clean, leading to simple and clean architecture and code, leading to simpler testing, debugging, extending, documenting… maintenance in general.
(Yes, I prefer to document my code to help future developers, mainly with diagrams.)


Employment and project experience

I have worked many years as a full stack developer, from junior developer to senior tech lead, in Australia, Sweden and Taiwan.
My work history is too long to describe here, and I assume my job history is visible.
So, I’d rather describe a few of my favourite projects.

See more

Experience Level

Expert
Expert
Expert
Expert
Expert
Expert
Intermediate
Intermediate
Beginner
See more

Language

English
Fluent
Swedish
Fluent
French
Intermediate
Spanish; Castilian
Beginner
Chinese
Beginner

Work Experience

Sole trader at Core Maze (BatSoft)
March 1, 2022 - Present
Developed two 2D maze generation algorithms for a Unity plug-in; researching and drafting a paper on the algorithms; established coding standards and demonstrated strong OO approaches.
Owner / Software Developer at BatSoft
August 1, 2004 - Present
Owner of BatSoft; developing multiple projects including BatSoft Library, TreeNotes, and Morph Protocol. Responsibilities include architecture, design, coding, testing, and maintenance across Delphi and C# ecosystems.
Senior Software Developer at Immersive Technologies
July 1, 2024 - October 23, 2025
Senior developer contributing to training simulators for mining vehicles; expanded knowledge of C++ and general OO/OOP practices; supported architecture and code quality across teams.
Software Engineer at Viewport
March 1, 2023 - October 23, 2025
Worked on HoloLens 2 AR experiences; created multi-user interactions and data relationships for AR training and marketing tools; integrated Unity with Unreal and Blueprint workflows.
Unity Developer at Spree AB
November 1, 2021 - October 23, 2025
Contract work on a museum exhibit project; developed Unity-based experiences with a focus on performance and UX.
Software Developer at Nonlinear Solutions
May 1, 2021 - October 23, 2025
Built a visualization app for tablet and PC as a showcase for a digital twin and training; emphasized clear UI and data-centric design.
Senior Tech Lead at Telstra Health
November 1, 2019 - October 23, 2025
Led modernization efforts for the Communicare patient management application; guided architecture and modernization strategies across Delphi and C# components.
Software Engineer at RMT
October 1, 2014 - October 23, 2025
Added modules to CADE; performed refactoring of the core codebase; developed a multi-process report converter and a lean report service to replace a buggy legacy system.
Software Engineer at Configurable Software Solutions
January 1, 2016 - October 23, 2025
Maintained CPR (Configurable Product Reporting) and designed HeartBeat to replace CPR; worked with Delphi and FireMonkey on SQL Server back-ends.
Software Developer at Meercat
June 1, 2008 - October 23, 2025
Upgraded and maintained existing products; developed fast data extraction tool and other efficiency improvements.
Business Analyst at Fortescue Metals Group
April 1, 2008 - October 23, 2025
Researched current state of identity management; designed provisioning rules and migration strategy; authored requirements and functional specifications for a 3rd-party provisioning solution.
Test Lead at Motorola Perth
April 1, 2006 - October 23, 2025
Led testing efforts for a distributed video encryption application; contributed to quality assurance practices during a CMMi-driven upgrade.
Software Developer at eXempleX
October 1, 2005 - October 23, 2025
Enabled the application to consume any Web Service; built a modular library implementing WSDL, SOAP, and XML Schema; added Delphi variant types for complex data handling.
Software Developer at Karjeni
October 1, 2004 - October 23, 2025
Built a CD-burning application with a UI that was customisable from a central server.
Software Architect / Developer at RealTime Computing
August 1, 2003 - October 23, 2025
Designed and implemented decision-system editors and evaluators; built a string generator (XML-focused) with a plugin architecture; created a SOAP-based quoting service; modularized the RAD-era application.
Consultant / Software Developer at Marotz AB
May 1, 2002 - October 23, 2025
In-house library development; web service projects; course planning and booking intranet system; contributed to multiple Marotz client projects across Delphi/Interbase stack.
Consultant / Software Developer at Marotz AB (Stockholm, Sweden)
May 1, 2002 - October 23, 2025
Built a public web service database; implemented a web service for unit conversion; contributed to WebSnap-based course and intranet capabilities.
Software Developer at Iquity Systems (Marotz AB)
August 1, 2001 - October 23, 2025
Maintenance and GUI enhancements for web-facing applications; improved data flows and UX.
Software Developer at Upplysnings Centralen (Marotz AB)
April 1, 2001 - October 23, 2025
Automated data conversion tool development; helper utilities for data migration and reporting.
Software Developer at EDS (Marotz AB)
November 1, 2000 - October 23, 2025
Dynamic data access components with RTTI-driven properties; multi-module forms and settings classes.
Software Developer at Geni Data (Marotz AB)
August 1, 2000 - October 23, 2025
Produced customer documentation; translated Swedish materials to English.
Software Developer at Auto Diagnos (Marotz AB)
June 1, 2000 - October 23, 2025
Designed an instrumentation-based error-diagnosis tool; produced DLL interface design specifications.
Software Developer at Marotz AB
May 1, 2002 - October 23, 2025
Developed components and libraries for KnowledgeBase; built multi-use code for Delphi-based projects.
Software Developer at McDonalds (Marotz AB)
August 1, 2000 - October 23, 2025
Contributed to scheduling and HR applications; created technical documentation and reliability improvements.
Engineer at Marotz AB
October 1, 1999 - October 23, 2025
Time reporting multi-tier system design and development; client-side GUI and data handling improvements.
Software Developer / Advisor at Bunnings, Execom, Romteck…
May 1, 1999 - October 23, 2025
Contract software development and advisory work across multiple Perth-based companies.
Software Developer at Core Maze
March 1, 2022 - October 28, 2025
Developed the Unity-based maze generation plug-in and authored two 2-D maze generation algorithms; actively writing a paper on the algorithms and contributing coding standards.
Founder / Software Developer at BatSoft
August 1, 2004 - October 28, 2025
Owner/operator of BatSoft; maintains BatSoft Library (Delphi library) with unit tests and demos, develops TreeNotes, Morph Protocol and related tools; manages multiple cross-platform projects.
Senior Software Developer at Immersive Technologies
July 1, 2024 - July 1, 2024
Hired for general experience in analysis and OO design to work on mining vehicle training simulators; gained exposure to C++ and broader software practices within the team.
AR/VR Developer at Viewport
March 1, 2023 - March 1, 2023
Led AR/VR efforts for HoloLens 2 and other devices; built multi-user Unity applications, improved PPE training apps, and contributed to Unreal Engine Blueprint integration and Android AR work.
Contract Unity Developer at Spree AB
November 1, 2021 - November 1, 2021
Contracted to develop a museum exhibit application; delivered Unity-based experiences for a northern Swedish town.
Visualization Developer at Nonlinear Solutions
May 1, 2021 - May 1, 2021
Built a visualization app for tablet/PC showcasing a digital twin and training content using Unity and Visual Studio C#.
Senior Tech Lead at Telstra Health
November 1, 2019 - November 1, 2019
Guided modernisation of a long-standing Delphi/C# patient management application; led technical direction and coordination across teams.
Software Developer at RMT
October 1, 2014 - October 1, 2014
Contributed to CADE and related projects; built multi-process tools for report conversion and refactored core codebase.
Senior Software Architect / Developer at Configurable Software Solutions
January 1, 2016 - January 1, 2016
Maintained CPR, designed and implemented HeartBeat (configurable data-driven application) and contributed to data-driven architectural decisions.
Software Developer at Meercat
June 1, 2008 - June 1, 2008
Upgraded and maintained multiple products; implemented performance improvements and new features (e.g., faster data processing).
Business Analyst at Fortescue Metals Group
April 1, 2008 - April 1, 2008
Leading identity management efforts; researched current state, designed provisioning processes and wrote requirements/specifications for a 3rd-party provisioning solution.
Software Engineer at XempleX
October 1, 2005 - October 1, 2005
Enabled XempleX to consume any Web Service by building a modular library implementing WSDL, SOAP, and XML Schema; created plugins and wizards; extended Delphi variant types to handle complex data.
Software Developer at Karjeni
October 1, 2004 - October 1, 2004
Developed backup/central web service-enabled utilities and data import/export tooling; created customizable GUI components for binary file formats.
Software Engineer at RealTime Computing
July 1, 2004 - July 1, 2004
Worked on decision-system editors, string generators, and runtime-modifiable plug-ins; built a SOAP service and refactored components for better performance.
Senior Architect at eBsuccess
September 1, 2003 - December 1, 2004
As software architect I designed and implemented the core application for load-testing web-servers. This was heavily multithreaded (100's of threads), was the most efficient of it's kind (at the time, at least), and was easily reconfigured for a server farm after I left.
Software Engineer at RealTime Computing
August 1, 2003 - August 1, 2003
Designed and implemented editors/evaluators for process descriptions and XML-based data; introduced plugin-based runtime configurability.
Consultant / Software Developer at Marotz AB
May 1, 2002 - May 1, 2002
Led multiple in-house and client projects; built course planning/booking system using WebSnap; contributed to web services and Marotz library components.
Consultant / Software Developer at Marotz AB
April 1, 2002 - April 1, 2002
Delivered public database of Swedish web services and a web service for unit conversion; produced Delphi code generation tools and OOP workshops.
Software Developer at Marotz AB
May 1, 2002 - May 1, 2002
Participated in various projects including data migration, GUI enhancements, and knowledgebase tooling.
Software Developer at Fritidsresor (Marotz AB)
October 1, 2001 - October 1, 2001
Modified databases and smaller applications for statistics tracking.
Software Developer at Iquity Systems (Marotz AB)
August 1, 2001 - August 1, 2001
Maintenance and enhancements to free-call advertising suite; GUI improvements and testing utilities.
Software Developer at Upplysnings Centralen (Marotz AB)
April 1, 2001 - April 1, 2001
Automated data conversion tooling; moved data to COM objects and created related interfaces.
Software Developer at EDS (Marotz AB)
November 1, 2000 - November 1, 2000
Upgraded multi-user database applications; dynamic data access components and RTTI-based properties.
Technical Writer at Geni Data (Marotz AB)
August 1, 2000 - August 1, 2000
Produced customer documentation in English for Point of Sale systems.
Software Analyst at Auto Diagnos (Marotz AB)
June 1, 2000 - June 1, 2000
Performed design analysis for DLL interface access in hardware integration; produced design specs.
Software Developer at Marotz AB
May 1, 2002 - May 1, 2002
Developed various components and libraries for knowledgebase and Delphi projects.
Software Developer at McDonalds (Marotz AB)
August 1, 2000 - August 1, 2000
Developed scheduling and HR tools; produced technical documentation and data validation modules.
Software Developer at Marotz AB
October 1, 1999 - October 1, 1999
Team contributor on multi-tier time reporting system; client application development.
Software Developer / Advisor at Bunnings, Execom, Romteck
May 1, 1999 - May 1, 1999
Provided software development and technical advisory across multiple clients.

Education

Bachelor of Science (B.Sc.) in Computer Science and Information Technology at The University of Western Australia (UWA)
January 11, 2030 - October 23, 2025
The double major gave me much broader knowledge, which has been very advantageous over the years.
Advanced Diploma in Animation and Games at North Metro TAFE Northbridge
February 1, 2016 - June 30, 2018
Won the prize for best game, but because of my advantage due extensive experience, I passed the prize on to the next person. Perhaps I ought to have kept the award.
GAP 1 at The Actor's Hub
May 1, 2024 - January 16, 2025
Had been attending evening classes for 4-5 years before beginning the course in 2024.
B.Sc. at The University of Western Australia
January 11, 2030 - October 28, 2025

Qualifications

BSc in Computer Science and Information Technology
February 4, 1991 - September 5, 1996
Advanced Diploma in Animation and Games
February 2, 2016 - December 3, 2018
I would have won the best game award, but I gave it away because I thought my many years of work experience were an unfair advantage compared to the juniors I was studying with.
GAP 1 at The Actor's Hub
September 2, 2019 - January 16, 2025
I went to night classes for several years, before doing year one (out of three) in 2024. I feel I have a good grasp of what is truly required of professional actors.

Industry Experience

Software & Internet, Media & Entertainment, Education, Professional Services, Manufacturing, Agriculture & Mining, Healthcare, Gaming
    paper Massively multithreaded and modular web site load testing application

    Web site load testing application at eBSuccess

    As software architect, I designed and architected a web-server load-testing suite of software, and I wrote the core application in the suite. This was heavily multithreaded (100’s of threads), was the most efficient of it’s kind (at the time, at least), and was easily reconfigured for a server farm after I left.

    It was very modular:

    • Each “script” was a Java class that was auto-generated when one recorded a “user experience” using a web browser plugin (written by someone else). Java, being a non-proprietary language, was then easily edited by developers.
    • The program then loaded the chosen “user experiences” as Java classes, compiled them on the fly using just-in-time compiling, and then ran the “user experiences” at full speed.
    • For web-site testers editing the “user experiences”, I built a library for easy information extraction from HTML. That enabled them to easily search for links, in grids, buttons, etc.
      Testers could also edit the “user experiences”, to do things like fetch username/password pairs from test databases to test logging in, and other such potentially tricky tasks.
    • At the time, the Java libraries for HTTP didn’t have hooks for inserting timers for measuring things such as response time, data throughput, etc. So, I had to write a complete HTTP implementation.
    • After I left, the team modified my application to run in a server farm. It took them only one day to separate the UI from the business layer, despite never having looked at my code base before. It was then easy for them to make it into server farm executables.

    When testing, I tested against a few randomly selected web sites. I was soon blocked from those sites. I presume my software did successful DoS attacks from my laptop, which was only running at 15%.
    My sincere apologies.

    paper Super configurable database driven database application

    HeartBeat - a database driven database application

    My client needed an application that was completely configurable.
    So, we designed and I architected an application where the only “hardcoded” forms needed were:

    • a form designer
    • a property editor for the form designer

    Everything else, I mean everything else, could be configured in the database:

    • logical tables (Views with stored procedures were more powerful than using actual tables.)
    • forms for configuring the database
    • security

    We used SQL as the scripting language, so my client could configure the application to the clients’ requirements in minutes/hours, instead of days/weeks.
    I also added a macro language which turned out to be one of my client’s favourite features.

    Alas, I don’t own it, and my client’s vision for what it could have been was… limited in scope. :.(