Venkat Subramaniam
where else to find them
website:http://www.agiledeveloper.com
github:venkats
bluesky:venkats.bsky.social
x:venkat_s
linkedin:vsubramaniam
what they talk about
all 34 in the filters
where they keep going back
- Devnexus5 editions2020–2026
- Great International Developer Summit3 editions2023–2025
- Devoxx Belgium3 editions2017–2024
all 45 in the filters
on a stage with
- Josh Long2×
- Adam Bienonce
- Angie Jonesonce
all 32 in the filters
who talks about the same things
- Kevlin Henney95 talks
- Anjana Vakil25 talks
- Noel Welsh16 talks
- Mario Fusco50 talks
- Scott Wlaschin25 talks
- Bodil Stokke10 talks
| title | conference | date |
|---|---|---|
| Test Driving Code with the Help of AI | NDC Copenhagen 2026 | 2026-06-01 |
Demonstrates using AI (VS Code/Copilot style) to write TDD for Conway’s Game of Life: starts with a canary test, has AI generate tests and methods like… | ||
| AI: It AI-n't What You Think! | NDC Copenhagen 2026 | 2026-06-01 |
Argues that modern AI is accelerated inference not true intelligence, trained on human code so it often invents facts and produces arbitrarily inconsistent… | ||
| Intros his workshop | Devnexus 2026 | 2026-03-04 |
Workshop covers Java 9–25 features with concrete examples and actionable guidance on applying recent language changes to real codebases. It claims to show… | ||
| It AI-n't What You Think! | Porto Tech Hub Conference 2025 | 2025-10-07 |
Claims that large models are accelerated inference not reasoning are backed by examples: asking for a Java stream to count occurrences produces usable code… | ||
| OOP vs. DOP: Which One to Choose? | IntelliJ IDEA Conf 2025 | 2025-06-03 |
Argues that for a concrete order/trade example the Java features replace clumsy visitor/factory plumbing: a processTrade that audits buys when quantity > 5,000… | ||
| Day 2 | IntelliJ IDEA Conf 2025 | 2025-06-03 |
Live demos focus on what actually changed and whether it worked: Juny agent edits code and runs tests (cloned Spring PetClinic, added logging, extracted… | ||
| Identifying and fixing Issues in Code using AI based tools | Devoxx UK 2025 | 2025-05-07 |
Compares ChatGPT and Claude on real snippets and a 100-person exercise and concludes AI reliably finds bugs faster than humans, but still produces drafty code… | ||
| Patterns for Software Architecture | Great International Developer Summit 2025 | 2025-04-22 |
Argues that architecture choices follow from prioritized system characteristics not from fashionable patterns; instructs teams to list and rank requirements… | ||
| It AI n't What You Think! | Great International Developer Summit 2025 | 2025-04-22 |
Argues that modern AI behaves as AI as accelerated inference: it repeatedly proposes plausible solutions but hallucinates facts and is arbitrarily inconsistent… | ||
| Structured Concurrency in Java | Great International Developer Summit 2025 | 2025-04-22 |
Java 21’s structured concurrency is shown as a concrete replacement for raw executors using StructuredTaskScope and virtual threads, with a live demo that… | ||
| Scaling Servers with Virtual Threads | Great International Developer Summit 2025 | 2025-04-22 |
Shows Java 21 virtual threads as a practical replacement for OS threads: swapping new Thread(...) for Thread.startVirtualThread and running IO-bound tasks… | ||
| Designing Microservices | Great International Developer Summit 2025 | 2025-04-22 |
Claims that most teams claiming microservices aren’t really doing them (about 80%), and that micro means a domain/bounded context not small code. Recommends… | ||
| Communication Patterns for Distributed Architectures | Great International Developer Summit 2025 | 2025-04-22 |
Explains why the unit of deployment—not the label—drives distributed design, compares concrete integration options like function calls vs database as… | ||
| OOP vs Data Oriented Programming: Which One to Choose? | Great International Developer Summit 2025 | 2025-04-22 |
Compares an order-processor example where extensibility comes from an interface (PaymentMethod using dependency inversion) to a third-party trade example where… | ||
| Rediscovering JavaScript | Great International Developer Summit 2025 | 2025-04-22 |
Covers concrete, actionable JavaScript updates: replace var with use const as much as possible and let, enforce via eslint; replace arguments with rest and… | ||
| Know Your Java? | Great International Developer Summit 2025 | 2025-04-22 |
Shows concrete failure modes and fixes: changing a List to a Collection makes remove(1) call remove(int) vs remove(Object) so the element at index 1 gets… | ||
| The Three Amigos: Intermixing Pattern Matching, Records, and Sealed Classes | Great International Developer Summit 2025 | 2025-04-22 |
Java now gives records give ctor/getters/toString/equals/hashCode so simple data holders are immutable and final; sealed permits clause enforces closed… | ||
| Will AI Replace My Job? A Town Hall for Software Developers | Great International Developer Summit 2025 | 2025-04-22 |
Panel conversation about immediate, practical impacts: coders use LLM assistants for day-to-day coding, infra-as-code, and incident debugging; consultants… | ||
| Continuous Integration: I Invite You to Break My Build | Great International Developer Summit 2025 | 2025-04-22 |
Argues that breaking the build is acceptable when the team fixes it quickly and uses CI to surface environment mismatches; recommends okay to break the build… | ||
| Learning from Failures | Great International Developer Summit 2025 | 2025-04-22 |
A team spends about $20M over ten years and never ships the product because customers call it too complex and it only does a small part of what they need, so… | ||
| Qualities of a Highly Effective Manager | Great International Developer Summit 2025 | 2025-04-22 |
Lists 12 practices for technical managers, including be adaptive not reactive (favor continuous adaptive planning over fixed dates), use carrots instead of… | ||
| Testing for Accessibility | Great International Developer Summit 2025 | 2025-04-22 |
Measures a site with several free checkers and finds roughly 110 violations and scores in the low 40–60% range, then uses Sally (s a11y) to highlight exact… | ||
| Tools and Techniques for Infrastructure as Code | Great International Developer Summit 2025 | 2025-04-22 |
Argues that fully automating the last 5% of deployments yields real agility and fewer outages, showing a practical pipeline where a git commit → CI/CD runs… | ||
| Tools and Techniques for Infrastructure as Code | Great International Developer Summit 2025 | 2025-04-22 |
Automates deploys so a git commit runs tests, provisions cloud resources and pushes a new release without human steps; replaces a seven‑year weekly spreadsheet… | ||
| Keynote: It AI-n't What You Think! | Voxxed Days Bucharest 2025 | 2025-03-27 |
Argues AI often hallucinates—calling factual profiles wrong—and labels that behavior alternative information, not truth; shows a chatbot-caused Air Canada… | ||
| Know Your Java? | JavaOne 2025 | 2025-03-18 |
Concrete surprises and concrete fixes: using remove(int) vs remove(Object) with Integer autoboxing makes the same call remove by index on a List but remove by… | ||
| #OOP vs Data Oriented Programming Which One to Choose | Devnexus 2025 | 2025-03-04 |
Argues that choose OOP when you need runtime polymorphism and extensibility but prefer data-oriented code when third‑party types force parallel hierarchies… | ||
| Refactoring to Modernize Java Applications | Devnexus 2025 | 2025-03-04 |
Demonstrates automated refactors that upgrade a Maven project from Java 11 to Java 21, changing pom.xml and source—examples replace list.get(0)/get(size-1)… | ||
| Asynchronous Programming in Java using Virtual Threads | JDD 2024 | 2024-10-22 |
Java now runs blocking IO without blocking OS threads by using virtual threads mount and unmount as continuations ride courier threads, so a blocked task… | ||
| Decision Dials | GOTO Chicago 2024 | 2024-10-21 |
Argues that choices are decision dials not binary flips, and shows concrete tradeoffs: a builder reworks foundation to deliver zero entry access and the house… | ||
| Design Patterns Revisited in Modern Java | Devoxx Belgium 2024 | 2024-10-07 |
Explains concrete rules and code examples: Optional prevents many NPEs when used as a return type but adds overhead and causes confusion as fields or… | ||
| Cruising Along with Java: Benefiting from the Modern Features | Devoxx Belgium 2024 | 2024-10-07 |
Covers concrete Java changes since 10: local variable type inference (var) and its pitfalls (don’t use with diamond, needs context), text blocks for multi-line… | ||
| Designing with Sealed Classes | Great International Developer Summit 2024 | 2024-04-23 |
Sealed classes in modern Java close inheritance for plugin-style APIs so core abstractions can be public but not extensible, replacing brittle hacks like… | ||
| Observing Applications in Production | Great International Developer Summit 2024 | 2024-04-23 |
Claim: production systems need end-to-end observability, not just topic-level monitoring. Concrete practices: use cloud vendor tooling (AWS/GCP/Azure) or New… | ||
| Hypeless TypeScript | Great International Developer Summit 2024 | 2024-04-23 |
Argues TypeScript is a JavaScript superset that compiles with tsc to plain JS so static checks exist at compile time but runtime behavior remains JavaScript… | ||
| Multithreading vs Asynchronous Programming: The Architectural Shift | Great International Developer Summit 2024 | 2024-04-23 |
Compares Java threading evolution with concrete failures and fixes: a two-thread pool example shows a pool-induced deadlock when parent tasks spawn children… | ||
| Hire Like a Boss | Great International Developer Summit 2024 | 2024-04-23 |
Claims hiring mistakes cost 30% of an employee’s first‑year earnings and that 75% of companies report hiring the wrong person; examples include single openings… | ||
| Worth a Million Arguments | Great International Developer Summit 2024 | 2024-04-23 |
Argues that arguments lose to evidence and shows concrete examples: a 2,000-train purchase discovers 1,300 stations are too small; the Vasa warship and Tacoma… | ||
| Habits of a Highly Effective Technical Manager | Great International Developer Summit 2024 | 2024-04-23 |
Lists 12 concrete manager practices and gives real examples: bring a coach to teach TDD (borrow Raju), reassign people to fit strengths (developer moved and… | ||
| Creating Asynchronous Applications with Virtual Threads | Great International Developer Summit 2024 | 2024-04-23 |
Recent Java releases add virtual threads and the claim is concrete: by swapping Executors.newFixedThreadPool to Executors.newVirtualThreadPerTaskExecutor code… | ||
| Twelve Essential Practices to be Effective in Continuous Delivery | Great International Developer Summit 2024 | 2024-04-23 |
Claims twelve specific habits for reliable CI/CD and argues CI is a prerequisite and CD the goal, lists concrete steps: write automated unit/acceptance tests… | ||
| Design Trade-offs in Modern Architectures | Great International Developer Summit 2024 | 2024-04-23 |
Argues that architecture is choosing tradeoffs not following mantras: you cannot get unlimited performance and scale cheaply, CAP means pick two, and most… | ||
| Design Principles for Better FrontEnd Code | Great International Developer Summit 2024 | 2024-04-23 |
Argues frontend JavaScript becomes maintainable by applying concrete rules: use === not ==, avoid var and prefer const/let with "use strict" or modules, and… | ||
| Pattern Matching in Java | Great International Developer Summit 2024 | 2024-04-23 |
Shows how Java replaces long conditional chains — recalled 169 if-else — with actual value-returning switch expression syntax using arrows and yield, and… | ||
| Effecting Change—The Art of Leading Teams | Voxxed Days Bucharest 2024 | 2024-03-27 |
Convincing others starts with rigor: verify the problem before selling a fix, generate three solutions and list tradeoffs, and test changes on a small team… | ||
| Let’s Set the Records Straight | IntelliJ IDEA Conf 2024 | 2024-03-06 |
Records generate constructor, getters, equals, hashCode and toString automatically, are final by default and make components final (so avoid mutable members… | ||
| Code Review, you said? | Voxxed Days Ticino 2024 | 2024-01-19 |
Argues code review is feedback-driven engineering and gives concrete rules: never review uncompiled code or code without passing automated tests, review the… | ||
| Don't Walk Away From Complexity, Run | Voxxed Days Thessaloniki 2023 | 2023-11-24 |
Argues that software has inherent complexity from the domain but teams add costly accidental complexity through choices like too many moving parts… | ||
| The Future of Programming | Build Stuff 2023 | 2023-11-15 |
Argues that real change is generational — core ideas like objects (introduced 1967) take 23 years to mainstream — so focus on paradigms not languages… | ||
| Keynote: Where Promises Fall Short | Voxxed Days Iași 2023 | 2023-05-23 |
Java’s CompletableFuture behaves like JavaScript promises and works fine for happy paths but becomes awkward for error handling: the demo shows a simple… | ||
| Decision Dials | Great International Developer Summit 2023 | 2023-04-25 |
Argues that choices are decision dials not switches, so tune trade-offs (reuse vs coupling, performance vs maintainability) instead of picking absolutes; shows… | ||
| Understanding Performance of React Applications | Great International Developer Summit 2023 | 2023-04-25 |
A demo React grid initially takes 5–8 seconds initial load because a huge virtual DOM is pushed into an empty real DOM; profiling with window.performance… | ||
| Code Review, you said? | Great International Developer Summit 2023 | 2023-04-25 |
Argues code review is one feedback loop among many and gives concrete rules: run linters and CI and compile before asking for review, review tests first (use… | ||
| Let's Have Some Fun with Game Of Life:& Learn to Think Functionally Along the Way | Great International Developer Summit 2023 | 2023-04-25 |
Implements Conway’s Game of Life in Java with immutable transformations and live coding, not mutation. Uses an enum for cell states, Java records for… | ||
| Imperative vs Functional: Which one to Choose? | Great International Developer Summit 2023 | 2023-04-25 |
Argues that imperative code (familiar, verbose, mutable) adds accidental complexity while functional code is declarative + higher-order functions and reads… | ||
| Designing Applications with Functional Programming Constructs | Great International Developer Summit 2023 | 2023-04-25 |
Compares imperative loops to Java Streams and shows the same result can cost eight operations vs 24 naive operations unless streams fuse intermediate ops and… | ||
| Transforming Data using the Functional API | Great International Developer Summit 2023 | 2023-04-25 |
Shows concrete Java code patterns using the Streams and Collectors APIs (Java 8+), demonstrating filter map reduce as the core model and using Collectors like… | ||
| Test Driving React Applications | Great International Developer Summit 2023 | 2023-04-25 |
Shows step‑by‑step TDD for React using Create React App, Jest and React Testing Library: starts with a canary test to verify environment, uses jest.mock to… | ||
| Developing React Applications with Functional Components | Great International Developer Summit 2023 | 2023-04-25 |
Advocates moving from class-based components to functional components and shows a small React app that renders an App → Greet hierarchy, passes props, and… | ||
| How to Approach Refactoring | Great International Developer Summit 2023 | 2023-04-25 |
Refactoring is a disciplined, incremental process that improves internal design without changing behavior: write tests or other feedback first, rely on… | ||
| Programming with ServiceLoader API in Java | Great International Developer Summit 2023 | 2023-04-25 |
Demonstrates using ServiceLoader with Java modules to build a plugin-style soft‑drink example (softdrink interface, Coke/DietCoke and Pepsi/DietPepsi modules… | ||
| Improving the Quality of JavaScript Code | Great International Developer Summit 2023 | 2023-04-25 |
Shows how to fix real JavaScript mistakes: prefer use const/let not var, prefer === over ==, enable "use strict" to catch undeclared variables, copy objects… | ||
| Creating and Maintaining Architectural Fitness Functions | Great International Developer Summit 2023 | 2023-04-25 |
Defines architectural fitness functions as measurable rules (a formula) that show how close code is to an architectural goal and gives concrete examples: treat… | ||
| The Amazing Features of Modern Java | Great International Developer Summit 2023 | 2023-04-25 |
Recent Java work moves from Java 8 and modules to a six‑month release train, letting big items finish (type inference took ~5 years, Project Loom ~12 years)… | ||
| Know Your Java | Devnexus 2023 | 2023-04-04 |
Shows precise gotchas and fixes: passing an int to a variable-typed list can call List.remove(int) vs Collection.remove(Object) so elements vanish… | ||
| Asynchronous Programming in Java using Virtual Threads | Devnexus 2023 | 2023-04-04 |
Demonstrates that Project Loom virtual threads (Java 19 preview / Java 20 work) let the JVM create Thread.startVirtualThread instead of OS threads, turning… | ||
| Decision Dials | Jfokus 2023 | 2023-02-06 |
Argues decisions are decision dials not binary switches, and designing software is constant trade‑off optimization: choose where to be robust versus malleable… | ||
| JavaScript: The Fascinating Parts | Jfokus 2023 | 2023-02-06 |
Argues modern JavaScript is now respectable and gives concrete rules: use const over var (and prefer let to var), run eslint to enforce it, replace arguments… | ||
| Reasons and Ways to Improve Code Quality | DevTernity 2022 | 2022-12-08 |
Claims code quality equals lower effort to understand and that slowing down to refactor speeds future work; argues for minimal design, avoiding premature… | ||
| Design Patterns in the Light of Lambda Expressions | J-Fall 2022 | 2022-11-03 |
Shows how common OO patterns shrink into a few lambdas: the Strategy becomes a simple method taking a Predicate (example totals 1–10 → 55 then filters… | ||
| Keynote ‘The Art of Simplicity’ | J-Fall 2022 | 2022-11-03 |
Argues that simplicity needs courage and asks engineers to ask “what can we remove” rather than add clutter, claims functional style removes accidental… | ||
| Slowdown to Grain Speed: Technical practices that take time but save time. | Devoxx Ukraine 2022: Secure our Future | 2022-09-02 |
Argues that intentionally slowing to do design, refactoring and tests saves time later, backed by concrete practices: run short prototypes (spike to learn)… | ||
| The New ExcitementAround Good Old Java | Devnexus 2022 | 2022-04-12 |
Java now ships every six months (release cadence starts March 2018) while individual features take years to design — Java 8’s lambdas plus streams (lazy… | ||
| What's Looming in Java The Why and What of Project Loom | Devnexus 2022 | 2022-04-12 |
Project Loom adds JVM-managed virtual threads built on continuations that detach task state from OS threads so blocking IO no longer pins a thread. A demo… | ||
| A Dozen Cool Things We Can Do With Popular JVM Languages | Devoxx Ukraine 2021 | 2021-11-19 |
Twelve concrete tricks across Java, Scala, Groovy and Kotlin: quick file reads via Groovy .text and Kotlin readText or Scala Source.fromFile.mkString… | ||
| Qualities of a Highly Effective Architect | Developers Summit 2021 | 2021-02-18 |
Lists 12 qualities that make an effective architect and names concrete practices: mentor, criticize ideas not people, guide don’t dictate, practice collective… | ||
| Javascript Promises vs async-await | Developers Summit 2021 | 2021-02-18 |
Explains concrete tradeoffs: a promise has three states (pending/resolved/rejected), chaining then/catch creates a functional pipeline (example: 2 → 4 → +1 →… | ||
| Javascript The Fascinating Parts | Developers Summit 2021 | 2021-02-18 |
Argues to stop using var and use const where possible, falling back to let; shows const prevents rebinding but not internal mutation (objects remain mutable)… | ||
| Learning To Code In Functional Style with Java | Developers Summit 2021 | 2021-02-18 |
Argues functional style cuts accidental complexity by using filter map reduce and Java streams; shows concrete code (list 1–10, filter evens, map x2, reduce… | ||
| A Few New Cool Features in Modern Java | Developers Summit 2021 | 2021-02-18 |
Covers Java 12–16 concrete features with live code: smart casting (pattern matching for instanceof) that gives a typed temporary variable and scope rules… | ||
| Designing in the World of Microservices | Developers Summit 2021 | 2021-02-18 |
Focuses on design rules that matter for microservices: favor autonomy of development and isolated deployment, partition by domain not tech, and enforce… | ||
| Towards an Evolutionary Architecture | AzConf 2020 | 2020-11-24 |
Argues that architecture must evolve across early sprints rather than be fixed up front, recommending vertical slices and prioritizing backlog items by… | ||
| Types and Type Safety in Kotlin | Developer Summit 2020 | 2020-11-21 |
Kotlin’s type system: local variables and single-expression function returns use type inference so you rarely annotate, while function parameters still require… | ||
| The Magic of Delegates in Kotlin | Developer Summit 2020 | 2020-11-21 |
Kotlin provides first‑class delegation so the compiler generates routing methods at bytecode level, avoiding manual duplication and fixing DRY and OCP… | ||
| Principles for Building MicroServices | Developer Summit 2020 | 2020-11-21 |
Microservices require domain-driven, cohesive bounded contexts and true autonomy: each service runs as a standalone process with process-level isolation, owns… | ||
| Java Functional Programming Idioms | Developer Summit 2020 | 2020-11-21 |
Shows concrete Java 8 idioms: express a prime check with IntStream.range + noneMatch instead of loops, build readable pipelines by aligning stream operations… | ||
| Exploring Collectors: A Powerful Utility Class in the JDK | Developer Summit 2020 | 2020-11-21 |
Shows how java.util.stream.Collectors solves reduce problems: use toList and toUnmodifiableList to avoid shared-mutable accumulation, use… | ||
| Continuations and Fibers: The New Frontier for Java | Developer Summit 2020 | 2020-11-21 |
Project Loom introduces continuations as a data structure (Continuation/ContinuationScope and yield/run) and virtual threads/fibers so IO waits suspend a task… | ||
| Architectural Principles and Practices to Build MicroServices | Developer Summit 2020 | 2020-11-21 |
Argues that microservices succeed only with domain partitioning, isolation and automation: every service owns its data so never share a database, services run… | ||
| A Dozen Cool Things We Can Do With Popular JVM Languages | Developer Summit 2020 | 2020-11-21 |
Shows a dozen concrete tricks across Java, Scala, Groovy and Kotlin: file reads using Groovy’s new File(...).text and Kotlin’s readText, running shells with… | ||
| Technical Practices that Take Time but Save Time | Developer Summit 2020 | 2020-11-21 |
Argues that slowing down for practices like red green refactor, continuous refactoring, disciplined code reviews and automating deployments pays off with… | ||
| Effecting Change—The Art Of Leading Teams | Developer Summit 2020 | 2020-11-21 |
Change succeeds when you first convince yourself first, then listen to diagnose the real problem, solicit at least three solutions, prototype and amplify what… | ||
| 14 Identifying And Removing Impediments | Developer Summit 2020 | 2020-11-21 |
Shows concrete fixes and measured practices: a $3 tether solved a recurring projector-remote problem; use ask why five times to reach root causes; prefer… | ||
| MetaProgramming with JavaScript | Developer Summit 2020 | 2020-11-21 |
Modern JavaScript provides a practical metaprogramming API: Reflect and Proxy are used to inject and synthesize behavior. Examples show using… | ||
| JavaScript Essentials for Programming with React | Developer Summit 2020 | 2020-11-21 |
Modern JavaScript for React emphasizes concrete edits: replace var with use const not var and prefer let only when mutation is necessary; drop arguments and… | ||
| Developing Mobile Friendly Web Apps with React and Bootstrap | Developer Summit 2020 | 2020-11-21 |
Builds a small React app (created with create-react-app) that displays three sample books from a simulated service, adds Bootstrap via the Bootstrap CDN for… | ||
| Towards an Evolutionary Architecture | Developer Summit 2020 | 2020-11-21 |
Argues for evolving architecture by doing enough upfront design then iterating: prioritize stories by business value and architectural impact, build… | ||
| Qualities of a Highly Effective Architect | Developer Summit 2020 | 2020-11-21 |
Lists 12 qualities that define effective architects and argues the most important behaviors are concrete: mentor rather than scold, criticize ideas not people… | ||
| Core Software Design Principles for Programmers | Developer Summit 2020 | 2020-11-21 |
Argues concrete rules: every piece of knowledge needs a single authoritative source (DRY) — illustrates a shipping app that duplicated validation in Java and… | ||
| Spearheading The Future of Programming | Build Stuff 2020 | 2020-11-11 |
Argues that mainstream languages will adopt continuations within five years and that continuations plus coroutines make web and microservice conversations… | ||
| The New Excitement Around the Good Old Java | J-Fall Virtual 2020 | 2020-11-03 |
Java moves to a six‑month release cadence and that accelerates real features: switch as expression and instanceof pattern matching remove boilerplate and… | ||
| This Ain’t Your Parents’ Java | Oracle Developer Live—Java 2020 | 2020-09-15 |
Java moves from slow evolution to six‑month releases while keeping quality; recent specifics: modules shrink the runtime (the old rt.jar 68 MB), Java 8’s… | ||
| Let's Get Lazy | JetBrains Technology Day for Java 2020 | 2020-07-10 |
Explains lazy evaluation with live demos in GHCi/Haskell, Scala lazy vals and Java lambdas using Supplier, shows Streams fuse intermediate ops and defer work… | ||
| JetBrains Technology Day for Java 2020 | JetBrains Technology Day for Java 2020 | 2020-07-10 |
Nine short sessions show concrete tools, code and outcomes: Bootiful Testing demos Spring Boot test slices and Mockito based examples; Good Old Stream API… | ||
| Opening Keynote | DevDotNext 2020 Digital Edition | 2020-03-24 |
Welcome message explaining the in-person conference becomes a digital edition, organized on short notice and preserved as a series of timed talks: 60-minute… | ||
| Exploring Collectors | Devnexus 2020 | 2020-02-19 |
Argument: the JDK Collectors API replaces error-prone manual mutation with composable, parallel-safe reductions. Live-coded specifics show filter/map/reduce… | ||
| Improving Quality of JavaScript Code | JS Fest 2019 Autumn | 2019-11-08 |
Claims that long functions kill agility backed by an example of a 7000-line function and a concrete refactor path: rewrite imperative loops into functional… | ||
| Qualities of a Highly Effective Architect Keynote | Devoxx Belgium 2019 | 2019-11-04 |
Lists twelve concrete habits: mentor others, prefer prototype beats argument (one-hour prototype example changes decisions), evaluate trade-offs with the… | ||
| Exploring Collectors | Devoxx Belgium 2019 | 2019-11-04 |
Walks through concrete Java Stream code showing where Collectors replace error-prone reduce/for-each patterns, demonstrates Collectors utility class methods… | ||
| Java 9 and Beyond | Devoxx Belgium 2019 | 2019-11-04 |
Covers concrete Java 9–13 changes: module system replaces bloated rt.jar (~68MB) with modules vs classpath and enforces requires/exports so apps fail fast… | ||
| Automated Testing JavaScript | All Things Open 2019 | 2019-10-13 |
Explains exactly how to get fast, reliable feedback: set up mocha and chai with karma to run tests in a browser, use a tiny canary test to verify tooling, stub… | ||
| Spearheading the future of programming | Riga Dev Days 2019 | 2019-05-29 |
Argues that paradigm shifts take decades and makes a concrete case that Java is about to move from heavy multithreading to asynchronous programming, showing… | ||
| From Functional to Reactive Programming | Riga Dev Days 2019 | 2019-05-29 |
Argues that reactive = functional++: start with functional composition and lazy streams, then add back pressure and three channels (data, error, complete)… | ||
| A Dozen Cool Things You can Do with JVM Languages | Voxxed Days CERN 2019 | 2019-05-01 |
Shows 12 concrete JVM-language tricks with code hits: file reading via Groovy's file.text and Scala's Source.mkString, running processes with Groovy… | ||
| Don't Walk Away From Complexity, Run | Voxxed Days Zurich 2019 | 2019-03-19 |
Argues that complexity blocks agility and gives concrete failures and fixes: XML-heavy configuration forces XML configuration took 4–6 months to set up for… | ||
| Refactor your language knowledge portfolio - we are what we can code in | Voxxed Days Cluj-Napoca 2018 | 2018-11-21 |
Argues that learning a very different language reshapes thinking and shows concrete JVM-era benefits: bridge languages (Kotlin, Scala, Groovy, Clojure, JRuby)… | ||
| Java Functional Programming Idioms | J-Fall 2018 | 2018-11-08 |
Focuses on concrete habits: prefer a collection pipeline (Stream → filter people older than 25 → map to name → map to uppercase → collect(joining(",")))… | ||
| Kotlin for Java Programmers | J-Fall 2018 | 2018-11-08 |
Shows Kotlin running on multiple targets and demos actual commands like kotlinc -jvm and running .kts scripts to compile and script quickly; walks through… | ||
| Twelve Ways to Make Code Suck Less | Oracle Code One 2018 | 2018-10-22 |
Twelve concrete practices: schedule regular time to pay technical debt, prefer high cohesion and remove or relocate coupling, replace custom code with JDK… | ||
| Reactive APIs of Java 9 | Oracle Code One 2018 | 2018-10-22 |
Venkat Subramaniam, President, Agile Developer, Inc.
Reactive programming is no longer an esoteric idea. Many libraries and tools have started providing… | ||
| Benefiting from Java 9 Improvements | Oracle Code One 2018 | 2018-10-22 |
Java 9 deprecates finalize and adds private methods in interfaces to factor shared code, makes try-with-resources accept outside (effectively final) variables… | ||
| Type Inference: Friend or Foe | Oracle Code One 2018 | 2018-10-22 |
Survey of Java type inference traces its history from generics and the diamond operator to Java 10’s introduction of var for local variables and Java 11’s… | ||
| CompletableFuture: The Promises of Java | Oracle Code One 2018 | 2018-10-22 |
CompletableFuture is Java’s equivalent of JavaScript promises: use supplyAsync to run compute in the ForkJoin common pool or pass a custom pool, chain… | ||
| Exploring Coroutines in Kotlin | KotlinConf 2018 | 2018-10-03 |
Kotlin coroutines let code stay sequential while becoming nonblocking: the demo turns blocking URL reads for a localhost stock-price service (port 8085) into… | ||
| Creating Internal DSLs in Kotlin | KotlinConf 2018 | 2018-10-03 |
Kotlin features shown as concrete tools for internal DSLs: infix functions, extension functions, and lambdas with receiver (implicit receiver) are used to drop… | ||
| Refactoring to Functional Style | NDC Oslo 2018 | 2018-06-11 |
Starts from noisy imperative examples and shows concrete refactorings in Java using the Java Stream API: replace mutable loops with filter map noneMatch to… | ||
| JavaScript the Cute Parts | NDC Oslo 2018 | 2018-06-11 |
Concrete ES6 fixes and patterns that change day-to-day code: avoid var and use const over var (const prevents mutation errors shown), prefer let only when you… | ||
| Twelve Ways to Make Code Suck Less | Voxxed Days Minsk 2018 | 2018-05-26 |
Gives twelve concrete prescriptions: schedule time to pay technical debt, track cohesion (cyclomatic complexity example rising from 5 to 864), and eliminate… | ||
| Let's Get Lazy: Exploring the Real Power of Streams | Voxxed Days Minsk 2018 | 2018-05-26 |
Efficiency is achieved not just by running things faster, but by avoiding things that shouldn't be done in the first place. Lazy evaluations are a core feature… | ||
| Parallel and Asynchronous Programming with Streams and CompletableFuture | Devoxx Belgium 2017 | 2017-11-06 |
Covers concrete rules and demos for Java 8 parallel streams and CompletableFuture: shows a real timing example (17s → 4s with parallel), warns that adding more… | ||
| Exploring Java 9: The Key Parts | Devoxx Belgium 2017 | 2017-11-06 |
Covers concrete Java 9 changes and how to use them: private and static helpers inside interfaces, try‑with‑resources accepting existing variables… | ||
| Kotlin for Java Programmers | Devoxx Belgium 2017 | 2017-11-06 |
Kotlin compiles to Java bytecode and JavaScript and is shown running via the kotlinc compiler REPL and as scripts (.kts scripts). Examples demonstrate type… | ||
| Keynote: The Art of Simplicity | NDC TechTown 2017 | 2017-10-17 |
Argues that most complexity is accidental and shows concrete fixes: replaces an error-prone imperative name loop with filter/map/join in JavaScript… | ||
| Concurrent Programming in C++ | NDC TechTown 2017 | 2017-10-17 |
C++11 concurrency features get practical coverage: std::thread plus hardware_concurrency=8 (hyperthreading can mislead), join vs detach (detached threads… | ||
| Refactoring to Functional Style | Oracle OpenWorld 2017 | 2017-10-01 |
Argues that refactoring Java imperative code to Java 8 functional style produces clearer, shorter code and enables lazy infinite streams and better reuse… | ||
| Designing Functional Programs | Oracle OpenWorld 2017 | 2017-10-01 |
Argues that the payoff from functional style is function composition and lazy evaluation, not just immutability or lambdas, and shows Java 8’s limits: checked… | ||
| The Power and Perils of Parallel Streams | Oracle OpenWorld 2017 | 2017-10-01 |
Explains when parallel streams actually help (many elements and heavy per-item work) and when they hurt (too few items, too many threads), shows that the… | ||
| Let’s Get Lazy: Explore the Real Power of Streams | Devoxx US 2017 | 2017-03-21 |
Demonstrates that laziness yields efficiency by avoiding unnecessary work, showing Haskell’s normal-order laziness, Scala’s lazy vals, and how Java achieves it… | ||
| Functional Programming with Java 8 | Devoxx US 2017 | 2017-03-21 |
Java 8 demonstrates concrete functional tools: lambda expressions (parameters + body, inferred return), single‑abstract‑method functional interfaces, method… | ||
| Reactive Programming in Java | Devoxx US 2017 | 2017-03-21 |
Shows reactive concepts by wiring a live stock feed example that emits values, handles errors, and lets clients unsubscribe when a target price is reached… | ||
| Welcome | Voxxed Days CERN 2017 | 2017-02-25 |
Event organizers recount how local teams rode trains and pooled ideas to launch Voxxed Days at CERN and confirm two parallel tracks plus a digital panel… | ||
| Reactive Programming in Java | Voxxed Days CERN 2017 | 2017-02-25 |
Argues reactive programming groups four needs — message-driven architecture, elasticity, responsiveness, resilience — and demonstrates a runnable Java RxJava… | ||
| Let’s Get Lazy—The Real Power of Functional Programming | NDC London 2017 | 2017-01-16 |
Demonstrates that lazy evaluation cancels unnecessary work: Haskell’s normal-order evaluation skips computing add when the result is never needed (shown via… | ||
| Get Reactive with RxJS | NDC London 2017 | 2017-01-16 |
Explains practical RxJS use with live demos: an observable that emits primes up to 10,000 (subscriber calls next, complete and error terminate the data… | ||
| Reactive Programming: creating highly responsive applications | JavaDay Kyiv 2015 | 2015-11-06 |
Venkat Subramaniam
Founder of Agile Developer, Inc.
JavaDay Kyiv (http://javaday.org.ua) - the community-driven conference for Java developers. Stay geeky! | ||
| Get Past the Syntax, the Real Scare's in the Semantics | JavaDay Kyiv 2015 | 2015-11-06 |
Argues that semantics beat syntax with concrete examples: Ruby’s polymorphic new and dynamic object fields, Clojure’s immutability model using doSync/ref… | ||
| Programming with Streams in Java 8 | JavaDay Kyiv 2015 | 2015-11-06 |
Programming with Streams in Java 8
Venkat Subramaniam
Founder of Agile Developer, Inc.
JavaDay Kyiv (http://javaday.org.ua) - the community-driven conference… | ||
| Functional Programming: Technical Reasons to Adapt | JavaDay Kyiv 2015 | 2015-11-06 |
Argues that immutability + pure functions make code easier to reason about, safer for concurrency, and enable optimizations like lazy evaluation, memoization… | ||
| Transforming Your C# Code to Functional Style | Great Indian Developer Summit 2015 | 2015-04-21 |
Shows concrete refactorings from imperative loops and classes to concise functional patterns: replaces index loops with LINQ Where/Select/ForEach, turns… | ||
| Let's Get Lazy | Great Indian Developer Summit 2015 | 2015-04-21 |
Argues that laziness — doing work only when needed — yields scalability gains and lower work counts: demonstrates Haskell normal order skips unnecessary calls… | ||
| Get Past the Syntax, the Real Scare's in the Semantics | Great Indian Developer Summit 2015 | 2015-04-21 |
Argues that the hard part is semantics not syntax and gives concrete examples: Ruby: class objects make new polymorphic and instances can gain fields at… | ||
| A Practical Introduction to AngularJS | Great Indian Developer Summit 2015 | 2015-04-21 |
Live-coding builds a small task manager: a Node.js + Express service that returns JSON and an AngularJS front end that uses ng-app with controller-as, $http… | ||
| If I had a Time Machine | Great Indian Developer Summit 2015 | 2015-04-21 |
Proposes using a time machine to undo concrete mistakes: stop creating Program Files with a space, reverse the forward slash vs backslash mess, ban modal… | ||
| The Power and Practicalities of Immutability | Great Indian Developer Summit 2015 | 2015-04-21 |
Argues that programming with immutability in F# and C# noticeably reduces bugs, enables safe concurrency and compiler optimizations, and makes testing trivial… | ||
| jQuery for Grails Developers | Great Indian Developer Summit 2015 | 2015-04-21 |
Builds a small Grails "tasks" app and shows concrete code: uses formRemote + jQuery to post a create, controller renders a JSON payload containing the… | ||
| Transforming Your Code to Java 8 | Great Indian Developer Summit 2015 | 2015-04-21 |
Shows concrete Java 8 rewrites: replace indexed Thread creation with lambdas and IntStream.range to remove mutable i and final hacks, find 100 primes with an… | ||
| Haskell for Java Programmers | Great Indian Developer Summit 2015 | 2015-04-21 |
Shows concrete Haskell features Java programmers can use: interactive REPL type queries to inspect inferred polymorphic types, concise currying and partial… | ||
| Programming with Streams in Java 8 | Great Indian Developer Summit 2015 | 2015-04-21 |
Shows how Java 8 Stream API transforms a List<Person> into results: using filter→map→collect to produce uppercase names of females over 18 (transcript example… | ||
| Patterns for Programming in JavaScript | Great Indian Developer Summit 2015 | 2015-04-21 |
Shows concrete patterns and gotchas: enable use strict to avoid accidental globals, prefer === over ==, and use closures to encapsulate private state rather… | ||
| Exploring TypeScript | Great Indian Developer Summit 2015 | 2015-04-21 |
TypeScript compiles to JavaScript and adds static typing with inference, a tsc option to noEmitOnError, and ambient declarations so browser globals or jQuery… | ||
| Asynchronous Programming on the .NET Platform | Great Indian Developer Summit 2015 | 2015-04-21 |
Speaker: Venkat Subramaniam
With multicore processors, the demand to create highly responsive applications has increased. Programming with threads can be an… | ||
| The Joy of Functional Programming | Functional Conf 2014 | 2014-10-09 |
Argues that functional programming gives concrete benefits: referential transparency and pure functions let compilers reorder work and run independent tasks… | ||
| Transforming your C# code to Functional Style | Functional Conf 2014 | 2014-10-09 |
Shows concrete C# rewrites: replace for/foreach and mutable accumulators with LINQ Where/Select and passing lambdas, turning imperative loops into internal… | ||
| Haskell for Everyday Programmers | Functional Conf 2014 | 2014-10-09 |
Shows Haskell’s concrete benefits: a REPL demo proves the compiler infers types so developers write fewer annotations while keeping static strong typing, lazy… | ||
| Java 8 Language Capabilities, What's in it for you? | SpringOne2GX 2014 | 2014-09-08 |
Covers concrete Java 8 changes: lambda expressions and method references replace anonymous inner classes for concise callbacks; new functional interfaces… | ||
| How To Approach Refactoring | Agile India 2012 | 2012-02-17 |
Argues that refactoring is essential for agility and gives concrete, repeatable practices: write tests before changing (unit, integration, performance)… | ||
| nothing matches | ||