Last week we had a competence development day at Jayway and we thought it would be nice to share what we did.
During a competence development day, we get together and share knowledge with each other, discuss interesting topics, and explore new things.
The competence year typically has this form:
- Every quarter, we have a competence development weekend (1.5 days, often off-site with stay over), where one of those is attending Øredev.
- Every month, we have a competence development day except the months where we have a competence development weekend and during summer vacation.
A competence development event is organised similar to a conference. We start of the event with a keynote and continue with sessions on multiple tracks.
Here’s the program from last week.
|Keynote: “Quality from a tester’s perspective”||Why do we need testers, and what do they even do? Can’t we just use developers to test? This presentation is an introduction to testing and about common misconceptions that people have with testing|
|What every (server) developer needs to know about Mobile Apps||Chiefly I will touch on how the main key factor for Mobile Apps is the ability to quickly iterate, and how this affects everything from the architecture of the App down to the communications with the server.
I will also talk about how REST, for the above reason, is not always the most suitable data transfer mechanism. And how GraphQL and Falcor provides a better match.
|Agile Risk Management||We have invited an external educator that will help us become better at risk management in agile projects.|
|Isomorphic apps with React, Redux + webpack||Recently, I have written an isomorphic blog in React, using Redux as the predictable state container and webpack as the bundler. I would present some challenges I stumbled upon, how it affects the design of the app and the general impression of using this approach. Demo: https://github.com/tadeaspetak/isomorphic-demo|
|Cloudshed: Intro IaaS on Azure and AWS||Cloudshed is a series of sessions aimed to lower the threshold for adopting Cloud in various projects. We begin with an overview of IaaS on Azure and AWS.|
|Concurrent & fault tolerant programming with OTP||OTP is a set of design patterns and libraries which comes from Erlang. It’s used to build highly concurrent sever-side applications and has been successfully used by WhatsApp, Riak, CouchDB & Phoenix. But OTP has also influenced projects like Akka for Java/Scala.
We look at how OTP works from a high-level perspective to see what design patterns, tools and libraries it utilises to achieve its amazing concurrent performance and highly fault tolerant behaviour.
We try to look at it though “architect glasses” and avoid tying it to Erlang. Can the ideas and patterns be re-used in other languages? How was Akka influenced by OTP? What has Elixir brought to the table?
|Security & (Web) Security Vulnerabilities||Overview of the most common security mechanisms. Exploration of security vulnerabilities (not necessarily related to the mechanisms :)) as seen from the perspective of web.|
|Rich Notifications in iOS 10||A introduction to iOS 10 new notifications. How to add images, videos, questions etc to your notifications. The session will handle local notifications.|
|JavaRX and Retrofit for Android||How can an Android app leverage the powers of Reactive using RxJava and Retrofit 2.0? A short intro to RxJava and Retrofit 2.0 and then a lab where we will try out some basic use cases of RxJava and Retrofit.|
|Cloudshed: Intro PaaS on Azure and AWS||Cloudshed is a series of sessions aimed to lower the threshold for adopting Cloud in various projects. In this session with introduce some of the PaaS offerings available on Azure and AWS.|
|Authenticating the user with Swedish BankId and Finnish MobileId||Sharing project experiences|
|Caching||There are many ways to Cache things with Java. Let’s walk through different Cache annotations(Spring and JSR-107) and different Cache implementations and see what we can use. Also some pitfalls and war stories etc|
|Stop using Personas||This is based on a 10 min session that challenges the use of Personas and suggest a more agile method. The discussion afterwards would revolve about pros and cons on
– current persona use
– how may the suggested slice method work?
|Cloudshed: Deploying web app to Azure and AWS||Cloudshed is a series of sessions aimed to lower the threshold for adopting Cloud in various projects. In this session we will have a hands-on lab on adapting and deploying a simple web app to AWS and Azure.|
|Swift + Backend – an introduction||For Swift beginners: A lab to try out Swift where you write a simple backend app in Swift, based on the framework Vapor.
For iOS/Swift developers: A lab to hack on Vapor, a backend framework written in Swift, for Swift developers, and deployable to Heroku (Vapor).
|Purescript – Introduction and overview||Lets explore the world of strongly typed, purely functional programming for the web. This introduction to Purescript will try to give a good overview of the language and its’ features.|
|Android Atlantis – Mocking the Internet||We’ll have a quick look at how one can “mock the Internet” for an Android app using the Atlantis library.
We’ll look at this from both a testing perspective as well as a early development point of view.
|How to Build Habit-Forming Products||The “Hooked” model by Nir Eyal.
This will be an open table discussion and we will watch a 40 min video where Nir Eyal talks about his “Hooked model” where he explains how to Build Habit-Forming Products.
|Purescript – Getting started lab||In this lab we get started with the Purescript language. Since the language is very different from what most people are used to, we will focus on the basics suchs as functions, records and algebraic data types. We will probably not have time to go into frameworks and web development.|
|Windows 10 on Arduino||Run Window 10 on an Arduino and control it remotely via bluetooth|
|Better Retrospectives||Theory about holding retrospectives and discussions of our own experiences of retrospectives.|
|Elevator challenge||Tired of standing waiting at the elevator? How should they really work?
Join this programming challenge on how to make a system of elevators work. You will be given tasks in increasing difficulty. The first ones should be solvable by anyone. The final ones will be challenging to everyone.
Prize to the first one to solve all challenges. (Or the one that have solved the most when the time is over.)
Interested in a specific topic? Get in touch with us and lets talk! :)
At the end of a competence event, we have a retrospective where we explore how to improve our future competence events.