CityJS Athens 2025

CityJS, Athens, May 28-31 2025

Written By a Human Being

Summary

CityJS Athens 2025, held from May 28 to 31 at the Serafio Community Center, brought together JavaScript enthusiasts for two days of intensive workshops followed by a two-day conference. The event featured over 30 speakers and covered a wide array of topics, from modern testing practices to web performance optimization and AI integration.

It was my first time in Athens, Greece and I have to say that it's something I will remember - both with the experience from the conference and with the city vibes.

I got to meet Douglas Crockford - the father of JSON, got the change to talk to him and listen to his wise words.

Athens is a beautiful city - there are olive, orange, tangerine, lime and lemon trees everywhere, the food is fantastic and the people are so warm and welcoming. I will definitely come back!

Schedule

Conference Day 1 - May 30, 2025

09:45 Aris Markogiannakis - Opening

09:45 Aris Markogiannakis - Opening

The conference started with opening remarks from the organizer and the creator of the CityJS Conferences - Aris Markogiannakis - a Greek living in London. He is a Senior Frontend Developer and the creator of all CityJS Conferences in London and Athens. Fun fact - this year’s CityJS in Athens was the first one which took two days, all previous events were one-day events.

10:00 Jessica Rose | Mozilla - Biodiversity and Web Futures

Jessica is a developer relations strategy specialist and leader with extensive work in open source spaces. She has worked in developer relations since 2014.

Jessica is coming out of a role at Mozilla leading a large scale volunteer developer advocacy program. She is an established keynote speaker with an education background.

Jess currently focuses on helping teams building developer relations efforts extend their reach by offering experienced strategy and hiring support. She also founded the Open Code meetup series, an international series of weekly mixed level, language agnostic study sessions for programmers and aspiring programmers.

Jessica co-founded Trans*Code with the incomparable Naomi Ceder, resulting in a series of community building hackdays for the Trans* community, allies and well wishers that has stretched across 4 countries and 2 continents. She’s always interested in hearing about what else is out there. Even if an opportunity or project isn't a great fit for her, there's likely someone in her network who might be a great match.

10:00 Jessica Rose | Mozilla - Biodiversity and Web Futures

The web offered and offers us an incredible promise, a lush and tangled jungle of art, writing, businesses and weirdos growing in different directions, together. A space where you could build and grow something that was yours. But some of the trends we’re seeing today: the dominance of large closed platforms, ubiquitous data grabs and the torrents of empty AI content being sprayed across the web, feel like they’re clear-cutting the promise of the web.

Together, let’s explore some of the challenges facing the web today, alongside the small and large things we can do to push back against them. During this exploration, let’s also take time to push against our own expectations of the web we have today and marvel at the pockets of beautiful, powerful weirdness where the seeds of our shared hopes flourish today.

Her talk felt a bit nostalgic - she discussed the history of the web, how it was used and how it evolved. She showed some old, silly, fun-looking websites and talked about the concept of publishing on the web. Then she moved on to how the web evolved to be an AI-generated slop.

Link to her slides here.

10:35 Faris Aziz | Small PDF - Engineering Without a Safety Net: Where It Works and Where It Hurts

Faris is an experienced engineer, international conference speaker, and workshop instructor with a focus on React, Next.js, web architecture, and resilient system design. He has a strong interest in startups, having worked at early-stage companies in roles ranging from founding teams to scaling organizations from 1 to 100 people. His expertise includes engineering leadership, designing career ladders from scratch, and managing teams of over 10 engineers.

As a front-end subject matter expert, Faris has built systems used by millions of users. His work spans greenfield projects and long-running products. He has worked in industries including Connected TV, Fintech, SaaS, and Fitness, with companies such as Smallpdf, Fiit, Discovery, GCN, Eurosport, and Navro (formerly Paytrix).

Faris focuses on building user-centric, performant, and maintainable applications. He takes a particular interest in observability and monitoring, making systems easier to debug and improve. He shares his knowledge by organizing the Zurich.js meetup in Switzerland and speaking at international conferences on web development, engineering leadership, and scalable systems. In his spare time, Faris contributes to developer tools like Raycast and reflects on questions like why the build works on his machine but fails everywhere else.

10:35 Faris Aziz | Small PDF - Engineering Without a Safety Net: Where It Works and Where It Hurts

Testing, monitoring, observability. They’re rarely urgent, often skipped, and easy to dismiss when things are moving fast. But what’s the real cost of deferring them, and how much can you actually get away with?

This talk explored the tradeoffs of skipping traditional engineering practices in the name of speed, and what happens when you try to layer them in after a system has already scaled. It’s not about dogma or checklists, it’s about pragmatism, risk, and timing.

Faris highlighted the critical importance of testing in software development. He pointed out that many companies still neglect testing, which serves as a safety net. The talk emphasized the need for standardized approaches, the significance of metrics and continuous monitoring, and the challenges faced before implementing test automation. Key topics included feature flags, cyclomatic complexity, and the maintenance of test codebases.

Fun fact: Faris is a rubber duck fan and he also brought two ducks with him - one yellow and one red.

Link to his slides here.

11:30 Mesut Durukal | Indeed - Scaling Test Automation: Building Reusability for 10x Speed and Efficiency

Mesut Durukal brings over 15 years of expertise across Industrial Automation, IoT, SaaS/PaaS, Cloud Services, the Defense Industry, Autonomous Mobile Robots, and Embedded Software. Skilled in CMMI, Scrum, and PMP methodologies, he has held key roles, including Quality Owner, Hiring Manager, and Chapter Lead, in multinational projects.

Mesut specializes in test automation and CI/CD integration for continuous testing, alongside establishing test strategies and overseeing the testing lifecycle to ensure high-quality project outcomes. Mesut is also a frequent international speaker, the best presentation award winner, and a member of various program committees.

11:30 Mesut Durukal | Indeed - Scaling Test Automation: Building Reusability for 10x Speed and Efficiency

Background — As a test automation engineer at Indeed, he focuses on testing job boards that share common components, such as search functionality. When he started working on one job board, he quickly recognized a significant opportunity to improve test automation across multiple teams and applications. He proposed a solution to make the test automation framework reusable and scalable across the organization. This approach has revolutionized how one approaches automation, reducing test implementation time and increasing collaboration.

Problem Statement — In large organizations, teams often face two main challenges when scaling test automation:

  • Lack of Collaboration and Holistic Testing: Testing is siloed, with different teams tackling similar technical challenges in isolation. Developers and other roles aren't always involved in testing, making it difficult to foster a holistic quality mindset across the organization.
  • Duplication and Inefficiency: Multiple teams work on automating the same or similar components, such as a search bar, but often take different approaches. This leads to inefficiencies, duplicated efforts, and inconsistency in test strategies.

The need for a reusable and scalable test automation framework is clear, but the question is: how can we implement it effectively and ensure it benefits all teams, applications, and environments?

Solution — Mesut's team developed a centralized test automation framework designed to be scalable and reusable across teams and applications. The framework addresses common problems like duplication of efforts, inefficiencies, and inconsistency in testing strategies by providing a shared platform for test automation. Key components of the framework include:

  • Test Runner: To handle running tests efficiently in different environments.
  • Parallelization: Both locally and remotely, at the spec and test levels, speeding up execution.
  • Retries: At both the test level and for failing requests, reducing flakiness.
  • Test Reporter: Providing isolated test execution details for better reporting.
  • Configuration Management: Allowing for easy adjustment of execution parameters.
  • Execution Metrics Collection: Tracking key metrics like success rate, flakiness, and test duration.

This framework enables teams to quickly implement tests and share solutions, reducing redundancy and ensuring high-quality, maintainable automation.

Key Takeaways — Attendees of this session learned:

  • How to scale test automation across different teams and applications without compromising quality.
  • Strategies to improve test reusability, reducing duplication of effort.
  • Methods for addressing flakiness and improving test reliability.
  • Approaches to monitoring and maintaining a central framework, with key insights into tracking execution metrics.
  • How to reduce test implementation time from 5 hours to 30 minutes through efficient, reusable practices.

Outline:

  • Introduction (25%): Problem definition, emphasizing the benefits of a reusable and distributed test framework.
  • Strategy (30%): Key considerations for building a scalable and reusable test automation framework.
  • Framework Architecture (15%): Overview of the key components (test runner, parallelization, retries, etc.).
  • Monitoring & Maintenance (15%): How to track execution metrics and maintain quality.
  • Summary & Q&A (15%): Recap and open floor for audience questions.

How This Talk is Different — This talk is more than just a technical deep dive into test automation frameworks. It's a practical, experience-based report on how to scale test automation efforts in real-world scenarios. I'll provide insights on solving everyday challenges that test automation engineers face, such as maintaining consistency, avoiding duplicated effort, and ensuring reliability at scale. The focus on scaling, collaboration, and reusability makes this session stand out from other test automation talks.

Summary — In this talk, he shared his journey of scaling test automation across teams and environments at Indeed. They started with a small, siloed effort and transformed it into a central framework that drastically reduced implementation time and improved efficiency across the organization. By making the framework reusable and scalable, they not only improved collaboration but also ensured consistency in quality across different applications.

Mesut delved into the intricacies of building scalable and reusable test automation frameworks. He mentioned that it’s important not only to implement a reusable framework but also to maintain it and teach team members how to use it effectively. He discussed the importance of separating different test cases (smoke, regression, automation), maintaining historical data of test executions, and choosing the right framework.

One example he gave is with Cypress which allows us to do one thing in several different ways. While this is okay, in order to build a reusable and future-proof framework, we need to pick the one which is serving our team's needs the best and use it team-wide.

The talk also covered the use of tools like Elastic and Kibana for monitoring test runs and the necessity of training teams on the implemented frameworks. In his talk he emphasized on the fact that test coverage is not the only important stat - there are several other which need to be taken into account as well:

  • Number of critical incidents
  • Automation coverage
  • Total regression test duration
  • False failures
  • Average test fix time
  • Average test implementation time

11:55 Katerina Skroumpelou | Nx - Revolutionize Your React dev flow with Nx

Product Advocate at Nx, open source contributor, GDE for Angular & Google Maps platform, WTM Ambassador, AngularAthens meetup co-founder. Mentoring women into tech, speaking about the cool things I do, climbing mountains and serving cats for life. More at psyber.city.

11:55 Katerina Skroumpelou | Nx - Revolutionize Your React dev flow with Nx

Nx is the one tool you need for your React projects, offering a comprehensive suite of features that enhance DX and streamline workflows. With Nx, you can effortlessly generate code, manage dependencies, and integrate seamlessly with key tools in the React ecosystem, including Vite, Jest, Vitest, Playwright, Next.js, and, of course, Remix.

Nx's powerful capabilities make scaling your applications a breeze, ensuring that as your codebase grows, your development speed and efficiency remain unaffected. Moreover, Nx optimizes your CI pipelines with features like parallel task execution, caching, and incremental builds, significantly reducing build times and providing faster feedback loops.

This session explored how Nx can transform your React development experience, enabling you to boost productivity, maintain high code quality, and scale your projects with confidence.

Katerina introduced Nx, explaining its role in optimizing React development workflows. She discussed the benefits of Nx Cloud, microfrontend adoption statistics, and how microfrontends assist teams. Challenges such as roles and responsibilities, unified user experience, design systems, and versioning were addressed.

The talk emphasized the importance of documentation, monitoring web pages, and sharing dependencies between microfrontends.

Link to her slides here.

12:20 Roei Berkovich | Riverside.FM - Beyond the Hype: Facing Micro Frontend Challenges in Large-Scale

Roei is a passionate software team lead with over a decade of experience, specializing in React and Node.js. He thrives on building scalable, high-performance systems and leading teams to deliver robust, production-ready solutions. With deep expertise in micro frontends and large-scale architectures, Roei enjoys tackling complex technical challenges while fostering collaboration.

12:20 Roei Berkovich | Riverside.FM - Beyond the Hype: Facing Micro Frontend Challenges in Large-Scale

Microfrontends bring flexibility and promise independence, yet when you're operating at scale, unseen challenges can emerge like icebergs on the horizon.

In this session, he took us through the twists and turns of the real-world saga with microfrontends. He showed us how his teams conquer common obstacles—synchronizing efforts, unifying our design, and managing our services dependencies. He did more than just telling tales; his team created an in-house tool that helps them deal with all these issues and clearly shows what's going on.

Roei explored the adoption of microfrontends, discussing their benefits and the challenges they present. Key points included the need for a unified user experience, design systems, documentation, versioning, and monitoring. He emphasized that while microfrontends offer flexibility, they require skilled teams and are best suited for large, complex applications.

He talked about how microfrontend architecture is not meant to be used in all teams and in all projects. He also emphasized on the tasks which should be addressed before even starting the microfrontend project:

  • Roles and responsibilities - each service has its own codebase, code quality and testing CI and separate setup
  • Each service should provide unified UX
    • Design System
    • Storybook
    • Documentation
    • Versioning
    • Theme colors, fonts, measurements
    • Isolated CSS
  • Load time optimization
    • Tree shaking
    • Usage of bundle analyzers (bundlephobia)
    • Code splitting
    • Serving assets from a CDN
    • Sharing dependencies between services
    • Usage of HTTP/2
  • Knowledge sharing
    • Different teams working on separate services need to share knowledge using meetings, sessions and discussions
  • Usage of debugging and monitoring tools
    • Data RUM
    • Datadog
    • Dashboard insights
    • Client errors
    • Server errors
    • Budles sizes
    • User sessions

I had the opportunity to discuss a specific topic he talked about - the possibility to mix multiple frontend frameworks in one microfrontend architecture.

I asked him what kind of design system should be implemented in order to serve the needs of all chosen frontend frameworks in the team’s microfrontend architecture and his answer was that it should be planned before the start - the team can go for a design system based on Vanilla JS or Web components, or even React/Vue/Angular dummy components which serve the sole purpose of carrying the styling.

13:40 Dan Neciu | Career OS - How not to end up your app to a hot mess of spaghetti Carbonara

Dan Neciu is the technical co-founder and tech lead of CareerOS, where he spearheads the development, maintenance, and scaling of the main application. Bringing over 12 years of engineering expertise to the table, Dan has a proven track record in the tech industry, having previously served as a Senior Product Engineer at the New York E-commerce brand, AdoreMe, and as a Senior Software Engineer at the food delivery company, Glovo. Beyond his technical contributions, Dan is an esteemed international speaker and mentor. He passionately encourages best development practices, with a keen focus on testing, accessibility, and security. His recent speaking engagements include esteemed conferences like React Alicante, Utah JS, Techorama Belgium, and Frontmania Netherlands.

13:40 Dan Neciu | Career OS - How not to end up your app to a hot mess of spaghetti Carbonara

Every project / app starts small and grows and grows until it becomes a hot mess of spaggetti Carbonara. You try to follow all the best practices and advice and in the end the result is the same. In this talk he went though his case study on how he managed to scale his application to millions of users and keep the code tidy and clean.

Starting a startup is one thing - scaling it is another beast entirely. In this practical, experience-driven talk, he took us through his two-year journey of building and scaling a JavaScript application from ground zero. Rather than theoretical concepts, we heard real stories about the technical challenges they faced and the solutions the implemented. We discussd how to handle:

  • building a component library
  • building a scalable release process
  • internationalisation of the app
  • performance issues at scale
  • security
  • and some funny bugs

Dan shared insights into building a platform for students by students, introducing CareerOS. He discussed creating a common interface for third-party integrations using a facade pattern, developing a component library published on npm, and using Figma as the source of truth.

The talk covered topics like lazy loading with react.lazy, handling deployments, and implementing a “No broken windows” policy to maintain code quality.

Dan provided a list of task we should perform in order to stay away from spaggettifying our codebase:

  • Figma (or any other design tool, actually) should be the single source of truth when it comes to design
  • There should be a person who takes care of the components - Components Project Lead
  • Storybook and CI/CD should be utilized to provide better understading of the component system and to elliminate issues
  • Global imports for CSS/SCSS should be configured in our bundlers in order to reduce the repetitions and the bundle sizes
  • Lazy loading and code splitting should be in place whenever possible
  • Instead of chunk hash, our build tool should use our version (which means we should have versioning in place). This way possible preload/load errors will coming from service workers will be mitigated
  • Preview deployments should be implemented for each branch (similar to how Vercel and Netlify do it)
  • Release notes should be generated on each release

14:05 Aristeidis Bampakos | GDE for Angular - A journey to Server Side Rendering with Angular

Aristeidis Bampakos works as a Web Development Team Leader at Plex-Earth, specializing in developing web applications using Angular. He has been a Google Developer Expert (GDE) for Angular since 2020.

Aristeidis is passionate about helping the developer community learn and grow. His love for teaching has led him to become an award-winning author of Learning Angular and Angular Projects books. In his spare time, he enjoys being an occasional speaker in meetups, conferences, and podcasts where he talks about Angular.

He is currently leading the effort of making Angular accessible to the Greek development community by maintaining the open-source Greek translation of the official Angular documentation.

14:05 Aristeidis Bampakos | GDE for Angular - A journey to Server Side Rendering with Angular

In this talk, he took us on a tour in Angular SSR. We saw how server side rendering has evolved over time in Angular. Then he gave us an overview of the latest SSR advancements and improvements in to the framework. Finally, we saw a quick demo how an Angular application can benefit from SSR.

Aristeidis delved into optimizing web applications using modern Angular techniques. He discussed Angular Server-Side Rendering (SSR), destructive hydration, and when to use SSR to improve core web vitals, optimize SEO, and enhance security.

The talk also covered Angular Static Site Generation (SSG) and its benefits for targeting low-end devices and serving static content. It is important to note that according to him SSR shouldn’t be used when you directly manipulate the DOM or if your templates have invalid syntax.

Aristeidis also said that SSG is really helpful if you target low end devices, poor network connectivity or if you serve static content.

14:30 Fanis Prodromou | GDE for Angular - Angular Signals: A Look Under the Hood and Beyond

Fanis is a GDE for Angular and a Senior Front-End Developer. He has developed vast experience in code quality, application architecture, and application performance.

Being aware of how rapidly computer science and the tech aspects evolve, he tries to stay up to date by attending conferences and meetups, by studying and trying new technologies.

He loves sharing his knowledge and helping other developers. He is also a co-organizer of the Angular Athens meetup in Greece

14:30 Fanis Prodromou | GDE for Angular - Angular Signals: A Look Under the Hood and Beyond

Angular's new Signals feature offers a powerful way to manage reactivity. This talk provides a look under the hood, explaining how Signals achieve their performance benefits. Beyond the basics, we dived into practical use cases and explored advanced APIs like linkedSignal and resourceApi, demonstrating how they can simplify complex data flows and optimize your Angular applications.

Fanis introduced httpResource and linkedSignal, explaining their APIs and how they enhance Angular applications. He provided a deep dive into the inner workings of Angular Signals, discussing their implementation and benefits.

15:20 Shelley Vohr | Microsoft - Trash Talk - Understanding Memory Management

Shelley Vohr (she/her) is a software engineer based in Berlin, Germany. She’s Principal Engineer at Microsoft, where she has worked as an Electron maintainer for over 6 years, as well as on Node.js as a TSC member and collaborator.

Outside of work, Shelley loves to uncover hidden treasures at the flea market, eat the saltiest licorice humans can handle, and never misses the daily NYT crossword.

15:20 Shelley Vohr | Microsoft - Trash Talk - Understanding Memory Management

Memory management might not be the first thing that comes to mind when you think about JavaScript and Node.js, but understanding it can unlock a whole new level of insight into how your code runs. In this talk, we took a closer look at how Node.js manages memory with Google's V8 engine and explored the fascinating process of garbage collection—how memory is reclaimed, what can go wrong, and how to spot and fix issues in your own code.

Through real-world examples, we demystified the different types of garbage collection, when they're used, and what happens when memory is mismanaged.

We also saw how these concepts connect directly to our JavaScript applications and learned practical strategies to write more efficient, reliable code.

In her talk Shelly explained how memory management works in programming and how it differs in the world of JavaScript. She dived deep into the topic of Garbage Collection - how it works, how JavaScript has it built-in but we still can implement techniques which will improve memory management and Garbage collection in our frontend applications.

She explained how V8 (the JS engine used in the Chromium browsers and in Node.js) uses memory management using the “mark-and-sweep” method and how it does that in parallel with the JS execution.

Then she explained how V8 collects the “garbage”, what a memory leak is and how to write code which doesn’t cause memory leaks. She also provided hints on how to write performant code using WeakMap, WeatSet and the FinalizationRegistry API all of which are part of the existing JavaScript APIs.

15:50 Anna Henningsen | MongoDB - Segmentation fault! Low-level debugging for JS developers

Once one of the most active Node.js core contributors, Anna is still driven by a passion for JavaScript and its community. These days, she works on Developer Tools and Client Libraries at MongoDB.

15:50 Anna Henningsen | MongoDB - Segmentation fault! Low-level debugging for JS developers

JavaScript developers may not often face segmentation faults, but low-level debugging skills can be invaluable for diagnosing crashes and other issues in server-side JavaScript applications. This talk provided an overview of how native debuggers and tracing tools can help investigate issues that would otherwise be out of reach for JS developers, such as crashes or memory leaks that straddle the boundary between high-level JS code and native C or C++ APIs.

Anna went really deep into debugging Node.js applications using native debuggers such as gdb, lldb and strace. Her talk emphasized on usage of Linux but most of the tools are compatible with MacOS and even with Windows (after some configuration, of course).

Link to her slides here.

16:30 Theodore Vorillas | Workable - Why Greek Motorcycle Drivers Are Not Wearing Helmets?

Theodore is a software engineer working on Proxima Analytics and contributing to open-source projects. He enjoys writing about software and building web stuff. Sometimes, he travels to speak at conferences.

15:50 Theodore Vorillas | Workable - Why Greek Motorcycle Drivers Are Not Wearing Helmets?

If you have ever visited Greece, you may have noticed that the streets are flooded with motorbikes and scooters. You may also have noticed that many of the riders are not wearing any protective gear like jackets or helmets. In this talk, we explored how Theodore designed and built an IoT device that tracks and counts Greek riders who are not wearing helmets, using JavaScript and AI.

Theodore presented a project that uses Node.js, ffmpeg, and a Python image recognition library called YOLO to detect helmet usage among motorcycle drivers. The model, trained in Google Colab, runs on TensorFlow to process video streams and counts instances of helmet usage. To respect privacy, additional models blur faces and license plates. The system has been running for six months, analyzing an average of 3,000 motorcycles per day.

Link to his slides here.

16:55 Vladimir Glukhov | Devexperts - Hand gesture-controlled robot through the Internet

Vladimir Glukhov is a Senior Frontend Developer from Bulgaria with over five years of experience in programming. He has a passion for robotics, software development, and exploring new technologies.

16:55 Vladimir Glukhov | Devexperts - Hand gesture-controlled robot through the Internet

His project focuses on controlling a robot over the Internet using a web application with hand gesture recognition. The interface can detect up to six commands and transmit them to the robot. All recognition processes run in the browser, utilizing a custom-trained model built with TensorFlow.js.

Vladimir shared how his passion for robotics and programming allowed him to build the hardware and then the software which powers his hand-gesture driver robot. He showed how the trained a machine learning model to respond to hand gestures and how he used the JS implementation of Tensorflow in order to achieve this.

17:15 Jason Mayes | Google - Client side Web AI Agents: Building smarter user experiences for a future agentic internet

Jason leads Web AI at Google, enabling developers to use machine learning in JavaScript. He authored the first Web AI course on Google Developers and EdX, and created the world's first Web AI Summit. With 20+ years of experience, he combines technical and creative expertise to develop innovative prototypes.

17:15 Jason Mayes | Google - Client side Web AI Agents: Building smarter user experiences for a future agentic internet

AI is everywhere, and Web AI usage in JavaScript on the front end is growing exponentially - but where is it going and how will this change websites of the future? In this talk we saw how one can use the latest generative AI models from Google that run entirely client side on the front end (no cloud) to perform agentic behaviors to get common tasks done faster than ever before on any website giving you an edge over your competition.

Jason, leading Web AI at Google, discussed the integration of AI into web applications. He showcased how client-side AI agents can enhance user experiences, enabling smarter interactions and paving the way for a more agentic internet. The talk emphasized the importance of combining technical and creative expertise to develop innovative prototypes.

Conference Day 2 - May 31, 2025

09:45 Douglas Crockford | JSON Creator - Keynote

Douglas Crockford is an American computer programmer who is involved in the development of the JavaScript language. He specified the data format JSON (JavaScript Object Notation), and has developed various JavaScript related tools such as the static code analyzer JSLint and minifier JSMin. He wrote the book JavaScript: The Good Parts, published in 2008, followed by How JavaScript Works in 2018. He was a senior JavaScript architect at PayPal until 2019, and is also a writer and speaker on JavaScript, JSON, and related web technologies.

09:45 Douglas Crockford | JSON Creator - Keynote

Most of our current programming languages are descended from Fortran and C. While they were important advancements in the 1950s and 1970s, they are crippled by the assumptions that were profoundly important at the time: memory was measured in kilobytes, and a program executed slowly in a single process in a single machine.

The descendant languages inherit this genetic weakness. We know that the languages we use are all deficient, so we keep adding features to them, but it seems there are never enough features. These languages will never be good enough.

In today's world, computers have literally a million times more memory than was available to C. That truth should excite us to consider designs that are free of the small memory constraint. In today's world, programs are distributed. They run in many machines simultaneously, in various tiers and services and clients and servers, some under our immediate control, some we know are not under our control, and some that we think are under our control but are not.

Our programming languages should be built specifically for this situation. Our focus on bloating the old languages distracts us from the more fruitful path of migrating to new languages that are designed explicitly for networking, with fine grained security at the foundation.

You should not be limited by your grandfather's language. You deserve something better. This talk suggested a possible way forward.

Mr. Crockford started by talking about the “Great Leaps” in programming languages:

  • The Von Neumann architecture or the machine code
  • Symbolic Assembly
  • High level languages
  • Structured programming (else instead of goto)
  • Object-oriented programming
  • Functional programming

Then he moved to a topic which exists since the 1970s - The Actor Model - what it is, how it works in theory and why it is the future of programming.

The Actor Model by Douglas Crockford

Finally he shared that he is working on a new programming language which will be based on the Actor Model - Misty - more about it on its website.

10:35 Carmer Huidobro | DevCraft Academy - Untangling Your Dependencies: A Pattern for a Well-Knit JavaScript Project

Carmen Huidobro is a developer advocate and dev-ed enthusiast. She thrives on lifting others up in their tech careers and loves a good CSS challenge. Always excited to talk about teaching tech, especialmente en Español, oder auf Deutsch.

10:35 Carmer Huidobro | DevCraft Academy - Untangling Your Dependencies: A Pattern for a Well-Knit JavaScript Project

Building a complex JavaScript project can feel like a tangled mess of yarn. This talk provided the tools and techniques to gently untangle your dependencies and knit a well-structured, maintainable codebase.

Our basket of tools include using npm why as our yarn needle, breaking down tasks into manageable stitches, strategically upgrading for progress, utilising branching techniques to keep your project from unraveling, and much more!

Carmen discussed strategies for managing dependencies in JavaScript projects, emphasizing patterns that promote maintainability and scalability.

She talked about her experience updating the dependencies of a really old and outdated React Native application - how she struggled and how she finally managed to update all of the dependencies to their latest versions.

She explained different types of dependencies - devDependencies, peerDependencies, direct and transitive dependencies and then she showed some tools and patterns which help in managing dependencies - e.g. yarn’s interactive upgrade, the React Native Upgrade Helper, etc. She also shared some tools which help automate dependency management such as Snyk, Renovate and Dependabot.

Link to her slides here.

11:00 Evyatar Alush | Meta - Let's Build React Context From Scratch in JS

Evyatar is a software engineer at Meta, author of several open source libraries, passionate about dev tooling and API design.

11:00 Evyatar Alush | Meta - Let's Build React Context From Scratch in JS

In this talk, we explored the capabilities of React's Context API and learned how to use its powerful features outside of React to declutter our code, reduce bloat, and simplify our functions' signatures. We made use of JavaScript fundamentals to build this API from scratch, and by the end of the talk, we were able to use it in our vanilla JavaScript and node applications.

Evyatar provided a hands-on session on implementing React Context manually, offering a deeper understanding of its inner workings and use cases - he showed a live demonstration of how to implement the common describe and test functions which are provided by various testing libraries and he also explained that he uses the shown approach in his open-source form validation library called Vest.

11:35 Muhammed Salih Güler | AWS From Mocked Data to Cloud-Connected Mobile Apps with TypeScript

Salih is a Berlin based Senior Developer Advocate at AWS who is also a seasoned mobile app developer with 10+ years of experience. He likes sharing his knowledge with the people by mentoring aspiring developers, blogging and talking at conferences.

11:35 Muhammed Salih Güler | AWS From Mocked Data to Cloud-Connected Mobile Apps with TypeScript

In this hands-on session, we focused on transforming a mobile app (written with React Native) from using mocked data to fully utilizing cloud services like authentication, real-time data, file storage and generative AI. Through live coding, Salih demonstrated how to create our infrastructure and connect our application to AWS services. By the end of this talk, we had the skills to implement secure authentication, cloud-based data, storage, and add AI functionality to your mobile apps, enabling you to take your projects to the next level.

Salih demonstrated the process of transitioning from mocked data to fully integrated cloud-connected mobile applications using TypeScript, highlighting best practices and common pitfalls. He explained what full-stack development is and how one can utilize the tools provided by AWS in order to build a truly cloud-connected applications as a full-stack developer:

  • AWS Cognito for authentication
  • AWS Dynamo DB for database
  • AWS Bedrock for AI models and gen-AI
  • AWS S3 for storage
  • AWS Amplify, which combines all of the above

12:00 Erik Rasmussen | Attio - React Beyond the DOM

Erik is an american expat living in Spain, author of Redux Form, Final Form, and currently building the best CRM in the world at Attio.

12:00 Erik Rasmussen | Attio - React Beyond the DOM

In his talk, he explaind what it's like to build a React renderer and reconciler, what they are and how to use them. He did a live demo showing how React can be used to convert html to markdown. And then he demonstrated how React can render to the Real World, by controlling IOT devices.

In his talk, Erik explained how React is platform-agnostic and how it needs renderers in order to work in specific environments. He told us that we already know and use some the renderers - React DOM, React Native; but he went even further and explained that we can think outside the box and “render” React applications outside of the traditional environments.

One of the examples which he showed is an application which renders React components as Markdown.

The next example which he built in front of the audience was a traffic light simulator where he “rendered” react components on two smart light bulbs.

Traffic lights simulator built with React by Erik Rasmussen

13:30 Darko Bozhinovski | Supertokens - Future-proof your UI: Building with Web Components

Darko Bozhinovski is a web developer that's been around for a while now. He is passionate about technical challenges, open-source software, and Linux. Since 2017, he has been active in the IT community, organizing events, conferences, lectures, mentorships, and digital content creation. He's currently a part of the DevRel department at SuperTokens.

13:30 Darko Bozhinovski | Supertokens - Future-proof your UI: Building with Web Components

Do you love standards but hatehatehate the developer experience (DX) of web components? He too. As a reformed skeptic of Web Components due to his DX concerns, he encountered an interesting challenge at SuperTokens: creating a UI library that supports all the frameworks and remains future-proof.

After some research, he discovered that SolidJS compiles to Web Components, offering a familiar, React-like developer experience — exactly what he needed to become a believer. After a couple of rounds of experimentation, he fell in love with (the idea of) web components. This talk shares insights from his journey towards adopting Web Components for SuperToken’s next-gen authentication UI library and why web components are a great idea that’s here to stay.

Darko delved into the benefits of Web Components, discussing how they can be leveraged to create reusable and framework-agnostic UI elements.

He mentioned that in his particular use case he wasn't able to utilize the "Shadow DOM" API provided by the WebComponents specification but this doesn't apply to all of us.

He showed how using the solid-element library from NPM can help us build reusable and framework-agnostic web components utilizing everyday tools such as JSX.

14:00 Soumaya Erradi - Cypress, Playwright or Selenium: Choosing the Right Testing Tool

Soumaya is an experienced web developer and a passionate IT and electronics instructor. She specialized in frontend applications and currently is a lead software developer in a blockchain app development team. She spends most of her time exploring what's new in the tech world and helping other developers improve their skills.

14:00 Soumaya Erradi - Cypress, Playwright or Selenium: Choosing the Right Testing Tool

Ensuring application quality is critical, and test automation tools like Cypress, Playwright, and Selenium play a key role. Choosing the right tool depends on your project’s needs and programming language. In this session, we explored practical examples, compared the strengths and weaknesses of each tool, and discussd key factors to consider when selecting the best fit for our project.

Soumaya compared popular testing tools, providing insights into their strengths and weaknesses to help developers make informed decisions based on their project needs.

She explored Selenium, Cypress and Playwright and provided details on each of them:

Selenium

  • History of Selenium
  • Why the name is Selenium
  • Selenium WebDriver
  • How does Selenium work
  • Pros
    • Language support
    • Large community
    • Browser support
  • Cons
    • Slow
    • Flaky tests
    • Complex setup

Cypress

  • History of Cypress
  • Specialises in e2e tests
  • JavaScript and TypeScript only
  • Pros
    • Dev exp
    • Automatic waiting
    • Error report
  • Cons
    • Needs plugins
    • Limited browser support
    • Only supports JavaScript and TypeScript

Playwright

  • History of Playwright
  • Language support
  • Browser support
  • Headless mode by default
  • Mobile emulation
  • Cons
    • Complex APIs
    • Not intuitive syntax
    • Small community

In the end, she summarized that there is no "best" testing framework and choosing the best is subject of team decision and needs.

14:25 Matheus Albuquerque | Medallia - Hydration, Islands, Streaming, Resumability… Oh My

Matheus is a Staff Front-End Engineer at Medallia, building their surveys platform and helping them shape the customer experience market with React, and a Google Developer Expert in Web Performance.

His areas of interest include React and its ecosystem, JS and compile-to-JS languages, DX, and perceived performance optimization. Aside from public speaking about these, he also volunteers at TechLabs, teaching front-end development.

14:25 Matheus Albuquerque | Medallia - Hydration, Islands, Streaming, Resumability… Oh My

Our ecosystem can be overwhelming! First, we had the rise of SSR and SSG—and each had its own gigantic pile of frameworks and tools. Then partial hydration enabled us to hydrate only some of our components on the client, which we've seen in React Server Components.

But what about islands? Do they relate at all to Streaming SSR? Moreover, what is resumability, and why do I keep hearing about it? […] Oh, did anyone say rendering on the Edge?

Well… There are many approaches out there, and all of them argue that their philosophy is best. In this session, we went over these architecture/rendering patterns, to help shed some light on how some are implemented and the concepts behind them.

Matheus presented advanced rendering techniques in modern web development, discussing concepts like hydration, island architecture, streaming, and resumability.

15:20 Evangelia Mitsopoulou | Founder @Evangelia | ex-Elastic - Ask Douglas

Evangelia Mitsopoulou is a tech professional with over 15 years of experience. She is the founder of her own academy, where she mentors and guides aspiring front-end engineers, blending her expertise in software engineering, instructional design, and cognitive load theory.

Previously, Evangelia worked remotely as a UI Software Engineer for Elastic and spent a decade in Zurich with companies like ETH, Google, EF, and several fintech startups. Her extensive experience spans the full JavaScript ecosystem, and she has a background in e-learning standards for the medical and healthcare sectors.

In addition to running her academy, Evangelia advises and works as a fractional expert with startups, helping them navigate technical challenges and scale effectively.

15:20 Evangelia Mitsopoulou | Founder @Evangelia | ex-Elastic - Ask Douglas

We had a Panel with Douglas Crockford where members of the Local Community can ask questions to Douglas about the past, and the future of frontend development.

15:50 Panagiotis Skias | Netcompany - JSONize your Forms: The Abstraction Dilemma

Panagiotis Skias is a software engineer specializing in front-end development. He currently works as Front End Engineer at Netcompany, contributing to EOSC EU NODE project.

Also, he is Responsible for Community Projects of PyGreece (The Greek Python Community) and the main maintainer of python-docs-gr the Greek Translation of the Python Documentation.

He has worked as Full Stack Engineer in web banking applications using Angular and .NET. Thanks to his academic background, Panagiotis brings a unique blend of technical expertise and a business-oriented mindset to his work.

15:50 Panagiotis Skias | Netcompany - JSONize your Forms: The Abstraction Dilemma

This talk covered his first implementation (within the company) in an Angular Project – specifically, the creation of dynamic forms.

He began by highlighting the importance of forms in modern applications, and how different stakeholders – such as designers, business teams and developers – each bring their own perspective and requirements to the table.

From there, he introduced the business problem, outlining the specific requirements and constraints involved. He walked through his initial thought process: how he planned to approach the problem, what he aimed to achieve, and – just as importantly – what he wanted to avoid.

The core of the talk revolved around a key dilemma he faced: should he stick with Angular’s built-in form-building tools, or build something more abstract, flexible, and innovative? This dilemma represented a broader tension between concretion and abstraction. He wanted to strike a balance – to gain the benefits of both approaches while minimizing their downsides.

His first implementation attempted to walk that line, but as he looked further ahead, the limitations became clear. That led him to rethink his approach entirely. The turning point came with discovering Formly, an open-source Angular library for building dynamic, JSON-powered forms. He explained how he adopted Formly, how he integrated it into the project, and how it helped resolve the core challenges.

The talk concluded with a broader reflection on the potential of using JSON not just for dynamic forms, but as a powerful abstraction tool across other parts of an application.

16:25 Dani Coll | Dynatrace - Multithreading in JavaScript

Dani is a Senior Software Engineer based in Barcelona working on platform apps at Dynatrace. He started his tech journey on a startup 9 years ago as a mobile developer, going through a couple more consultant companies in the process he finally specialised himself in frontend development.

As a Tech Evangelist he’s eager to share the lessons he learned with all of us.

16:25 Dani Coll | Dynatrace - Multithreading in JavaScript

Are you struggling with performance and you do not know what else you can try out?

JavaScript as a single threaded language is unable to maximise the full potential of our CPUs, but there might be a solution: Web Workers.

Dani explored the capabilities and limitations of multithreading in JavaScript, discussing how to effectively utilize Web Workers for concurrent processing.

He started with the fact that JavaScript is a single threaded language and the JavaScript rendering engines have several features which help us work in this single-threaded environment. He continued with an explanation on how the call stack works in JS, its quirks and specifications.

Then he talked about the WebWorker API which provides a way to spawn parallel processes and execute JavaScript code outside of the main thread.

He showed an implementation of a Chess game where he used the js-chess-engine library to calculate the next best move. As this library requires lots of resources to do its magic it usually blocks the main thread and the UI becomes stuck. Utilizing the power of WebWorkers he was able to move the heavy caclulations to another thread while the main thread continues to work as expected without blocking the rendering.

Finally he dived into the topic of Offscreen canvas and how it can be used to render large dataset in charts or graphs without blocking the UI.

16:50 Tony Edwards | Sapphire Holidays - Beats, Rhymes & Neural Nets

Tony Edwards is a software engineer with a love for all things web and a lecturer in Computer Science for Games at Plymouth University. Alongside constant code tinkering, he's a full-time cat carer, a part-time rapper, and an occasional morris dancer.

16:50 Tony Edwards | Sapphire Holidays - Beats, Rhymes & Neural Nets

Through a mix of audio, video, and live performance, Tony explored Web based AI tools in an attempt to convince the audience of their suitability for helping write hip hop lyrics. After a walkthrough and comparison of the main options, he put the best to the test in a crescendo we won't forget.

We walked away from this session with an understanding of the current state of browser based speech recongition, a starting point for integrating it into our web applications, and a new-found appreciation for how technology can amplify human creativity — one bar at a time.

Tony concluded the conference with an engaging session on the intersection of music and AI, demonstrating how neural networks can be applied to generate and analyze musical compositions.

He shared his attempt to use different APIs leveraging speech recognition in order to implement a script which recognises hip-hop lyrics. This was an interactive talk, actually the first one I ever attended, during which he engages the audience into actively participating while he concluded the event with an awesome hip-hop performance.


Go back

Send me your message

Trusted by

  • Duke University brand image
  • Emailio brand image
  • E.ON brand image
  • Kinetik Automotive brand image
  • Robert Ladkani brand image
  • SOD 64 brand image
  • Three11 brand image
  • dmarcian brand image
  • htmlBurger brand image
  • htmlBoutique brand image
  • 2create brand image