Finite-State Machine

/ˈfaɪnɪt steɪt məˌʃiːn/

noun … “Model of computation with a limited number of states.”

Finite-State Machine (FSM) is an abstract computational model used to design sequential circuits or software systems. It consists of a finite set of states, a set of inputs that trigger transitions between states, and a set of outputs determined by its current state (and sometimes input). FSMs are widely used for modeling control logic, communication protocols, parsers, and embedded systems.

Design Patterns

/dɪˈzaɪn ˈpætərnz/

noun … “Proven templates for solving common software problems.”

Design Patterns are reusable solutions to recurring problems in software architecture and object-oriented design. They provide templates for structuring code to improve maintainability, scalability, and readability, without prescribing exact implementations. Patterns encapsulate best practices and lessons learned from experienced developers, allowing teams to communicate ideas efficiently using standardized terminology.

Key characteristics of Design Patterns include:

Functional Programming

/ˈfʌŋkʃənl ˈproʊɡræmɪŋ/

noun … “Writing code as evaluations of pure functions.”

Functional Programming is a programming paradigm where computation is expressed through the evaluation of functions, emphasizing immutability, first-class functions, and declarative code. Unlike OOP, which centers on objects and state, Functional Programming avoids shared mutable state and side effects, making reasoning about code, testing, and concurrency more predictable and robust.

Object-Oriented Programming

/ˌoʊˌoʊˈpiː/

noun … “Organizing code around objects and their interactions.”

OOP, short for Object-Oriented Programming, is a programming paradigm that structures software design around objects, which encapsulate data (attributes) and behavior (methods). Each object represents a real-world or conceptual entity and interacts with other objects through well-defined interfaces. OOP emphasizes modularity, code reuse, and abstraction, making complex systems easier to design, maintain, and extend.

Key principles of OOP include:

LookML

/lʊk-ɛm-ɛl/

n. “The language that teaches Looker how to see your data.”

LookML is a modeling language used in Looker to define relationships, metrics, and data transformations within a data warehouse. It allows analysts and developers to create reusable, structured definitions of datasets so that business users can explore data safely and consistently without writing raw SQL queries.