Skip to content
View nfrankel's full-sized avatar

Highlights

  • Pro

Organizations

@formations @ajavageek
Block or Report

Block or report nfrankel

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
nfrankel/README.adoc
ℹ️

last updated 2024.04 This profile is automatically generated.

If you’re interested in knowing more, please check the code.

Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Also double as a trainer and triples as a book author.

✍️ Most recent blog posts

The try block in Rust (2024-04-21)

I wrote previously about libs for error management in Rust. This week, I want to write about the try block, an experimental feature. The limit of the ? operator Please check the above article for a complete refresher on error management in general and the ? operator in particular. In short, ? allows to hook into a function call that returns a Result: If the Result contains a value, it continues normallyIf it contains an error, it short-circuits and returns the Result to the calling function.[…​]

Dissolving Design Patterns In Design Elements (2024-04-14)

The book Design Patterns: Elements of Reusable Object-Oriented Software was one of the texts that changed how we think about software design. This book came out in 1994 through the efforts of Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, later remembered as Gang Of Four (GoF) GoF Design Patterns: The Origin, the Impact The book’s importance lies in its effort to review the software production done up at that moment, giving more structure to the concept of Software Design[…​]

Implementing the Idempotency-Key specification on Apache APISIX (2024-04-07)

Last week, I wrote an analysis of the IETF Idempotency-Key specification. The specification aims to avoid duplicated requests. In short, the idea is for the client to send a unique key along with the request: If the server doesn’t know the key, it proceeds as usual and then stores the responseIf the server knows the key, it short-circuits any further processing and immediately returns the stored response This post shows how to implement it with Apache APISIX. Overview Before starting […​]

🗣️ Upcoming talks

Make Your Security Policy Auditable @ Lambda Conf

Nowadays, I believe that everybody realizes the importance of preventing undue access to one’s applications. Many conceptual models are available, RBAC, ABAC, you name it. Likewise, all popular stacks have frameworks and libraries to help developers implement your chose policy access. If your organization only has a handful of apps, that’s all fine and dandy, but problems appear at scale. One such problem is to keep under control access configuration across dozens or even hundreds of apps. It requires regular, if not continuous auditing: it’s impossible to achieve when the configuration is code, even worse if it’s a compiled language. Open Policy Agent aims to externalize such configuration in a text format with a specified semantics. In this presentation, I’ll explain OPA in more details and demo how to migrate from regular Spring Boot application to an OPA-based approach in different steps.

On-the-Fly Image Resizing, an Approach to Web Asset Management @ Worldwide Software Architecture Summit

One of the web architect’s main challenges is to tackle image optimization. The age-old approach is to deliberately create size variants of a single image to deliver the best user experience. It was a time-consuming task, which can be marginally improved with Machine Learning. In this session, I’ll offer a new approach that should both avoid this process and cut storage costs. Join me for practical insights into reducing expenses without compromising web performance.

Evolving your APIs, a step-by-step approach @ JCON

When you publish your first HTTP API, you’re more focused on short-term issues than planning for the future. However, chances are you’ll be successful, and you’ll hit the wall. How do you evolve your API without breaking the contract with your existing users? In this talk, I’ll first show you some tips and tricks to achieve that: moving your endpoints, deprecating them, monitoring who’s using them, and letting users know about the new endpoints. The talk is demo-based, and I’ll use the Apache APISIX project for it.

🎥 Latest video recording

Latest video recording
Evolving your APIs, a step-by-step approache - FOSDEM 2024

Pinned

  1. kaadin kaadin Public

    Kotlin DSL for Vaadin

    Kotlin 45 12

  2. slf4k slf4k Public

    Kotlin 9 3