Dr James Uther
james.uther at gmail | 2024/10/06
The 1-powerpoint-slide version from work:
James is a senior engineering lead in our Digital practice where he specializes in leading solutions to the most complex technical challenges. With over 25 years of technical and leadership experience across industries, technologies, and cultures, he is able to offer valuable insights to clients.
"Technology is changing so fast and the part of my job I enjoy the most is tackling complex problems for clients. Sometimes optimizing the software can improve performance by 1000 percent, or other times we help businesses enable scale through a cloud migration, or improve performance through culture and process insights. Above all, we help our clients to find the best path that is right for them."
James has worked across a broad range of projects. To help clients work more efficiently and innovatively, he often encourages clients to think beyond the technology itself. For example, he recently helped an insurer improve their data engineering culture, so their business teams could collaborate better with their data scientists, which resulted in significant performance improvements within their financial software projects.
“It's easy to fall into technology cargo cults and misapply technical and organizational trends. It takes the experience gained by using a wide variety of tools in many disparate situations to be able to quickly identify how best to use the resources you have for your project”
James arrived in the UK from Australia many years ago, via a detour for a few years in Finland. He can often be found wandering the hills of some random wilderness, or helping his son with redstone machines in Minecraft. He holds a PhD in Computer Science from the University of Sydney.
Key Skills
Software development, strategy, architecture & management. Ability to influence and coordinate across expertise boundaries. Development methods, including scrum/agile. Coding. UI & visualisation design. Product prototyping and iteration. Team leadership. A variety of programming languages ranging from object-oriented to functional, and proven ability to rapidly become productive in new technologies. Recently used languages include Python, Java, Scala, Clojure, C++, TypeScript, JavaScript, Rust, F# and C#, and they have been used in a range of environments. I have contributed to and initiated open source projects. Also lots of infrastructure and DevOps (Kubernetes, Terraform, etc.)
Work History
Senior Lead Engineer
Oliver Wyman | London, UK | Dec 2016 - now.
LShift (see below) was acquired by Oliver Wyman to form the core of their technology delivery capability. Since then I've been involved in various projects, mostly in the financial space.
- Working to integrate sustainability as an architectural and operational consideration in all software development. Currently evangelising cloud carbon trackers and right-sized infrastructure.
- Architect, Lead on Factiva Sentiment Signals. Developed the system to cheaply score all english news every day. (Databricks, pytorch, etc). FSS uses some recent ML (embeddings, transformers etc), so I’ve become conversant with these, and also have some experience of the challenges of training larger models.
- Instigated and led a move to databricks/spark as a new platform for data science within OW. Built/ran the platform. Trained data scientists and engineers. Optimised pipelines/models from the data science team to run at 1000x lower cost & CO2. Added MLOps and other shiny things. The platform was foundational for FSS.
- A leader of the evolution of the internal cloud practices from VMs to serverless. Lots of terraform on AWS, some on Azure. Kubernetes in various forms. Communication and consensus building around solutions and best practices.
- Contributed to a common kubernetes platform used by both internal and client projects. Terraform, helm, AWS, Azure, letsencrypt, DevOps, etc.
- Helped a large insurer find a better pattern of work between Data Engineering and Data Science teams. Developed principles and practices to ease interaction, along with code examples. Spark/Databricks.
- Optimised a financial process implemented in python, improving processing time by 800%.
- Helped a bank keep to time by reducing a loan book calculation from 24 hours to 30 minues by distributing a previously monolithic process. python/docker/rabbitmq
- Initial architecture and walking skeleton for a tool to help industries identify actions to mitigate carbon emissions.
- Tech Lead/Architect etc on Enki - "A data sharing technology with security in its DNA."
Senior Developer
LShift | London, UK | Nov 2012 ‐ Dec 2016
LShift is a hi-tech software development company. It is small but, we like to think, close to perfectly formed. Our company is home to some of the best developers in the UK - not only in our opinion, but in the opinion of a number of international blue chip companies who use our development and research skills.
LShift has been successfully delivering agile projects for blue-chip clients for more than 10 years. They are technology agnostic, preferring to use whatever best delivers business benefit. Senior Developer is the only developer/architect role in the company, and is unique in that enormous freedom is given to own and direct all aspects of a project (from technical to client relationship), along with enormous responsibility to deliver. Given the exceptional caliber of the staff, this works well.
I joined LShift for the chance to work with such talent (and humour). I did learn a lot of technology, but the most important secret I learned was how to reliably deliver complex projects. Technologies used so far: Clojure, Go, BigQuery, Scala, JavaScript, TypeScript, C#, F#, Docker & Kubernetes, AWS, GCE/GKE, Hadoop, Spark, ElasticSearch, and many more.
Projects have ranged from data-mining open NHS data to building highly secure messaging platforms. A few of note:
- A visualisation of pharmaceuticals prescriptions in the UK based on open NHS data
- A ‘Facebook for rich people’, for a startup that didn’t launch. The platform itself was deeply secure and interesting in it’s use of event sourcing and encryption (and so much clojure!)
- A walk-on role in BBC Weather Watchers
- Various dashboards and tools in D3.js for retail analysis.
- Lead of a project to extract a City Guild system from an AS400. Planned and delivered a transition to a more manageable platform (largely written in F#)
Trained in DSDM agile project management.
Research Fellow
University of Sydney | Sydney, Australia | May 2012 ‐ Nov 2012
The Computer Human Adapted Interaction lab conducts research in ubiquitous computing. "We are exploring the technical means by which people can make sense of what it means to 'own' and visualise their data in a digital world. We currently focus on e-learning and health."
Within this role, I was lead architect and developer on a Personis, a research system offering methods for users to intelligently manage and use their online profile and support Lifelong User Modelling. I also led and taught a group of computing science students from one of the most prestigious universities in Australia.
Senior Architect
Nokia | Farnborough, UK | Feb 2005 ‐ Sep 2011
Various roles, including software Team Lead and Software Architect for a number of phone programs, architect for new product ideas, global architect for an important new software technology within a key development team, and member of a global team responsible for a number of high-priority architecture and technology initiatives.
- Initiated and delivered a successful cultural change effort in the company to start removing 'technical debt' from a very large C++ asset.
- Helped ensure a global software organisation became fully fluent in Qt, a C++ development framework; training programs, architecture changes, roadmaps, and coding practises. The organisation consistently delivered high quality designs & software in Qt. Also worked with the Qt team to ensure roadmap alignment.
- Responsible for starting the development of a number of handset features. For example, the FM transmitter involved building consensus between marketing, UI, hardware, system and application teams to deliver the feature within the product schedule. I was also involved in graphics architectures, novel input devices, context awareness and some other smaller projects.
- Responsible for the architecture of product specific software for some product programs. Released products include N80 and N78. Contributions were also made to the N79, E72 and E6 among others.
- Software Lead for the N80. This involved work allocation, mentoring, reviews for permanent team members, etc. Also responsible for driving software maturity within the product.
Senior Consultant / Team Leader
Mobile Innovation | London, UK | Feb 2003 ‐ Feb 2005
Mobile Innovation was a leading user interface designer, product integrator and software developer for smartphones.
- Built and led a team that developed the C++ UI framework for Nokia's first touch phones, the Series 90 and Series 80 Symbian platforms. I was instrumental in convincing Nokia to subcontract further work to us.
- Designed and developed UI unit testing and continuous integration systems for Symbian development (in Java and Python). Built an innovative parallel build system for Symbian that reduced builds from 24h to 4h.
- Line management of a team
- Acted as a 'bridge' between the engineering and UI teams to keep communication working.
Senior Software Engineer/Researcher
F-Secure Corporation | Helsinki, Finland | Feb 2000 ‐ Feb 2003
F-Secure is a publicly listed software company based in Helsinki. Founding member of the Usability Working Group & research project manager leading usability related research, future UI design and best practise usability within the company. (Java, JavaScript, XUL)
Java Competence Team Manager. Built and maintained the company's Java expertise. Architect and Team Leader for a large-scale server implemented in Java.
Software Development Manager
University of Sydney | Sydney, Australia | May 1994 ‐ Sep 1999
I was the initial hire in this project, and responsible for the planning and implementation of the entire technology stack, from specifying, installing and running servers (web, sybase, mail, news, proxy, smb, etc) to developing the custom software that made the course possible.
Architect and lead developer of a large-scale, world-leading e-learning platform within the Faculty of Medicine using both client and server side Internet technologies. (Java, Python, JavaScript, SQL)
I invented AJAX in 2000, except it was Java instead of JavaScript (1px applet) and LiveConnect to talk to the JavaScript side 😂. Turns out marketing and having a cool name for the thing is useful!
Education
School of life
- Certified in the Dynamic Systems Development Method (DSDM) Agile Project Management methodology
- Certified Sun Systems Administrator (1995)
University of Sydney
-
PhD Computer Science - 1993 ‐ 2001
Thesis: On the Visualisation of Large User Models in Web Based Systems link
Activities and Societies: Academic Board. Postgraduate Student Representative Association. Director, Student Housing Cooperative (STUCCO. history) -
MSc Computer Science - 1991 ‐ 1993
Research in architecture and user interfaces for educational software. -
BSc (Hons) Computer Science, Mathematics - 1988 ‐ 1991
Hons thesis in Digital Signal Processing
Prehistoric
- Gold Duke of Edinburgh award. Also became an assessor.
- School captain of 'Adventure Training' (risk sports), and 'O.P. Wood Science Librarian'
Publications
Blog/sundry
- 2022-12-24 ‐ Technical notes on this web site.
- 2022-05-15 ‐ Three Issues that sum up Technical Debt
- 2020-10-02 ‐ In defense of breaking changes
- 2020-08-27 ‐ NFRs considered harmful
- 2020-01-06 ‐ Gardencam
- 2019-10-28 ‐ UK Parking Areas
- 2018-03-08 ‐ QCon: Improving Life in Smaller, Heterogeneous Projects
- 2017-13-31 ‐ Photo Library Wrangling
- 2016-03-29 ‐ Application Patterns for the Outernet
- 2015-10-30 ‐ The Life Changing Magic of Refactoring
- 2015-08-11 ‐ GA4GH
- 2015-07-09 ‐ Signal Strength
- 2015-06-30 ‐ On being almost there
- 2015-04-30 ‐ Swarming Spark
- 2015-03-31 ‐ Let's run science, part iota!
- 2015-02-27 ‐ Lunchtime Hack - Lets Run Science!
- 2014-12-24 ‐ Playing with open NHS data, and a rant
- 2014-11-28 ‐ Codemesh Day 1
- 2014-10-31 ‐ LocationHistory visualisation part 3
- 2014-09-30 ‐ Lunchtime Hack: Decoding LocationHistory
- 2014-08-28 ‐ Lunchtime hack: My cycling routes
- 2013-12-31 ‐ Getting Sieves Right
- 2013-07-31 ‐ Expanding Reducers
Academic work (see also Google Scholar)
Uther M, Zipitria I, Uther J & Singh P. (2005). Mobile Adaptive CALL (MAC): A case-study in developing a mobile learning application for speech/audio language training. IEEE Workshop on Mobile Technologies in Education, November 2005. link
Uther M, Singh P, Zipitria I & Uther J. MAC: An adaptive, perception-based speech remediation s/w for mobile devices. Artificial Intelligence in Education (AIED) workshop on language tutoring, July 2005.
Uther M, Singht P & Uther J. Mobile adaptive CALL (MAC): an adaptive s/w for computer assisted language learning. IEEE Pervasive services in computing, July 2005. link
Apted T, Kay J, Lum A & Uther J. (2003). Visualisation of ontological inferences for user control of personal web agents. E Banissi, K Borner, C Chen, G Clapworthy, C Maple, A Lobben, C Moore, J Roberts, A Ursyn, Jian Zhang (eds), Proceedings of IV03-VSW, Information Visualisation - Semantic Web Visualisation, IEEE, 2003, 306 -- 311. IEEE link
Uther M, Uther J & Kay J. (2003). Visualising cohort comparisons with VlUM, Proceedings of CSCL, Computer Supported Co-operative Learning Conference, 114--116.
Lum A, Kay J, Apted T & Uther J. (2003). Visualisation of learning ontologies. Poster at AIED03.
Uther J & Kay J. (2003). VlUM, a Web-Based Visualion of Large User Models. Proceedings User Modeling, in Brusilovsky, P, A Corbett and F de Rosis (eds), Springer-Verlag in Lecture Notes in Artificial Intelligence (LNAI/LNCS), 198--202.
Uther J. (2001). On the visualisation of large user models in web based systems. Ph.D. Thesis. link
Uther J & Kay J. (1999). Describing and Viewing Large User Models. In D. Hawking and R. Wilkinson, Editors. Australian Document Computing Symposium, 1999, p 81-84.
Uther J & Kay J. (1998). Compact Display of Large User Models. Paper presented at the Sydney Visual Information Processing Meeting. link
Uther J & Taylor V. (1998). Fusing Dynamic and Static Web Sites. Paper presented at the Sydney Document Computing Symposium. link
Carlile S, Barnet S, Sefton A, Uther J. (1998). Medical problem based learning supported by intranet technology: a natural student centred approach. International Journal of Medical Informatics 50 (1998) 225-233. link
Uther, J (1997). It's Just A Web Site. Presentation given at the WWW7 Satellite Conference on Medical Education, University of Sydney.
Carlile S, Sefton A, Uther J, Barnet S. (1997). MedEdNet: A Faculty wide intranet to support an integrated medical curriculum at the University of Sydney. AusWeb97.
Uther, J (1994). A Useable Boxer Editor. Proceedings of OZCHI 94. p 53-58.
Uther, J (1993). An Editor for the BOXER Computing Environment. Proceedings of the Fifth International Conference on Human-Computer Interaction. Abridged Proceedings 1993 v.3 p.210
Uther, J (1993). A Boxer Architecture and Interface. Masters thesis.