Notes from the sessions:
Under the umbrella (elixir) @gemcfadyenInteresting and very practical presentation about how to organize and structure elixir application using the umbrella concept (http://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-apps.html). You have all the advantages of the microservices and you remove some of the cons because you bundle the services together with explicit dependencies. Georgine used https://github.com/gemcfadyen/umbrella_romanNumerals as example. She also commented https://github.com/elixirkoans/elixir-koans for learning elixir.
Craft thinking @mashooq(Book Craftsman by Richard-Sennett)
Very interesting reflections on the crafts in general and the craft in the development of software. The ideas come from the book Craftsman (Richard-Sennett) and the interpretations from Mashooq. Great insights and very interesting discussion.
Some random notes:
- Craftsmanship. Human Impulse. The desire to do a job well for it's own sake.
- We should always consider "How" and "Why" we make something...
- From "problem solving" to a combination of "problem finding + problem solving". Finding problems is also a skill to learn.
- Motivation matters more than talent
- We need imagination to learn. We also need fail (a very important note for mentors...)
- Learn to apply the minimal force needed (in software we should compare this idea with the use of frameworks... ;) )
We discussed and explain why we create this design and what was the tradeoffs... I hope that this session was interesting for someone :)
The handsome crafters @eferro & @borillo in 'Tell us your Architecture'. :-) pic.twitter.com/kWN3VygwWG— Antonio de la Torre (@adelatorrefoss) 7 de abril de 2017
Building learning teamsA round table about how we can introduce a learning culture in a software development team or company. This are some random ideas:
- Do food
- Lean coffee (initially with a meta topic or about a shared interests)
- Skill matrix
- Know your company
- Introducing learning time in work hours (with the possibility to extend after work hours). A good idea to this kind of learning is Lunch & Learn.
- The company pay pluralshight or similar but remove the service is not used. You don't use it, you lost it.
- Some reserved time: Give a tech talk, and as fallback, show a recorded talk and as a fallback a refactoring session or a mob programming session.
Personal productivity. @gardenunezAnother round table about how we can organize ourselves, as obsessive people, to be productive and not going mad in the process :)
Some tips about focus, pomodoro technique to deal with procrastination, making a list of the things that really matter, and so on...
And also some comments about not pushing to hard to ourselves... :)
Non Violent Communication Miguel CruzA good explanation about the how to have better relations and real connection using non violent communication. This kind of communication is a difficult skill that can be learned using the book Non Violent Communication book or going to a workshop or participating in some of the related communities (like the new created group in Barcelona).
The overall process consists in the following steps:
- make the observation (without judgement)
- express your feeling (it's difficult to separate feelings and opinions)
- express your needs
- making a request (in a concrete way). Is a request, not a demand, so it can be rejected.
- Self empathy
- Empathetic listening
- Be able to express in an empathetic way
I already read the book, but it requires practice. This skill can change deeply your relationships and life... so it is no easy, but ￼deserves the effort :)
Serverless with AWS Lambda @mashooq (I acted as host)This was a session hosted by me to ask Mashooq about codurance's experience using AWS Lambda in production. The session was divided in two parts, the first one was a presentation about this codurance's project and the second one was a discussion to identify if in my use case, have sense or no to consider using lambda.
- Bad choice for constant load
- Force you to focus on business code (not in infrastructure)
- Good base for security, scalability, performance
- 1º understand the lowlevel stuff using aws api or/and aws cli, before using any framework or abstraction (apex, claudia.js, etc)...
- Prepare for runing localy from the day 0. Developing any mock/glue code needed.
- For web servers:
- Latency problem to serving http request with JVM based languages. The startup/bootstrap process have a huge latency. They implement a periodic ping to avoid the stop of the containers, but this is not an elegant solution.
- If you serve the frontend (js, html, css) from CDN, is difficult to synchronize with backend code. They need to invalidate the CDN resources and this cost money.
cost model - request based (pay by request)
strong infrastructure abstraction.
Another alternative for a web application using a JVM, than also have a strong infrastructure abstraction is Elastic Beanstalk
The second part of the session was a conversation about the possibility to use lambda for my use case, but for this part I will generate another post when I make the initial testing... In summary, seems that Lambda can fit our problem, but we should make the calculations about cost.
Taming the monolith @mashooqThis session gave some ideas about how we can divide a monolith and how we should have in mind where are the vector of changes, because there is no best approach, it always depend of the nature of the change/evolution request that our system have.
Two powerful ideas:
- Have in mind, at all levels, coupling and cohesion (for modular decomposition, to identify bounded contexts, to deine service limits, etc.)
- Include the user journey
Some random quotes from this session:
- "We need everybody to be architects" Mash
- "Architecture. Design that is difficult to change" Mash
Liquid modernity @jordianguela
Vuex + IDDD @nestorsalceda, @gualison (from the codingstones)
PostgreSQL @juanignacioslA great presentation of the advances features of PostgreSQL... it seems to be the most powerfull DB... is the "Swiss army knife" of the databases... (relational, document oriented, pub/sub, with GIS extensions, rich data types...)
These are the slides of the presentation POSTGRESQL The one tool to bring to a desert island
Other sessions, lightning talks and conversations:
- Mental health
- Different organizations (codesai) (book Reinventing Organizations)
- How the codingstones distribute the profits (codingstones)
- pointers in go
- gendered language
- carbon offset / climate change
- Mob programming sessions
- Non Violent Communication by Marshall Rosenberg (Book, workshops, training...)
- Reinventing Organizations by Frédéric Laloux (Book)
- The art of destroying software by Greg Young
- How to get better at the things you care about by Eduardo Briceño (TED talk)
- SPIN Selling by Neil Rackham (Book)
- Start with why Simon Sinek (Book and TED talk)
- Coursera Learning how to learn
- DDD Fundamentals on pluralsight.com
- Thinking Fast and Slow Daniel Kaleman
- lazymanifesto.org and lazymanifesto.org/principles.html
- Neuland markers (for drawing and sketchnoting)
- The back of the napkin (book on drawing)
- Bikablo (books on drawing)
- The loudest duck Laura A. Liswood
- Is postgreSQL good enough?
- Safe and unsafe operations for high volume PostgreSQL
- The Devops 2.0 toolkit by Viktor Farcic
Personal feelings and notes:
- Somehow I improved my English so I interacted more and with more people :)
- Old friend, new friends... I like this event...
- Great idea to come with the family and use the event as excuse to have family time at Canaries.
- I returned home full of energy.
- Great to have more developers from TheMotion attending this kind of conferences... The Socrates is a great introduction to the Software Craftmanship community and to the unconference format. Thank you @gardenunez for coming to this event.
- I love the open space format.
And of course to @eidrien for being the facilitator.