Codemotion Milan 2019
October 27, 2019   ·  7min

Day #1

Code Splitting with React Native

Karan Thakkar @geekykaran - Sr. Software Engineer at Skyscanner

Keynote for iCloud

In ProntoPro we use React Native (RN) and we continuously try to make our mobile app better. How could we not follow Karan's keynote? The topic was very simple: code-splitting in RN. Karan explained us how in Skyscanner they figured out how to split their mobile application bundle in chunks. The solution is surprisingly simple: they applied the same code-splitting technique used for the web (webpack) in the RN code. In order to do so they wrote an asyncRequireModulePath and some Objective-C code to let the engine load the correct chunk in memory when needed.
Fun fact: during the talk we immediately opened an issue in our repository to implement this trick and make our mobile app faster and more responsive.


Talking with Tech Leads

Patrick Kua @patkua - Chief Scientist at N26

Talking with Tech Leads (CodeMotion Milan October 2019)

In his talk Patrick shared with us some useful tips about the tech lead role and responsibilities. There are indeed frequent misunderstandings on the role and the path that leads an engineer to become a tech lead. A common mistake is to think that there is a single path career where every senior engineer eventually becomes a tech lead. But the reality is different. Being a Senior Engineer won't always mean you can become a tech lead. You could stick with being an Individual Contributor and still give a vital contribution to your company. If you are into becoming a tech lead, instead, there are some side skills you need to take care of in order to fill the gap between being tech expert and being a tech lead: skills like empathy, communication, coaching, delegation, conflict resolution, feedback, motivation, self-awareness. In conclusion, a tech lead should be in the intersection of three sets of skills: architecture, development and leadership.


Stack Wars: functional programming strikes back

Michele Riva @MicheleRivaCode - Sr. Software Engineer at Openmind

Stack Wars

Functional programming (FP) has definitely been a buzzword in 2019 and we couldn't resist the temptation to attend Michele’s talk. Michele made us travel from Alonzo Church’s lambda calculus to the meaning of functional programming, moving then to the modern functional languages like Haskell, Erlang, OCaml, Scala adopted by some of the biggest players of the digital market. In ProntoPro we are just introducing some FP in our codebase, so we found very useful to have this kind of overview and that made our hype about FP grow even bigger!


Your people are your competitive advantage

Azzurra Ragone @azzurraragone - Branch Principal Manager at BurdaForward Italia

We decided to follow some soft talks too, because we think that soft skills matter. People management is a crucial topic that all companies at a certain point need to face, especially growing startups. The beauty of people management is that there is no magic recipe; each company needs to find and set up its own management culture. From Azzurra's talk, we brought home the following thought in particular. What binds an employee to a company can be mainly divided in two categories: intrinsic motivators (e.g. challenges, company vision, etc.) and extrinsic motivators (e.g. salary, facilities, etc). We have to be careful and make sure there is balance between them because extrinsic motivators often tend to kill intrinsic ones. In particular, Azzurra presented some fascinating advices to create a great culture and environment; they may look a bit utopian but keeping them in mind could definitely make the future of your company brighter.

Continuous Performance

Maurizio Mangione @granze - Developer Relations Advocate at DAZN

Context in king: with this edited quote Maurizio went through the meaning of performance in the Tech field. In some cases a good performance means TTI (time to interactive); in other cases the perceived performance is more important than the actual one. So, as always, in engineering it depends on the situation and on the business. Here some useful tools Maurizio shared with us:

Sharing web UI components across multiple teams

Xavier Lefèvre @xavi_lefevre -VP of Technology at Theodo
Ambrose Surya @AmbroseSurya - Lead developer at Theodo

For the teams that work with monorepo like our frontend team in ProntoPro, it is always extremely useful to listen to how others engineers face problems that come with such an approach. Xavier and Ambrose gave us some great tips about building and maintaining a shared UI library across the teams in a monorepo. They ranged from the documentation to the folder structure, from the maintenance tools to the packages versioning. We brought home lots of tips to apply to our architecture.



Day #2

Typing like a Pro (with TypeScript)

Enrique Amodeo @eamodeorubio - Senior Full Stack Engineer at Contentful

TypeScript (TS) is becoming ProntoPro first frontend language so we're definitely after TS talks. I really loved Enrique’s way to present the argument. He basically started from a simple example: building a fake trading platform. From the JavaScript code he added /types/ to functions as a newbie would have done, so for instance: when an object property depends on another property we need to make it optional. And the more “optionality” he added the more the code became messy and the less leveraged the TS super–powers. After that Enrique showed us how to transition from that code to code that fully exploits TS, it needs less testing and documentation, and it is easier to understand.


Transforming the Way we Work - Developer Culture and Inclusion

Christiane Goebels @christiane_404 - Developer Culture Advocate at SAP SE

Christiane's one was an interesting soft talk about development culture and inclusion. The daily routines at work can hide pain points that might affect employees' lives. The reality is that people can feel excluded even if they work for a company for a long time.
A way for creating a positive and healthy working environment is to build a strong culture that leads people not to be afraid of raising their hands and externalise their feelings. This was to us a great inspirational talk and a confirmation that in ProntoPro we are going in the right direction about this delicate subject.

Scalability and Growth of the Tech Teams: challenge accepted!

Alessandro Confetti - Lead technologist at ThoughtWorks
Akhilesh Gupta - Sr. Staff Engineer at LinkedIn
Piergiorgio Niero - Head of Engineering at SuperAwesome
Alessandro (cirpo) Cinelli - Engineering Manager at DAZN

The format of this talk was a panel discussion. Alessandro, Akhilesh, Piergiorgio and Cirpo shared some very useful thoughts on how to scale up and grow as a tech company. This is an issue that every startup needs to solve if they want to endorse the business growth. It is really hard to summarize the entire discussion, but here is a key point that stack in our mind: creating independent teams environments is crucial if you want to scale things up. The more independent the teams are the more they can make the right choices and take impactful actions.

How to write type-safer React & Redux applications

Jiayi Hu @jiayi_ghu - Freelance Front-end developer

talks/type-safer-react-redux at master · jiayihu/talks · GitHub

Did we already say that we do love to attend TS talks? 😀
Jiayi pushed to a further level what we had just learned in the morning. He basically showed us some advanced typing techniques like opaque types and branded types. He also demonstrated how to create a final-state-machine (FSM) by only adding types to objects and functions. That was mind-blowing. Eventually he went through these concepts and applied them to React and Redux applications.


Impact

Luca Mezzalira @lucamezzalira - VP of Architecture at DAZN

IMPACT. That was the title of the inspirational closing keynote from DAZN’s VP of Architecture Luca Mezzalira. Three stories of people that had a big impact despite their positions/roles in the companies they worked for. There is nothing to add, it was a great motivation push up! In the last slide Luca gave us some tips for our Software Engineers career.


Conclusion

Codemotion became year by year a must-attend conference for tech people. It is a full immersion in bleeding edge technologies, inspirational and motivational pills, and communities. For this reason talks touch a very wide range of topics, so you have to figure out your own way through the agenda by picking the path you like the most. One sure thing is that you'll go back home enlightened!