Interactive animation of Terence Stupple's and some of the technology he enjoys using.

Terence Stupple

Digital resume of a Modern CTO and People Leader

Inside Terence's head...

As a Chief Technology Officer, I am deeply committed to creating innovative and robust technical solutions that align seamlessly with business goals.

My leadership as a CTO is characterised by a pragmatic and forward-thinking approach that balances cutting-edge innovation with practical, reliable execution. I strive to build technology that not only meets current needs but is also adaptable for future challenges, all while maintaining a human-centered focus.

At its core my philosophy is encapsulated within Kent Beck's mantra:

"Make it work. Make it right. Make it fast."

Ideals

Cloud Native

I am an advocate for cloud-native principles and serverless architectures, utilising managed services cloud functions to minimize DevOps overhead. Indeed, this site was hand-crafted using CloudFront, Lambda@Edge, and S3. This focus allows me to concentrate on delivering high-quality code without the distractions of server management and security patching.

Cloud Agnostic

I love the cloud and all that it offers, but I'm not a fan of vendor lock-in as each cloud vendor offers different pros and cons. Therefore, once out of prototyping phases I encourage a cloud-agnostic strategy where possible. Utilising IaC solutions such as Terraform ensures flexibility and scalability across different providers. If I had to choose a vendor to lock to, my preference is currently AWS as I'm an AWS lambda fanboy, however I'm keeping a close eye on Cloudflare's WASM workers.

Mobile Native

I believe in the importance of compatibility and stability. My preference is to leverage natively supported languages for iOS (Objective-C, Swift) and Android (Java, Kotlin), thereby ensuring that solutions are reliable and maintain the highest level of performance.

While React Native and Flutter offer cross-platform development advantages, they may not always align with the priorities of stability and native performance. Their reliance on a bridge to communicate with native modules can introduce overhead, potentially impacting the overall user experience and making maintenance more challenging in the long run.

However, it's essential to note that the landscape of mobile development is constantly evolving, and technologies like React Native and Flutter continue to mature. Therefore, whilst I currently believe, native development offers a more robust solution, the future may see cross-platform frameworks closing the gap.

Modular by Design

Inspired by the Unix Philosophy, I emphasise the importance of modular design within projects, ideally creating components that excel at single tasks. This modularity ensures that solutions are flexible and easily integrable into various configurations.

If there is one thing I've learned within my profession is that as soon as you are opinionated, that where the blocker settles. There is a fine line between configability and complexity so this is an area that often needs a pragmatic approach.

Developer First

A decent chunk of my recent career has been within a Business-to-business setting (B2B). As such I prioritise seamless integration of technology into partners' ecosystems. By adhering to standard design patterns and guidelines, I eschew complexity and help drive create intuitive and adaptable solutions that blend effortlessly within partners' existing systems.

Principles

Test, re-test.... and then test again.

I believe in maintaining a high-quality standard and emphasise the importance of quality assurance. As such, I'm a keen advocate for the implementation of unit tests and code coverage in a development process. Unit tests are essential as they allow validation and ensure the quality of product.

Code isn't finished until it's documented and tested.

Standards

Similar to the the previous point I'm a zealot for standards. Standards help to maintain consistency and streamline the development process. Within teams I believe the importance of establishing common coding standards. Again...this is all about being pragmatic. Like I always say you should never deal in absolutes! 😉

Build Process

I value a solid build process, as it is essential for seamless deployments. While having a documented build process is important, continuous integration (CI) is not always strict requirement. However, I do emphasize the need for thorough documentation in all our coding efforts to ensure clarity and maintainability of our codebase.

Compliance

Health Compliance

In the healthcare technology sector, safeguarding patient information is paramount. I ensure solutions adhere to the HIPAA, or any other applicable standards to ensure that all patient data is handled with the utmost security and confidentiality.

GDPR Compliance

With a global reach in mind, I ensure that technology solutions are compliant with legislation such as Europe's GDPR. This commitment to data protection and privacy upholds the rights of individuals which is something I strongly agree with.

Skills

Programming Languages

  • Python: At heart I'm a Pythonista. I love developing web applications, APIs, and automation scripts with what is a swiss army knife of a language. However it's important to understand the both the benefits and limitations of Python. I like to leverage lessons learning from functional programming, and other languages such as swift to ensure I'm writing clean, efficient code.

Web Development

  • Hypermedia-driven applications: Skilled in creating dynamic, interactive web applications that leverage the power of HTMX. Experienced in designing APIs with HATEOAS principles for improved scalability and flexibility.
  • Developing performant websites: Experienced in optimizing website performance by implementing best practices in front-end and back-end development. Knowledgeable about techniques such as lazy loading, and caching to improve user experience.

AI and Machine Learning

  • OpenAI API for generative AI: Familiar with utilizing the OpenAI API to develop AI-powered applications, including natural language processing, text generation, and more. Able to integrate AI models into existing systems for enhanced functionality.

Cloud Computing

  • AWS services: Proficient in working with various AWS services, including Lambda, DynamoDB, S3, CloudFront, and more. Experienced in architecting and deploying scalable, secure, and cost-effective solutions on the AWS cloud platform.

Version Control and Collaboration

  • Git version control: Skilled in using Git for version control, including branching, merging, and resolving conflicts. Experienced in collaborating with teams using Git for managing code repositories.

Project Management

  • Team management: Experienced in leading and managing cross-functional teams, including developers, business analysts, project managers, and designers. Skilled in fostering a collaborative and productive team environment to achieve project goals.
  • Project management: Proficient in Agile and Kanban methodologies, as well as waterfall, for managing software development projects. Experienced in facilitating sprint planning, daily stand-ups, and retrospectives to ensure project success and continuous improvement. Again, a pragmatic approach as normal is the best here as dogma can cause issues.

Snazzy SaaS

  • Tools proficiency: Experienced in using SaaS tools like Retool, FlutterFlow, Supabase, and Rive for prototyping and building proof-of-concept (PoC) applications. Skilled in evaluating and selecting the right tools for the job to streamline development processes.

Professional Timeline

Let's Chat Over Coffee

Fancy a chat? Drop me an email at terence@stupple.au and let's talk about tech, ideas, or anything under the sun!