Want to dive even deeper?

Take the course Stairway to Scala Applied II by Bill Venners and Dick Wall and become an expert!
Stairway to Scala Applied II
by Bill Venners , Dick Wall

Check it out!
You're watching a preview of this video, click the button on the left to puchase the full version from Devoxx'10.

Keynote - Scala in 2018

It's 2018. Scala is now 15 years old and the dominant programming language for enterprise apps. But how did we get here? What hurdles did we tackle and what hurdles tackled us?

Published on
  • 23.270
  • 34
  • 32
  • 96
  • 37
  • What to Talk About… ?
  • The History of Poetry?
  • The History of Poetry?
  • The Perl School  Computer language poetry proposed in 1960s  First poems written in Algol in 1970s  Perl’s design allowed for poetry:  I know it’s weird, but it does make it easier to write poetry in perl – Larry Wall on a Perl feature, 1990
  • Black Perl BEFOREHAND: close door, each window & exit; wait until time. open spellbook, study, read (scan, select, tell us); write it, print the hex while each watches, reverse its length, write again; kill spiders, pop them, chop, split, kill them. unlink arms, shift, wait & listen (listening, wait), sort the flock (then, warn the "goats" & kill the "sheep");
  • Ode to Scala I love her silken symmetry; Her supple form entices (oh yes) Enraptures - entraps – me!   I love this it's heaven; Yet import pain.                    _ Sh*t  Why     this synchronized torment?   Heaven & hell
  • Ode to Scala if (she says) "Your love is not enough” (Resist, resist, resist) "I find your lack of faith disturbing.” Be not obsessed. Relax This map suffices That way madness lies; I say "It IS enough"
  • Ode to Scala class warfare extends ghetto (filled) with suffering if (easily angered) throw under the bus object ridicule extends warfare ridicule hurts class unity extends community with joy 1000 fold Remember The     wheel is not a new idea with Scala Remember & rejoice print { money }
  • Scala in 2018 How Scala Became a Mainstream Language
  • 2018: The Leading Newer Language  Scala has broken out of the pack  Biggest thing since Java  Language fragmentation here to stay  Specialization  No new blockbuster languages
  • 2018: Java Endures
  • 2018: Java Endures  Java is regularly pronounced dead  Deeply uncool  In reality, it’s not going away any time soon  Good for Scala, as its fate is linked to that of Java
  •  Not just about Java, it’s the JVM  An amazing piece of software
  • 2018: Users of Scala  Scala’s niche: Leading enterprise language  Traditional enterprise apps  Twitter-like category of super high demand consumer apps  Part of a messy world…  Java and Scala often mixed  DSLs an important niche for Scala
  • 2018: Who Doesn’t Use Scala?  The mythical “corporate developer”  Scala is not adopted by millions  Startups less likely to use Scala  Still hate the JVM  Still love dynamic languages  May rewrite in Scala if they encounter the Twitter scenario  Front end no longer on the JVM  Predominantly JavaScript
  • How Did Scala Win?  Moved toward the mainstream  Embraced Java ecosystem  Chose to fight only winnable battles  Scala language innovation slowed down, improving backward compatibility, compiler and tooling
  • Oh No!
  • Sometimes It’s Good to Sell Out
  • Some Successful Sellouts Tony Flow and the Miraculously Majestic Masters of Red Hot Chilli Peppers
  • …some Successful Sellouts Mother Mcree’s Uptown Jug Champions Grateful Dead
  • Confession: I am Biased
  • Confession: I am Biased  Have coded purely in Scala for the last year  I love Scala more than any language since C  Doubt I will program in Java again  Chose to join Typesafe board
  • Confession: I am Biased  Have coded purely in Scala for the last year  I love Scala more than any language since C  Doubt I will program in Java again  Chose to join Typesafe board  Pretty typical background for a Scala adopter  Enterprise software experience  Java background
  • Why Scala is Awesome  Not verbose like Java  Amazingly flexible for a strongly typed language  I’ve always liked type safety  Elegant combination of OO and functional  Best code reuse I’ve seen
  • Why Java Sucks  Verbose and error-prone     Lack of default method arguments Constructor duplication Getters/setters …  Immutability doesn’t feel as natural  Comparative lack of code reuse
  • Why Java is Awesome… Reason Scala response JVM is robust and performant Scala runs on the JVM Awesome tooling • Strong typing helps tooling • Improving in Java-based IDEs Community of pragmatic programmers focused on solving real world problems Mixed community, includes purists and zealots
  • …Why Java is Awesome Reason Scala response Great backward compatibility Poor backward compatibility Powerful libraries and frameworks • Consume Java libraries easily • Ignore Java solutions and rewrite in Scala Restrictive language Flexible language a blessing & a curse Culture of readable code Culture of unreadable clever code
  • Lessons for Scala From Java’s Popularity  No accident Java is #1  Learn from Java’s successes as well as its failures  Play nice with Java, rather than totally rejecting it
  • Myths That Hold Us Back
  • Myth #1: It’s Good to be Clever def templateContent: Parser[(List[Simple], List[Def], List[Template], List[TemplateTree])] = {         (several(importExpression | localDef | template | mixed)) ^^ {           case elems => {             elems.foldLeft((List[Simple](), List[Def](), List[Template](), List[TemplateTree] ())) { (s, e) =>               e match {                 case i: Simple => (s._1 :+ i, s._2, s._3, s._4)                 case d: Def => (s._1, s._2 :+ d, s._3, s._4)                 case v: Template => (s._1, s._2, s._3 :+ v, s._4)                 case c: Seq[_] => (s._1, s._2, s._3, s._4 ++ c.asInstanceOf[Seq[TemplateTree]])               }             }           }         }       }
  • With Great Power Comes Great • Implicit conversions • Implicit parameters • Operator overloading • Ability to use unicode charset in identifiers • Renaming imports • Type inference • Powerful collection library with baffling internals • …
  • With Great Power Comes Great • Implicit conversions • Implicit parameters • Operator overloading • Ability to use unicode charset in identifiers • Renaming imports • Type inference • Powerful collection library with baffling internals • … Cannot simply deny this and argue language is simple
  • Lessons from C / C++
  • Lessons from C / C++
  • Advantages of Languages in Which You Can’t Write Poetry…  Also hard to hang yourself  Java’s success was partly due to being less powerful than C++
  • Advantages of Languages in Which You Can’t Write Poetry…  Also hard to hang yourself  Java’s success was partly due to being less powerful than C++  Java 8…  Good for Scala, bad for Java?  But we don’t want anything bad for Java
  • Dispatch “periodic table”  Need to translate into English a design smell  Good code is self documenting
  • About Readability, Not LOC
  • About Readability, Not LOC java is much better suited for big teams *because* it's a stupid language that feels like you're coding with yours [sic] hands bound. the more humans you add to a group, the more stupid each individual gets, even if they all are geniuses.
  • About Readability, Not LOC Any fool can write code that a compute can understand. Good programmers wri code that humans can understand – Mart Debugging is twice as hard as writing th code in the first place. Therefore, if you write the code as cleverly as possible, yo
  • Need Scala Coding Standards  Can do the same thing in many different ways  Poetry may not be good code  Need to converge on one good way  Something the Rails guys did well with Ruby  Need clear division between application developer and library developer roles  Martin Odersky “Levels”: http://www.scalalang.org/node/8610  Don’t make application developers do bizarre stuff
  • Myth #2: Ignorance Should be Punished
  • Myth #2: Ignorance Should be Punished If your coworkers are idiots, that's really a problem with your coworkers.
  • Myth #2: Ignorance Should be Punished If your coworkers are idiots, that's really a problem with your coworkers. You even said "avoid answering Scala questions with Haskell." Fuck you Kevin. If I feel it is appropriate to answer with Haskell, I will do exactly that -- I really don't care that you do not understand.
  • Lessons From Other Communities  Groovy  Poor language, great community  People are welcomed, not abused  It’s OK to write in Java at first  Spring  Culture of respect in forums  Karma works  Respect breeds respect
  • Facts To Remember  Most of those who will use Scala in 2018 aren’t using it today  Where will they come from?  All leading languages are similar to Java  Java community 52x larger than Haskell community  How do we welcome them?  What do they need to be productive and adopt Scala incrementally?  Make their first weeks enjoyable, not humiliating
  • Myth #3: OO is Bad  Shouldn’t feel guilty for using OO design  OO is a valuable and proven paradigm  Scala is a better OO language than Java  If you hate OO programming, go write Haskell or Lisp
  • Myth #4: We Don’t Need Frameworks Language so good we don’t need no lousy frameworks
  • Myth #4: We Don’t Need Frameworks Language so good we don’t need no lousy frameworks  It’s not just about the language  Much real world programming has little to do with elegant expression of algorithms
  • Myth #4: We Don’t Need Frameworks Language so good we don’t need no lousy frameworks  It’s not just about the language  Much real world programming has little to do with elegant expression of algorithms  Like saying we have a fast car, so we’ll use the time we save to build our own road
  • Myth #5: Java Sucks and Java Coders Aren’t as Smart as Us  Tendency to dismiss Java viewpoints and libraries  Typical arrogance of a young community  Appropriate for a while
  • Exhibit A: Scala ORM in Theory I think we really need SIQ or whatever we call it shipping as soon as possible. Being able to say here are the hundreds of lines of code you need to work with a database:   you need some classes for ORM,   dozens of annotations to describe the connection between them  dozens of lines for simple type safe queries  you need to know the quirks of Hibernate/JPA/EclipseLink and   you probably still need to write SQL for more complex tasks and here is how you do that in Scala, with a single line of code: <example> I think if we would have this, we have more or less won the whole enterprise stuff.
  • Exhibit A: Scala ORM in Practice val withAthleteAndComments = { (Workout.withAthlete ~ Comment.simple *) map { case all => all.groupBy(_._1).headOption.map { case (workoutWithAthlete, comments) => " " (workout, athlete, comment.map(_._2)) } } } That will get you a Option[((Workout,Athlete),List[Comment])]
  • Embrace it: Java Ecosystem is a Huge Benefit to Scala  A key strength  Not an embarrassment  Shouldn’t assume we can do everything better in Scala
  • Myth #6: Purity Matters What if many people are wrong? It's not as if there aren't countless examples of many people sharing the same mistake, surviving only by patting each other on the back, confirming the perpetuity of the mistake.
  • Myth #6: Purity Matters What if many people are wrong? It's not as if there aren't countless examples of many people sharing the same mistake, surviving only by patting each other on the back, confirming the perpetuity of the mistake. val withAthleteAndComments = { (Workout.withAthlete ~ Comment.simple *) map { case all => all.groupBy(_._1).headOption.map { case (workoutWithAthlete, comments) => " " " (workout, athlete, comment.map(_._2)) } } }
  • Myth #5: It’s All About New Language Features  Mainstream languages can’t progress like the wind  Backward compatibility matters  Scala will win as an enterprise language  Scala needs to be more boring
  • The Only Thing that Needs to Go Faster is the Compiler  Compiler is slow and buggy  C++ eventually solved those problems  Language is a moving target  Makes it harder for new adopters to learn
  • My 2c On Language Innovation  New language features like macros not highest priority  Need to create two language profiles  Academic experimental tool  Drive the future  Subset: Scala for working developers  Stable, small footprint  Need to be paranoid about footprint
  • Conclusion
  • A Critical Moment  Scala has a great chance of being the next big enterprise language  Less likely to appeal to startups  The Scala community will determine what happens next  What will Scala be when it grows up?  Do we want it to be mainstream?
  • How Scala Becomes Mainstream  Community needs to evolve more than the language  More pragmatic  More welcoming of newbies  Coding standards need to be developed and adopted  Need to embrace the Java ecosystem and Java  Need to stop reinventing wheels  Scala language innovation needs to slow down
  • The Journey Has Already Begun… Welcome     new era with boundless       potential   Thread sleep sweetly. Enough.  §
Thumbnail for: Refactoring to Functional (slides only)

Refactoring to Functional (slides only)

Hadi Hariri

subscription
Thumbnail for: 10 NoSQL databases you have to know

10 NoSQL databases you have to know

Tom Bujok

subscription
Thumbnail for: Functional Programming: Technical Reasons to Adapt (slides only)

Functional Programming: Technical Reasons to Adapt (slides only)

Venkat Subramaniam

subscription
Thumbnail for: What's New in WildFly 9

What's New in WildFly 9

Tomasz Adamski

subscription
Thumbnail for: PubSub++ - few tips that make your life with kafka easier. (slides only)

PubSub++ - few tips that make your life with kafka easier. (slides only)

Krzysztof Debski

subscription
Thumbnail for: Apache Spark - when things go wrong (slides only)

Apache Spark - when things go wrong (slides only)

Paweł Szulc

subscription
Thumbnail for: My running shoes - Continuous Delivery

My running shoes - Continuous Delivery

Grzegorz Krumpholz

subscription
Thumbnail for: Vaadin Designer, the visual design tool for modern web apps

Vaadin Designer, the visual design tool for modern web apps

Maciej Przepióra

subscription
Thumbnail for: Effective SCRUM in distributed teams (slides only)

Effective SCRUM in distributed teams (slides only)

Rafał Udziela

subscription
Thumbnail for: Get Past the Syntax, The Real Scare is in the Semantics

Get Past the Syntax, The Real Scare is in the Semantics

Venkat Subramaniam

subscription
Thumbnail for: Ścisły przewodnik po aspektach miękkich - część II: Jesteś ekspertem i co dalej? (slides only)

Ścisły przewodnik po aspektach miękkich - część II: Jesteś ekspertem i co dalej? (slides only)

Slawomir Sobotka

free
Thumbnail for: Flavors of Concurrency in Java

Flavors of Concurrency in Java

OLEG ŠELAJEV

free
Thumbnail for: Coding Culture

Coding Culture

Sven Peters

free
Thumbnail for: The end of server management : hosting have to become a commodity (slides only)

The end of server management : hosting have to become a commodity (slides only)

Quentin ADAM

subscription
Thumbnail for: Software architecture as code

Software architecture as code

Simon Brown

subscription
Thumbnail for: Modern Web Architecture

Modern Web Architecture

Ted Neward

subscription
Thumbnail for: HTTP/2 : why upgrading the web? (slides only)

HTTP/2 : why upgrading the web? (slides only)

Quentin ADAM

subscription
Thumbnail for: Failing Continuous Delivery (slides only)

Failing Continuous Delivery (slides only)

Daniel Sawano , Daniel Deogun

subscription
Thumbnail for: A Gentle and useful introduction to Reactive Extensions (slides only)

A Gentle and useful introduction to Reactive Extensions (slides only)

Hadi Hariri

subscription
Thumbnail for: Scalable Is Awesome, Literally! (slides only)

Scalable Is Awesome, Literally! (slides only)

Garrett Smith

subscription
Thumbnail for: From Docker To Kubernetes: A Developer's Guide To Containers (slides only)

From Docker To Kubernetes: A Developer's Guide To Containers (slides only)

Marek Grabowski

subscription
Thumbnail for: Kill the mutants, test your tests

Kill the mutants, test your tests

Roy van Rijn

subscription
Thumbnail for: Unlocking the magic of monads in Java 8

Unlocking the magic of monads in Java 8

OLEG ŠELAJEV

subscription
Thumbnail for: Lazy Evaluations (slides only)

Lazy Evaluations (slides only)

Venkat Subramaniam

subscription
Thumbnail for: Make sense of your (BIG) data! (slides only)

Make sense of your (BIG) data! (slides only)

David Pilato

subscription
Thumbnail for: Painfree Object-Document Mapping for MongoDB

Painfree Object-Document Mapping for MongoDB

Philipp Krenn

subscription
Thumbnail for: Core Software Design Principles for Programmers (slides only)

Core Software Design Principles for Programmers (slides only)

Venkat Subramaniam

subscription
Thumbnail for: Reviewing Architectures

Reviewing Architectures

Nathaniel Schutta

subscription
Thumbnail for: Clean Architecture - how to improve your system architecture

Clean Architecture - how to improve your system architecture

Andrzej Bednarz

subscription
Thumbnail for: Principles Of Microservices

Principles Of Microservices

Sam Newman

subscription
Thumbnail for: Caching reboot: javax.cache & Ehcache 3 (slides only)

Caching reboot: javax.cache & Ehcache 3 (slides only)

Louis Jacomet

subscription
Thumbnail for: Microservices and Conversion Hunting - How to build software architectures for changeableness (slides only)

Microservices and Conversion Hunting - How to build software architectures for changeableness (slides only)

Bernd Zuther

subscription
Thumbnail for: Microservices - enough with theory, let's code some (slides only)

Microservices - enough with theory, let's code some (slides only)

Marcin Grzejszczak , Tomasz Szymanski

subscription
Thumbnail for: User Acceptance Testing - Looking for the Holly Grail (slides only)

User Acceptance Testing - Looking for the Holly Grail (slides only)

Boguslaw Osuch

subscription
Thumbnail for: Vagrant up your enviroment (slides only)

Vagrant up your enviroment (slides only)

Yann Larrivee

subscription
Thumbnail for: Scala and Clojure: Playing well together

Scala and Clojure: Playing well together

David Pollak

subscription
Thumbnail for: The Silver Bullet Syndrome (slides only)

The Silver Bullet Syndrome (slides only)

Hadi Hariri

subscription
Thumbnail for: Security Platform as a Service with Docker and Weave

Security Platform as a Service with Docker and Weave

David Pollak

subscription
Thumbnail for: The Go Language (slides only)

The Go Language (slides only)

Brad Fitzpatrick

subscription
Thumbnail for: Functional Data Storage (slides only)

Functional Data Storage (slides only)

Greg Young

subscription
Thumbnail for: Event Sourcing & Functional Programming - a pair made in heaven

Event Sourcing & Functional Programming - a pair made in heaven

Paweł Szulc

subscription
Thumbnail for: Refactoring meets big money

Refactoring meets big money

Michal Gruca

subscription
Thumbnail for: What's new in Spring Data? (slides only)

What's new in Spring Data? (slides only)

Thomas Darimont

subscription
Thumbnail for: Functional patterns for scala beginners (slides only)

Functional patterns for scala beginners (slides only)

Clément Delafargue

subscription
Thumbnail for: Babun - a Windows shell you will love, finally! (slides only)

Babun - a Windows shell you will love, finally! (slides only)

Tom Bujok , Lukasz Pielak

subscription
Thumbnail for: IDE Wizard? CLI Command? Get both for the price of one! (slides only)

IDE Wizard? CLI Command? Get both for the price of one! (slides only)

Koen Aers

subscription

BigData on Azure for architects – Machine Learning, HDInsight (Hadoop), Event Hub – what to use when (and – how) (slides only)

Tomasz Kopacz

subscription
Thumbnail for: Hystrix – managing failures in distributed systems (slides only)

Hystrix – managing failures in distributed systems (slides only)

Tomasz Nurkiewicz

subscription
Thumbnail for: Deep dive into Reactive Java

Deep dive into Reactive Java

Tomasz Kowalczewski

subscription
Thumbnail for: Nashorn, what is the whole buzz about

Nashorn, what is the whole buzz about

Michal Gruca

subscription
Thumbnail for: Things about microservices you wish you never knew

Things about microservices you wish you never knew

Marek Ko-w

subscription
Thumbnail for: "Bootiful" Microservices with Spring Cloud

"Bootiful" Microservices with Spring Cloud

Josh Long

subscription
Thumbnail for: Is your profiler speaking the same language as you? (slides only)

Is your profiler speaking the same language as you? (slides only)

Simon Maple

subscription
Thumbnail for: Agile Development Meets Connected Devices - Lessons Learned

Agile Development Meets Connected Devices - Lessons Learned

subscription
Thumbnail for: Distributed algorithms for Big Data (slides only)

Distributed algorithms for Big Data (slides only)

DuyHai DOAN

subscription
Thumbnail for: JRebel under the covers - how is it even possible? (slides only)

JRebel under the covers - how is it even possible? (slides only)

Simon Maple

subscription
Thumbnail for: Case Study: Agile @gov.pl (slides only)

Case Study: Agile @gov.pl (slides only)

Matt Harasymczuk

subscription
Thumbnail for: Ansible to rule them all – o provisioningu i deploymencie aplikacji Java

Ansible to rule them all – o provisioningu i deploymencie aplikacji Java

Wojciech Podgorski , Rafal Piotrowski

subscription
Thumbnail for: Supler: complex web forms, not so complex

Supler: complex web forms, not so complex

Adam Warski , Tomasz Szymanski

subscription
Thumbnail for: Deploying Microservice Architectures with Spring Cloud on Cloud Foundry

Deploying Microservice Architectures with Spring Cloud on Cloud Foundry

Pieter Humphrey

subscription
Thumbnail for: 5-10-15 years with Java - from junior to master and back again (slides only)

5-10-15 years with Java - from junior to master and back again (slides only)

Wojciech Seliga

subscription
Thumbnail for: "Bootiful" Applications with Spring Boot

"Bootiful" Applications with Spring Boot

Josh Long

subscription
Thumbnail for: You're an Architect...Now What?

You're an Architect...Now What?

Nathaniel Schutta

subscription
Thumbnail for: Co było pierwsze: kod czy architektura? (slides only)

Co było pierwsze: kod czy architektura? (slides only)

Slawomir Sobotka

subscription
Thumbnail for: From API to protocol (slides only)

From API to protocol (slides only)

Quentin ADAM

subscription
Thumbnail for: Everything Works In Java EE?--Then Try Microservices :-) (slides only)

Everything Works In Java EE?--Then Try Microservices :-) (slides only)

Adam Bien

subscription
Thumbnail for: OAuth2 for native apps and beyond (slides only)

OAuth2 for native apps and beyond (slides only)

Erik Jan de Wit

subscription
Thumbnail for: Building an Asynchronous Reactive NoSQL SDK with RxJava

Building an Asynchronous Reactive NoSQL SDK with RxJava

Simon Baslé

subscription
Thumbnail for: Agile Project Management Anti-Patterns (slides only)

Agile Project Management Anti-Patterns (slides only)

Kasia Mrowca

subscription
Thumbnail for: What's Coming in Java EE 8

What's Coming in Java EE 8

Reza Rahman

subscription
Thumbnail for: WebVR - democracy in Virtual Reality

WebVR - democracy in Virtual Reality

Marcin Lichwala

subscription
Thumbnail for: Why software developers should care about deployment and monitoring

Why software developers should care about deployment and monitoring

Michał Kosmulski

subscription
Thumbnail for: Social Coding - tools and techniques

Social Coding - tools and techniques

Maciej Pleśnar

subscription
Thumbnail for: Applications secure by default (slides only)

Applications secure by default (slides only)

Sławomir Jasek

subscription
Thumbnail for: Busy Java Developer’s Guide to Three REST API Frameworks (slides only)

Busy Java Developer’s Guide to Three REST API Frameworks (slides only)

Ted Neward

subscription
Thumbnail for: High Performance JavaScript Web Apps

High Performance JavaScript Web Apps

Pratik Patel

subscription
Thumbnail for: JCP, Adopt-a-JSR & You

JCP, Adopt-a-JSR & You

Reza Rahman

subscription
Thumbnail for: The Smartwatch Revolution begins: Developing for Android Wear (slides only)

The Smartwatch Revolution begins: Developing for Android Wear (slides only)

Pratik Patel

subscription
Thumbnail for: Wykorzystanie podejścia Domain-Driven Design w systemach legacy (slides only)

Wykorzystanie podejścia Domain-Driven Design w systemach legacy (slides only)

Piotr Wyczesany

subscription
Thumbnail for: Apache Cassandra 101 (slides only)

Apache Cassandra 101 (slides only)

Christopher Batey

subscription
Thumbnail for: The Creative Networker

The Creative Networker

Jurgen Appelo

subscription
Thumbnail for: Using JavaScript/HTML5 Rich Clients with Java EE 7 (slides only)

Using JavaScript/HTML5 Rich Clients with Java EE 7 (slides only)

Reza Rahman

subscription
Thumbnail for: From Docker To Kubernetes: A Developer's Guide To Containers (slides only)

From Docker To Kubernetes: A Developer's Guide To Containers (slides only)

Marek Grabowski

subscription
Thumbnail for: Lessons learned from scaling software

Lessons learned from scaling software

Bartek Nowakowski

subscription
Thumbnail for: Everybody lies

Everybody lies

Tomasz Kowalczewski

free
Thumbnail for: Clean JavaScript code - only dream or reality (slides only)

Clean JavaScript code - only dream or reality (slides only)

Sebastian Łaciak

subscription
Thumbnail for: React.js: Super-fast Single Page Web Applications (slides only)

React.js: Super-fast Single Page Web Applications (slides only)

Pratik Patel

subscription
Thumbnail for: Building fault tolerant microservices

Building fault tolerant microservices

Christopher Batey

subscription
Thumbnail for: Modern Java Component Design with Spring 4.2

Modern Java Component Design with Spring 4.2

Juergen Hoeller

subscription
Thumbnail for: Designing software with security in mind? (slides only)

Designing software with security in mind? (slides only)

Daniel Deogun

subscription
Thumbnail for: From spaghetti with no src/test to green CI, good coverage and well-sleeping developers (slides only)

From spaghetti with no src/test to green CI, good coverage and well-sleeping developers (slides only)

Michał Matłoka , Jacek Kunicki

subscription
Thumbnail for: Technical leadership – from an expert to a leader

Technical leadership – from an expert to a leader

Mariusz Sieraczkiewicz

subscription
Thumbnail for: Modularity in post microservice world

Modularity in post microservice world

Michal Gruca

subscription
Thumbnail for: Level up your dev skills with static analysis

Level up your dev skills with static analysis

David Lindsay

subscription
Thumbnail for: Why I love Logstash and you should too. (slides only)

Why I love Logstash and you should too. (slides only)

João Duarte

subscription
Thumbnail for: Java Bytecode Explained (slides only)

Java Bytecode Explained (slides only)

OLEG ŠELAJEV

subscription
Thumbnail for: Corporate startup and Scala (slides only)

Corporate startup and Scala (slides only)

Filip Rogaczewski

subscription
Thumbnail for: Need for Async: In hot pursuit of internet-scale app architectures

Need for Async: In hot pursuit of internet-scale app architectures

Konrad Malawski

subscription
Thumbnail for: Groovier BDD with Spock (slides only)

Groovier BDD with Spock (slides only)

Michał Kordas

subscription
Thumbnail for: Building systems that are #neverdone

Building systems that are #neverdone

James Lewis

subscription
Thumbnail for: OnConnectionLost: The life of an offline web application

OnConnectionLost: The life of an offline web application

Stefanie Grewenig , Johannes Thönes

subscription