Profile
My name is Samuel and I'm a software engineer. I enjoy finding creative solutions to difficult problems. I have experience working with teams on web and mobile applications, focusing on security and performance. I actively contribute to open-source projects and regularly speak at conferences.
- Contact: samuel@oriontransfer.net
- GitHub: https://github.com/ioquatix, https://github.com/socketry, https://github.com/kurocha
- LinkedIn Profile
Core Competencies
- Principle Software Engineer and Team Leader.
- Networking and Systems Administration.
- Programing Language Design and Implementation.
- Computer Vision and Rendering.
- Computer Science Education and Teaching.
- Game Design and Implementation.
- Efficient Algorithms and Problem Solving.
Education
- University of Canterbury — M.Sc., Computer Science with 1st class Honours (2013).
- GPA: 8.95 out of 9.0 (University Transcript)
- Thesis: Real-time Hybrid Tracking for Outdoor Augmented Reality.
- University of Canterbury — B.Sc., Computer Science (2008)
- Final year GPA: 8.34 out of 9.0 (University Transcript)
- Trinity College of London — Classical Flute
- (2002) Grade 8 with distinction (top in Christchurch).
- Royal Schools of Music — Music Theory
- (2002) Grade 5 with distinction (top in New Zealand).
Awards
- Finalist in the Open Source Contributor Category
- (2021) New Zealand Open Source Awards.
- Outstanding Performance — Falcon Web Server
- (2019) Awarded ¥100,000JPY from the Fukuoka Ruby Award.
- Innovation in Tourism & Entertainment — GeoZone
- (2017) Winner at the New Zealand Innovation Awards.
- UK Trade & Investment Innovative Mobile Technology — GeoZone
- (2015) Winner at the New Zealand Hi-Tech Awards.
- Finalist in the pre-commercialisation category — GeoZone
- (2014) New Zealand Hi-Tech awards.
- Development Funding — Programming Dojo website
- (2013) Received funding for website updates.
- Most Entrepreneurial Team — Puteko Ltd
- (2012) Awarded $6,000 NZD from Entré Ltd.
- Tech Jumpstart Award — Puteko Ltd
- (2012) Awarded $20,000NZD from Tech Jumpstart.
- Academic Exchange — MIME Group, National University of Singapore
- (2012) Awarded $10,000NZD to assist with outdoor augmented reality research and development in Singapore.
- Best Master's Presentation — Computer Science and Software Engineering, University of Canterbury
- (2012) Awarded an iPod Touch for a presentation on my Master's thesis research.
- Master's Thesis Scholarship — HIT Lab NZ, University of Canterbury
- (2011) Awarded $15,000NZD to study outdoor augmented reality sensor fusion and tracking.
- Development Scholarship — HIT Lab NZ, University of Canterbury
- (2011) Awarded $10,000NZD for the development of augmented reality applications for the iPhone.
- Development Funding — Film and Theatre, University of Canterbury
- (2011) Awarded $2,000NZD for the development of an online digital teaching tool.
- Summer Scholarship — Compiler Design and Program Verification
- (2010) Awarded $5,000NZD from the University of Canterbury, working with Dr. Tadao Takaoka.
- Development Funding — Programming Language Posters
- (2010) Awarded $1,500NZD for the development of the Programming Language Posters and their distribution to New Zealand Schools from the University of Canterbury.
Conferences
- Leveraging Falcon and Fails for Real-Time Interactivity
- RubyKaigi 2024, Okinawa, Japan. In the rapidly evolving landscape of web-based gaming, Ruby's potential for building dynamic, real-time interactive experiences is often underrated. This talk aims to shatter this misconception by demonstrating the powerful synergy between Falcon, an asynchronous web server, and Ruby on Rails, the stalwart of web application frameworks. We will embark on a journey to design and implement a real-time interactive game from the ground up, showcasing how Ruby, when coupled with Falcon's concurrency capabilities, can be a formidable tool in the gaming domain. Key focus areas will include leveraging Falcon's event-driven architecture for managing high-throughput, low-latency game data, and integrating it seamlessly with Rails to create an engaging user experience. Attendees will gain insights into the nuances of real-time web communication in Ruby, efficient handling of WebSockets, and the application of Rails' robust features in a gaming context.
- Unleashing the Power of Asynchronous HTTP with Ruby
- RubyKaigi 2023, Nagano, Japan. The Hyper Text Transfer Protocol (HTTP) underpins the vast majority of Ruby web applications, but its details are often hidden from the application layer. In this session, we will explore the inner workings of the HTTP protocol, its evolution from HTTP/0.9 to HTTP/3, and the various interfaces and implementations offered for HTTP clients and servers for the Ruby programming language. Additionally, we will delve into the world of Asynchronous HTTP, examining its key concepts and benefits, and learn how to leverage its power within Ruby to build fast, scalable, and efficient web applications. From understanding the history of HTTP, to implementing best practices for Asynchronous HTTP, this presentation is a starting point for anyone looking to improve their Ruby web development skills. Unleash the power of Asynchronous HTTP with Ruby.
- Asynchronous Rails
- RubyConf Australia 2023, Melbourne, Australia. The fiber scheduler presents new opportunities for building scalable and concurrent Ruby programs. However, Rails has traditionally been a request-per-process or request-per-thread framework. We will give a brief introduction to the fiber scheduler, and look at how we are evolving Rails and Ruby in general to take advantage of request-per-fiber using Falcon.
- Real World Applications with the Ruby Fiber Scheduler
- RubyKaigi 2022, Mie, Japan. Ruby 3 introduced the fiber scheduler which provides transparent context switching between fibers when they perform blocking operations. With minimal changes, web applications can take advantage of the fiber scheduler to improve performance and unlock new techniques for application design and interactivity. We discuss the current state of the fiber scheduler design, its usage in several real world applications, and how you can take advantage of it in your own projects.
- Event Driven Concurrency using the Ruby Fiber Scheduler
- COSCUP x RubyConfTW 2021, Online. Event driven concurrency is a feature of many modern programming languages, but until recently was difficult to use with Ruby. Ruby 3 includes a new fiber scheduler interface which allows us to hook into non-blocking operations and execute them concurrently, however robust implementations of this interface are not yet widely available. We will discuss the implementation of the Async fiber scheduler, how it works and how it can be used to build highly scalable applications.
- Don't Wait For Me! Scalable Concurrency for Ruby 3
- RubyKaigi Takeout 2020, Online. We have proven that fibers are useful for building scalable systems. In order to develop this further, we need to add hooks into the various Ruby VMs so that we can improve the concurrency of existing code without changes. There is an outstanding PR for this work, but additional effort is required to bring this to completion and show its effectiveness in real world situations. We will discuss the implementation of this PR, the implementation of the corresponding Async Scheduler, and how they work together to improve the scalability of Ruby applications.
- Asynchronous Ruby
- RubyWorld Conference 2019, Matsue, Japan. Without the right support, programs that handle many simultaneous tasks can be hard to build. The traditional request-per-process/thread model does not scale well. Explicit concurrency, including promises/futures, impose a significant cognitive burden and their use pollutes code all the way up the call chain. We present async, a gem for Ruby that implements the reactor pattern using stackful coroutines. We discuss asynchronous programming models, touch briefly on the state of asynchronous programming in Ruby, and show how fibers can be an excellent model for concurrency.
- The Journey to One Million
- RubyConfTW 2019, Taipai, Taiwan. Modern servers are capable of supporting millions of clients, both in terms of requests per second, and simultaneous connections. However, unless scalability is a priority, it can be very difficult to utilise the available hardware efficiently. Overheads in the application code, frameworks and operating system can act as force multipliers which increase memory pressure, latency and resource utilisation. We discuss the challenges encountered when scaling Ruby to one million concurrent WebSocket connections, and investigate the changes required to make it possible.
- Fibers Are the Right Solution
- Ruby Kaigi 2019, Fukuoka, Japan. The majority of performance improvements in modern processors are due to increased core count rather than increased instruction execution frequency. To maximise hardware utilization, applications need to use multiple processes and threads. Servers that process discrete requests are a good candidate for both parallelization and concurrency improvements. We discuss different ways in which servers can improve processor utilization and how these different approaches affect application code. We show that fibers require minimal changes to existing application code and are thus a good approach for retrofitting existing systems.
Research
- A Robot System for Pruning Grape Vines
- Journal of Field Robotics, 2016. This paper describes a robot system for automatically pruning grape vines. A mobile platform straddles the row of vines, and images them with trinocular stereo cameras as it moves. A computer vision system builds a 3D model of the vines, an AI system decides which canes to prune, and a six degree-of-freedom robot arm makes the required cuts. The system is demonstrated cutting vines in the vineyard.
- Transform Flow: A Mobile Augmented Reality Visualisation and Evaluation Toolkit
- Image and Vision Computing New Zealand, 2013. It is common in mobile augmented reality (AR) research to examine results that were attained with unpublished tools and data sets, which makes it difficult to compare and improve existing work without significant effort. We discuss the development of an open source toolkit called Transform Flow, which includes a data capture application for iOS, a desktop application to replay and analyse captured data sets with different algorithms, and a mobile application that can run these algorithms in real-time. Our results suggest that our toolkit can be a centre for collaborative research, as it provides a common platform on which tracking algorithms for mobile AR can be developed, studied and eventually deployed.
- Hybrid Tracking using Gravity Aligned Edges
- Awarded best paper at Computer-Human Interaction New Zealand, 2013. We have developed a hybrid tracking algorithm for mobile outdoor augmented reality (AR) applications. Our approach combines inertial sensors and camera video to improve global bearing calculations. Prior research in this area has focused on gravity aware feature descriptors, but we expand this to efficient full-frame vertical edge detection. We discuss our implementation and evaluate it’s performance on an iPhone 5, which reveals that our approach is over 100 times faster than existing feature alignment algorithms and can improve tracking with only 2-4ms of additional processing per frame on current generation mobile phones.
- Mr Painting Robot
- Image and Vision Computing New Zealand, 2011. This research investigates the identification of outlines, and how this can be used for input into a creative painting algorithm. It builds on several existing algorithms including the bilateral filter and laplacian edge detection, and develops several new algorithms including intensity scanning and brush stroke formation. The primary benefit of this approach is that the output format is vector based (and thus suitable for robotic armatures), rather than pixel based (such as one would expect from the majority of painterly algorithms). Synthetic tests show that the entire process can reproduce sumi-e style images with over 90% accuracy.
Skills
- Software Design and Development
- 10+ years of experience as a software engineer.
- Fluent in a variety of different programming languages including: C++, Objective-C, Swift, Ruby (favourite language), Python (mainly teaching), JavaScript.
- Experienced with different programming APIs including: UNIX, POSIX, Cocoa, CoreFoundation, iOS, Vulkan, OpenGL, OpenAL.
- Proficient with source code management systems, continuous deployment and unit testing.
- Proud open source software contributor; experienced at collaborating with other developers.
- Networking and Systems Administration
- 10+ years of experience as a network and systems administrator.
- Experienced with the deployment of a wide variety of network services, including hardware, software and related infrastructure.
- Good at problem solving and dealing with legacy systems and installations.
- Familiar with most major operating systems and virtualisation environments.
- Capable of dealing with end user problems professionally, compassionately and in a timely manner.
- Fluent at scripting and able to automate a wide variety of tasks.
- Programming Language Design and Implementation
- Fascinated by language design, syntax, semantics and program analysis/verification.
- Implemented several experimental programming languages.
- Experienced with byte-code interpreters, garbage collection, parsing and code generation.
- Designed a variety of programming language tools specifically for teaching purposes.
- Computer Vision and Rendering
- Familiar with a variety of feature point detection and tracking algorithms.
- Implemented several high level tracking algorithms with OpenCV.
- Interested in painterly rendering algorithms and systems that produce 'creative' output.
- Experienced with the implementation of augmented reality applications and their practical use.
- Developed tools for visualising large datasets and algorithmic behaviour.
- Computer Science Education and Teaching
- 2+ years experience as a teacher and a tutor.
- Enjoys teaching and helping people understand new concepts.
- Experienced with a variety of age groups from primary school through to university level.
- Game Design and Implementation
- Enjoys the creative challenges associated with creating fun and engaging games.
- Passionate about developing interesting game mechanics and artificial intelligence.
- Familiar with content generation and working in a diverse team environment.
- Efficient Algorithms and Problem Solving
- Interested in searching and sorting algorithms and their implementation on parallel hardware.
- Passionate about solving challenging problems and developing new algorithms.
- Familiar with using a profiler to analyse performance and optimise code.
Work
- Assurance IQ
- (2020-2024). Investigiated and mitigated performance and security issues across several business critical web applications. Built a team to manage similar concerns at scale across the company. Completed several internal audits and supported cross-team initiatives to improve code quality and identity management.
- RedBubble Ltd
- (2016-2017) Developed scalable Vulkan-based rendering technology for rendering product images deployed on AWS.
- GeoZone Ltd
- (2013-2020) Lead server-side developer in a startup developing popular mobile apps for tourists. Specialized in web application development, deployment, and scaling.
- Puteko Ltd
- (2012-2013) Lead developer in a startup focusing on enhancing children's colouring books with augmented reality. Children can enjoy colouring in pages and seeing the results animated in 3D. I developed the iPad prototype which uses modern computer vision tracking algorithms and provided entrepreneurial guidance.
- Game Mechanics Society
- (2012-) A society of local programmers and artists who collaborate on the design and development of games. I am the founding member and assist with the organisation of events.
- (2012) We created TileShift, a game that uses genetic algorithms to evolve levels in real-time for Ludum Dare 24. We ranked in the top 10% overall, and in the top 5% for innovation.
- Computer Science and Software Engineering, University of Canterbury
- (2012-2015) Participated in the start up of the Computer Science Club, a weekly event for middle school aged students to learn about computer science concepts. I helped develop the initial course structure, including the badge system and week-to-week social initiatives. I mentored students and provided support to other tutors.
- Takashi Ikegami Laboratory, University of Tokyo
- (2012) Gave a seminar on Mr Painting Robot, with a specific focus on how it relates to artificial life.
- MIME Group, National University of Singapore
- (2012) Developed an augmented reality navigation system which guides users through a series of waypoints as part of an interactive game. I implemented several visualisations and assisted with the associated evaluation and research.
- Computer Science and Software Engineering, University of Canterbury
- (2012) Teaching COSC121 and COSC122 Introduction to Computer Science as part of the STAR course specifically for talented high school students. I designed and marked all COSC122 assignments on algorithms using a modern unit test-based approach. I was the main tutor for COSC261 Fundamentals of Computer Science, implementing a variety of algorithms for teaching.
- (2013-) Continuing teaching COSC121 and COSC122.
- University of Canterbury Student Chapter, Association for Computing Machinery
- (2011) President of the local chapter. I am helping to recover the chapter after it was suspended during the Christchurch Earthquakes.
- HIT Lab NZ, University of Canterbury
- (2011) Primary iPhone developer, building augmented reality applications and middleware. I designed and developed a high level outdoor augmented reality framework which has since been used in several projects including DiscovAR and CityViewAR.
- Computer Science and Software Engineering, University of Canterbury
- (2011) Computer science tutor, taught and developed teaching material covering a wide variety of topics in COSC261: Foundations of Computer Science and COSC329: Algorithms and Artificial Intelligence. I proposed and managed the COSC329 Sudoku Competition which challenged students to write efficient algorithms.
- Orion Transfer Ltd
- (2009-) Website programming and development, including online advertising, sales, competitions and content management.
- St Margaret's College
- (2008-2009) Technician, improving network infrastructure and day to day operations. I implemented real-time load monitoring for all desktop computers and used this information to assist with software and hardware deployment. I designed and implemented policies to reduce stress in a busy office, including a ticketing system to keep track of important jobs. I assisted with the development and management of the school website as well as a system for tracking potential enrolments during open-day.
- Unlimited Paenga Tawhiti
- (2006-2008) Technician, responsible for all computers and related infrastructure. I improved utilisation of computer resources by centralising administrative tasks. I developed and implemented policy for the student laptop program, from advertising through to deployment. I provided professional support to all students and staff covering existing technology and advising/deploying new technology where appropriate.
- ISB Global
- (2004-2006) Working as a programmer designing and developing a consultant placement system using Ruby on Rails.
References
(2024) Grant Davis - Senior Software Engineer, Assurance IQ
From my perspective, Samuel's deep thoughtfulness set him apart as an exceptional manager and Principal Engineer, during the 2.5 years that he was my manager at AssuranceIQ.
As a manager, this strength came through in his profound care for the wellbeing and goals of each person he managed. To anyone who has met Samuel, it's clear that this is far more than a practised skill, but a foundational part of who he is as a person. This influence manifested in an exceptional degree of cognitive safety within the team, amplifying our effectiveness and morale.
As a Principal Engineer, Samuel's deep thoughtfulness was frequently exemplified in his ability to distil core themes in problems or solutions to which he was exposed. This often resulted in very stable design choices even amidst rapidly developing requirements.
I wholeheartedly endorse Samuel as a phenomenal engineer, and an invaluable asset to whatever company is lucky enough to have him.
(2018) Jimmy Secretan - CTO, Roadtrippers
Samuel is a rare engineer who can think problems through from the big overall need down to the tiny code details. "Good enough" simply isn't good enough for Samuel and he'll create whole new frameworks if that's what he needs to do to make a robust, efficient and stellar application. He is a one man technology arsenal. His passion for the problems he is solving comes through in everything he does.
(2016) Matthew Panetta - Software Engineer, Redbubble
I stumbled across Samuel's Github profile while trying to solve a 3D rendering problem and asked if he'd be interesting in working on it. Samuel understood exactly what we were trying to do a came up with a technically brilliant solution. He has been a pleasure to work and his work is of the highest quality.
(2016) Adam Hutchinson - CEO, GeoZone
Samuel is a passionate engineer who brings a new dimension and energy to problem solving. As a small but nimble team, we had a number of areas we needed to proficient in. Samuel's versatility meant that as a team we could punch above our weight.
(2013) Dr. Tadao Takoka - Professor, University of Canterbury
I am pleased to recommend Mr. Samuel Williams for possible employment by your company. I have known him for more than six years through my teaching for his Bachelors and Masters degrees of computer science at our department.
He showed a good understanding of my materials in algorithm teaching. He took three papers on algorithms for stage 1, stage 2 and Masters level from me. The first two are designed for fundamental algorithms and the stage 4 one was devoted for computational complexity. He achieved A+, A- and A+ for those papers. Apart from algorithms, he is particularly strong in graphics and programming languages.
While he was doing Masters study, he helped me as a teaching assistant. For the stage 3 algorithm course, I designed an assignment in which students are required to implement a program for solving a Sudoku puzzle. I declared that I will mark the assignments by the speed of the program presented. Samuel himself made one to challenge students. We even gave awards to top students. Although Samuel's one was the fastest, many students followed him. He was a great leader and mentor for students.
We are good friends. We do things together not only in computer science. We go to see movies, we do cherry admiring parties, etc. He enjoys his life and he is a forward looking person. When his car was stolen, he did not lament too much and recovered from the ordeal quickly. He is polite and listens to others first before he expresses his opinion. He will show a great power in a team environment.