Code Splitting with React Native
Karan Thakkar @geekykaran - Sr. Software Engineer at Skyscanner
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
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
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.
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:
- Online calculators Performance Budget Calculator
- CI checks with bundlesize CI or Lighthouse CLI
Sharing web UI components across multiple teams
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.
Typing like a Pro (with TypeScript)
Enrique Amodeo @eamodeorubio - Senior Full Stack Engineer at Contentful
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
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.
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.
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!