When we met Larry Bank at Maker Faire Rome 2025, we knew immediately that he was someone our community needed to hear from. Bank is what you might call a “perpetual optimist and inventor” – someone who not only sees problems but convinces people he can solve them, then does exactly that.

His specialty? Code optimization. But Bank’s contributions to the open-source community go far beyond making software run faster. He’s spent years creating libraries, tools, and solutions that make difficult things simpler – especially for makers working with Arduino boards and other microcontrollers. His philosophy is refreshingly straightforward: “There’s no value in hoarding knowledge. It’s best just to share it.

We sat down with Bank to talk about his approach to code, his love for the Arduino ecosystem, and why efficiency still matters in a world of increasingly powerful hardware.

The secret power of code optimization

You’ve been called “the performance whisperer.” What originally drew you to optimizing code at such a deep level?

I started my computing journey on a 0.95MHz 6809 with 4K of RAM. This extremely constrained environment taught me early on to be very careful about how I use computer resources. What really set me on my path was when I visited a Radio Shack and saw fast video games running on computers that I thought were slow. I had just started to learn BASIC programming. What blew my 13-year-old mind was that if you were clever and wrote your program in machine language instead of BASIC, it would unlock tremendous speed. Even as computers got much faster over the years, it has become part of my DNA to make the best use of the machine’s abilities and learn the machine code needed to unlock maximum speed.

How does your experience writing efficient code relate to what you create for Arduino?

Today’s microcontrollers are a lot like the early computers from 45+ years ago. What’s different is that writing efficient code for MCUs now means better battery life and potentially doing the same job on a less expensive part. My open-source efforts are often focused on bringing functions and features to MCUs that people assume can’t be done. I try to leverage my experience to create unique solutions that are easy to use and delight – or surprise – people.

Check out Bank’s Multi-Invaders Game Emulator demo, running on an ATSAMD51, for proof that clever optimization unlocks possibilities people don’t expect!

Will efficiency still matter in 2026 and beyond? What role do you think efficiency plays in today’s world of increasingly powerful hardware?

Excellent question! For many years, people were taught that if your computer is not fast enough, don’t worry – next year’s model will be twice as fast. This created a terrible default behavior for software developers and vendors. Now that we’re hitting the physical limits of silicon and Moore’s law is no longer able to continuously deliver faster machines, writing efficient – and parallelized – software will be increasingly more valuable.

Many developers start at the high level. What do you think they miss by not understanding what’s happening “on the bare metal?”

It’s not fair to expect everyone to learn every detail about how computers and digital logic work in order to develop software, especially when getting started with programming. However, the other extreme – treating the computer like a black box – leads to inefficient code and wasted resources. I think there can be a balance where computer science courses teach enough details of how computers work to avoid common performance mistakes. For self-taught programmers who use a high-level language, inserting a few useful facts about how their software is actually running would be a good addition to any tutorials or beginner courses. One thing that would benefit high-level programmers is to understand the cost of their choices – that different operations take different amounts of effort to execute. Small changes to their code can yield significant time and energy savings.

Want to see optimization in action? Bank wrote a step-by-step guide to code optimization using Arduino as an example. It’s a masterclass in simplification.

Tell us about your work as a software optimization consultant.

There’s an initial challenge in acquiring new clients because they either don’t believe that I can help them or have an emotional attachment to their code that prevents them from even letting me try. Once I get through the initial resistance, I usually run their code through a profiler – Apple’s Xcode is my favorite – and see where the trouble spots are. Software development requires balancing a ton of trivia and assumptions in your head to be able to see the big picture, and oftentimes, the assumptions are wrong. My first task when I look at new code is to test every assumption. I’ll often find significant savings when I correct or remove code that was written based on a wrong assumption.

Next comes an examination of the data. Often the algorithm will be written to treat all of the data as if it’s complex when the majority of it might be empty or non-changing. A rewrite to take advantage of the true statistics of the data can yield significant savings. Finally, I come to the cleanup stage. This is where I’ll pick through every line of time-critical code and look for more efficient ways of writing it. If the client allows and there is benefit, I’ll make use of target-specific instructions such as SIMD. It usually doesn’t take very much of my time to get significant speed-ups at each stage. It’s not unusual for me to get a 10× speed improvement when I’m done.

Testing the limits, then overcoming them

Your work often combines sensors and displays. Why do you find that pairing so interesting?

I grew up in an information vacuum before the internet existed. Digital displays and sensors were expensive, prized components only accessible to big companies with big budgets. It’s still amazing to me how these components have become so easy to acquire and at such low prices. I think displaying sensor information is extremely valuable in our daily lives. Having these components in the hands of makers like me allows for some amazing ideas to emerge. Specific sensors such as CO? and humidity are valuable in every home to prevent mold growth and freshen the air as needed. Being able to create your own precision instruments with your own software is truly magical.

Can you share an example of a project where optimizing your display code made a huge difference?

Display code optimization is usually a usability issue first – people don’t appreciate seeing pixels being drawn; they want to not notice the technology and just see the information. A specific example is optimizing my OneBitDisplay library for those inexpensive I2C OLED displays. These displays are considered “slow” because they’re connected with a slow interface. Most people assume that they’re not capable of fast updates because they’ve only seen them update slowly and with a lot of flickering.

I experimented with them and wrote code that efficiently sends only the necessary information. I also tested their limits and found that they can handle much higher speeds than the interface normally supports. The end result was being able to play smooth, full-speed animated GIF sequences and allow people to display their normal data faster and with less flicker.

Watch what optimized display code looks like in action: in this video, Bank demonstrates smooth animations even on hardware most people assume is too slow.

How do you approach writing code that’s both efficient and readable for others in the open-source community?

There are several levels of code optimization – algorithm, code choices, and then using target-specific instructions like SIMD. My open-source code is mostly written to be efficient at the first two levels and remain readable. Starting many years ago I also got into the habit of adding a comment to nearly every line of my code to ensure that I and others could understand it. Efficient code isn’t mutually exclusive from readable code. When taken to the extreme, optimized code can become less understandable, but that’s usually not what I share as FOSS. My main aim for the open-source code I share is that it’s portable, efficient, and readable.

The future-proof value of open-source

What motivates you to share your code so openly, and what do you hope people take from it?

During my lifetime, software and computer knowledge has evolved from being extremely rare and valuable to becoming essentially free. There was a time when I was able to sell software to individuals and companies for high prices and made a good living at it. I held on to my trade secrets and accumulated experience to develop and sell new software. The devaluation of software and the simultaneous emergence of a community of people freely sharing code and knowledge has turned this idea on its head.

I see the FOSS community as a democratizing force that empowers people. I want other people to benefit from what I’ve learned and written. My open-source projects have longevity and gain value over time, as opposed to the proprietary software I’ve written for large companies that have ended up in the wastebin. Software is frustrating, and embedded software is an order of magnitude more frustrating. I get a lot of satisfaction from seeing my FOSS projects save people time and frustration.

How do you see open-source collaboration evolving – in the embedded and maker communities and beyond?

I can’t predict where things are going, but I do see two great needs that have not been filled – discoverability is very poor and financial support for open-source authors is insufficient. People tend to find my work by accident because they don’t even know how to search for it. I think there is risk in large for-profit companies managing a major hub for open source and imposing their influence on the FOSS community. Ultimately, I think Arduino’s Library Manager is a great model for other FOSS communities to emulate – it allows for easy discovery and utilization of a vast collection of open-source code and leaves the door open to explore and collaborate.

What attracted you to the Arduino ecosystem?

Arduino – both hardware and software – created multiple positive feedback loops which greatly reduced the difficulty of working with embedded devices. The open-source aspect allowed everyone to participate and contribute to the ecosystem. Young and old were given a painless onramp to a very exclusive world. The homogenization of embedded software through a common API and development system is something that’s particularly valuable to me – it allows me to develop software for a diverse set of devices from different vendors that all share common code.

For example, writing and testing my display and sensor libraries across wildly different hardware is much more productive because of the Arduino IDE. It’s also taught me to consider the wider collection of devices that it might run on. Things like endianness and unaligned memory accesses are some of the many considerations I bake into all of my code.

Did you attend Maker Faire Rome 2025? Bank created an electronic badge project specifically for attendees there – check it out and make your own for the next edition

What are some of the challenges and benefits of sharing open-source code?

Open source for me has been mostly a hobby I did with my personal time. Depending on the ups and downs in my professional and personal life, I didn’t always have much time to dedicate to it. Starting last year, I applied for and was approved to receive a few tax-free grants from NLnet’s NGI-Zero fund. The Netherlands and the EU are sponsoring FOSS projects because they see the value of supporting work that benefits everyone and has become critical infrastructure in our daily lives.

I’ve also recently found new clients who use some of my FOSS libraries in their products and pay me to enhance them. This is the most satisfying type of work for me – professional work which helps a client and helps the FOSS community at the same time. I also receive some monthly donations through GitHub’s sponsor program. It’s not a lot of money, but having this income is another way to help support my continuous efforts to expand and improve my FOSS work.

Which of your FOSS projects are you most proud of?

A few years ago, I would have said my imaging codecs – JPEG, PNG, TIFF G4 – but over the last couple of years I’ve been focused more on making difficult things simpler. Specifically, I think my work with e-paper can have the most profound impact on reducing frustration and bringing new ideas to the field. I’m currently working on something that should be really exciting for people wanting to use e-reader displays in their own projects.

What kind of project or breakthrough do you still dream of building – or helping others build?

I like to work on projects which use my unique experience to reduce waste. I’ve been able to work on a few projects which allowed companies to avoid buying more servers and use less energy on the servers they had. I wish more companies with server farms would allow me to help them save energy because I think a larger and larger portion of the world’s energy is being used to run inefficient software.

Keep up with (and give back to) Bank! 

Bank’s work embodies what we love most about the maker and open-source communities: the belief that sharing knowledge makes everyone stronger, that constraints breed creativity, and that accessible tools can empower anyone to build something remarkable.

Visit his GitHub profile to discover his full collection of optimized libraries for displays, sensors, imaging, and more. And if Bank’s philosophy resonates with you – or if his libraries have saved you time and frustration – consider sponsoring his work on GitHub. Supporting open-source developers like Bank helps ensure that the tools and knowledge we all benefit from continue to grow and evolve.

The post Meet Larry Bank: the performance whisperer making code faster and open source better appeared first on Arduino Blog.

Read more here: https://blog.arduino.cc/2026/01/15/meet-larry-bank-the-performance-whisperer-making-code-faster-and-open-source-better/