Workshop: Paradigms Lost, Paradigms Regained
Programming paradigms: there can be more than one
Paradigms are not mutually exclusive and overlap strongly with one another
Within a single paradigm there can be surprising variation
Other factors in a programming language can interfere with or reinforce the paradigms it supports
Programming paradigms represent both stylistic and pattern-like choices that can also be architectural
Some knowledge of modern programming languages, with experience in at least OO programming
It is very easy to get stuck in one way of doing things. This is as true of programming as it is of life. Although a programming paradigm represents a set of stylistic choices, it is much more than this: a programming also represents a way of thinking. Having only way to think about problems is too limiting. A programming paradigm represents a set of patterns of problem framing and solving and contains the ingredients of software architecture. As Émile Auguste Chartier noted, there is nothing more dangerous than an idea when you have only one idea.
Perhaps even more problematic than being stuck with a narrow view of paradigms, is being stuck with a dysfunctional view of each paradigm. For instance, many developers working in languages and frameworks that support object orientation lack a strong idea of the principles of interaction, data abstraction and granularity that support an effective view of OO, and instead surround themselves with manager objects, singletons and DTOs.
During the day we will explore the strengths and weaknesses of different programming styles, patterns, paradigms, languages, etc., with examples and opportunity for discussion.
Architecting for Failure
Building fault tolerate systems that are truly resilient
Architectures You've Always Wondered about
QCon classic track. You know the names. Hear their lessons and challenges.
Containers - State Of The Art
What is the state of the art, what's next, & other interesting questions on containers.
Dark Code: The Legacy/Tech Debt Dilemma
How do you evolve your code and modernize your architecture when you're stuck with part legacy code and technical debt? Lessons from the trenches.
Data Engineering : Where the Rubber meets the Road in Data Science
Science does not imply engineering. Engineering tools and techniques for Data Scientists
Engineering Culture @ <insert cool company names here>
Culture, Organization Structure, Modern Agile War Stories
Fast & Furious: Ad Serving, Finance, & Performance
Learn some of the tips and technicals of high speed, low latency systems in Ad Serving and Finance
Java: Interesting Stuff in the Space
What do you need to know about Java: JDK9, low latency, and more.
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
Modern Distributed Architectures
Migrating, deploying, and realizing modern cloud architecture.
Modern Learning Systems
Real world use of the latest machine learning technologies in production environments
Observability Done Right: Automating Insight & Software Telemetry
Tools, practices, and methods to know what your system is doing
Performance myths that need busting and the tools & techniques to get there
Practical Cryptography & Blockchains: Beyond the Hype
Looking past the hype of blockchain technologies, alternate title: Weaselfree Cryptography & Blockchain
Security: The Attacker's Mindset
How Attackers Think. Penetration testing techniques, exploits, toolsets, and skills of software hackers
Softskills: Essential Skills for Developers
Skills for the developer in the workplace
Workhorse Languages, Not Called Java
Workhorse languages not called Java.