Adám Brudzewsky

Adám Gall Brudzewsky is a lifelong APL programmer, founder of the APL Orchard, and the creator of Extended Dyalog APL and APLcart. An employee of Dyalog Ltd., Brudzewsky has made several contributions to the Dyalog APL language in addition to his work on components of the interpreter written in APL such as user commands.

History
Brudzewsky was taught APL by his father, Henri Brudzewsky, and preferred it to mathematical notation as a student. He was hired by Dyalog Ltd. in May 2015, and worked closely with Dan Baronet. Brudzewsky quickly had an impact on the langauge, suggesting the Nest, or Enclose if Simple, primitive and later working to design Dyalog's array notation. Since creating it in 2018, Brudzewsky maintains Extended Dyalog APL, a cover over Dyalog APL which uses APL models to extend existing primitives and implement new ones. The extensions include both functionality taken from other APLs and new functionality, and are sometimes adopted by Dyalog or dzaima/APL. The Constant operator appeared first in Extended Dyalog, as did the versions of Atop and Over  later implemented by Dyalog (Brudzewsky's changes relative to Sharp APL were to exchange the glyphs, and remove the concept of close composition). dzaima/APL has adopted Extended Dyalog's Pair, Select , and Reverse Compose.

Activities
Brudzewsky is active Stack Exchange's Code golf site (as Adám), where he started the APL Orchard chat room in 2017, and where he often invites and welcomes newcomers, as well assisting existing users with technical and programming help. Through this, he was involved in Dyalog's hiring of interns Marinus Oosters, Will Robertson, and Kamila Szewczyk, as well as employees Nathan Rogers , Rodrigo Girão Serrão (who started as an intern) , and Karta Kooner.

Brudzewsky frequents BAA sessions and often presents at Dyalog webinars, user meetings, and user group meetings, where he usually leads at least one workshop, in addition to leading corporate workshops and presenting APL at schools and other venues. He occasionally broadcasts live programming sessions on Twitch, later to publish them on YouTube together with his other APL videos. He ran the APL Cultivations from 2017 to 2020, began as a recurring panellist on the Array Cast podcast and started the APL Campfire meetup in 2021. In 2022, he launched the APL Quest chat and video series in 2022 and the APL Notation As A Tool Of Thought podcast, later renamed to the APL Show.

Publications

 * "TAO Axioms" (with Jay Foad and Roger Hui).
 * APLcart, a searchable list of answers on "how-to" questions.
 * APL style guide to improve readability and maintainability.
 * Tips for using Dyalog APL.
 * Dyalog Blog: Enhanced Debugging with Function Keys
 * Dyalog Blog: Enhanced Debugging with Function Keys – Evaluate selection
 * APL Germany Journal: A Notation for APL Arrays
 * Vector Journal: A Vendor-Agnostic Logo for APL

Dyalog user meetings

 * Dyalog '15 D05: User Commands Update (with Dan Baronet)
 * Dyalog '15  D10: MiServer UI Controls (slides) (with Dan Baronet)
 * Dyalog '16 D04: Tools Group Update (with Brian Becker and Dan Baronet)
 * Dyalog '17 D11: Literal Notation for Arrays and Namespaces (slides)
 * Dyalog '17  D12: Try APL Online (slides) (with Brian Becker)
 * Dyalog '17  D16: User Command Developments (slides) (with Michael Baas)
 * Dyalog '18 D04: Array Notation Mk III (slides)
 * Dyalog '18  D12: Jupyter Notebooks (slides)
 * Dyalog '19 D05: Link (materials (zip file)) (with Morten Kromberg)
 * Dyalog '19  U14: APLcart: A Novel Approach to Finding Your Way in APL (slides (zip file))
 * Dyalog '20 D09: Array Notation RC1 (slides)
 * Dyalog '21 D06: Highlights of Dyalog v18.2 (slides)
 * Dyalog '22 D15: Filling the Core Language Gaps (slides)
 * Dyalog '23 D04: Setting and Getting Variable Values (slides)
 * Dyalog '23 D13: Giving Key a Vocabulary (slides)

Dyalog webinars

 * APL CodeGolf Autumn Tournament
 * Namespace-Directory Synchronisation (with Morten Kromberg)
 * Total Array Ordering (with Jay Foad)
 * Creating and managing your own User Commands
 * Jupyter Notebook support for Dyalog APL
 * Progressive set functions
 * Language Features of Dyalog version 18.0 in Depth (5 parts)
 * Error Handling (5 parts)
 * Computing Check Digits – Fast
 * User-Defined Operators

Array Cast episodes

 * Why We Like Array Languages
 * What Challenges Face the Array Languages?
 * What is an Array?
 * Henry Rich’s Deep Dive into J
 * Marshall Lochbaum and the BQN array language
 * Attila Vrabecz and the k group of programming languages
 * Tacit #3 (and other topics)
 * Eric Iverson Eric Iverson
 * Roger Hui (1953-2021)
 * Tacit #4 - the dyadic hook
 * Henry Rich presents J903
 * APL in industry
 * Andrew Sengul - The April APL Compiler
 * APL Seeds 2022
 * Vanessa McHale
 * Stevan Apter
 * Rank and Leading Axis Theory
 * Transpose
 * Looking Back at Our First Year
 * Jeremy Howard - Data Scientist
 * Control Structures in the Array Languages
 * Lib Gibson - IP Sharp’s ‘Zookeeper’
 * What Makes a Language an Array Programming Language?
 * Iversonian language or Array language?
 * Michal Wallace, k programmer and J video producer
 * John Earnest and Versions of k

Other talks

 * Live-programming: Load-on-Demand, Delayed status message, A new user command
 * BAA Webinar: Meet the new APL Wiki, aplcart.info turns 1
 * APL Germany: Array Notation RC1
 * Informational videos: Parsing content from text files using Dyalog APL's (companion code repository)