Skip to content
View nfrankel's full-sized avatar

Highlights

  • Pro

Organizations

@formations @ajavageek

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.09 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

Augmenting the client with Vue.js (2024-09-22)

In my previous post, I laid the ground to build upon; now is the time to start 'for real'. I heard a lot of Vue.js. Additionally, a friend who transitioned from developer to manager told me good things about Vue, which further piqued my interest. I decided to have a look at it: it will be the first 'lightweight' JavaScript framework I’ll study - from the point of view of a newbie, which I am. Laying out the work I explained WebJars and Thymeleaf in the last post. Here’s the setu[…​]

Server-Side Rendering with Spring Boot (2024-09-15)

Understanding the shared steps in the project setup is crucial before delving into the specifics of each client-augmenting technology. My requirements from the last post where quite straightforward: I’ll assume the viewpoint of a backend developerNo front-end build step: no TypeScript, no minification, etc.All dependencies are managed from the backend app, i.e., Maven It’s important to note that the technology I’ll be detailing, except Vaadin, follows a similar approach. V[…​]

AJAX and SSR technologies (2024-09-08)

In this focused series, I want to learn about Vue.js and AJAX by implementing a small todo application with each. A short history of AJAX and SSRServer-Side Rendering with Spring BootAugmenting the client with Vue.js[…​]

🗣️ Upcoming talks

Practical introduction to OpenTelemetry tracing @ Dev Talks

Tracking a request’s flow across different components in distributed systems is essential. With the rise of microservices, their importance has risen to critical levels. Some proprietary tools for tracking have been used already: Jaeger and Zipkin naturally come to mind. Observability is built on three pillars: logging, metrics, and tracing. OpenTelemetry is a joint effort to bring an open standard to them. Jaeger and Zipkin joined the effort so that they are now OpenTelemetry compatible. In this talk, I’ll describe the above in more detail and showcase a (simple) use case to demo how you could benefit from OpenTelemetry in your distributed architecture.

Practical introduction to OpenTelemetry tracing @ DevOps Stage

Tracking a request’s flow across different components in distributed systems is essential. With the rise of microservices, their importance has risen to critical levels. Some proprietary tools for tracking have been used already: Jaeger and Zipkin naturally come to mind. Observability is built on three pillars: logging, metrics, and tracing. OpenTelemetry is a joint effort to bring an open standard to them. Jaeger and Zipkin joined the effort so that they are now OpenTelemetry compatible. In this talk, I’ll describe the above in more detail and showcase a (simple) use case to demo how you could benefit from OpenTelemetry in your distributed architecture.

Make Your Security Policy Auditable @ JavaCro

All mature tech stacks nowadays offer infrastructure-related capabilities, either a standard lib or in 3rd-party libraries, e.g., rate-limiting and authorization. While it’s great to have such features, it’s impossible to audit them easily. You’d need to be familiar with the stack and dive deep into the code. This approach just doesn’t scale, A well-designed system keeps the right feature at the right place. In this talk, I’ll go through all steps toward making your system more easily auditable. I’ll use the authorization of a security policy as an example and start from a regular Spring Boot project with Spring Security. I’ll then move step-by-step, introducing the Open Policy Agent (OPA) and the Apache APISIX API Gateway. The end result will have moved all authorization details buried in the code in a readable accessible place.

🎥 Latest video recording

Latest video recording
Evolving your APIs, a step-by-step approach - DevConf.CZ 2024

Pinned Loading

  1. kaadin kaadin Public

    Kotlin DSL for Vaadin

    Kotlin 45 12

  2. slf4k slf4k Public

    Kotlin 9 3