Immutable data

May 05, 2016 by Madalina Botez in  Announcements

Enjoy the following series of interviews with the speakers, top-notch software crafters from across Europe, joining  I T.A.K.E Unconference, Bucharest, 19-20 May. Discover the lessons learned and what drives them to challenge the known path in their field. 

Ricardo J. Mendez, founder at Numergent, is a software developer with 20 years of practice. He will share in his talk at I T.A.K.E Unconference 2016 more about immutable data.

 

i-take-unconference-speaker.004

#1. SHARE TOP 5 THINGS YOU DID THAT HELPED YOU GROW & BECOME THE PROFESSIONAL YOU ARE TODAY

Starting my own business, leaving the comfort of a company where you get a certain sense of security by deriving a regular salary, and having to deal with the hidden iceberg of new skills  I had to learn but hadn’t realized I didn’t even know about.
Joining my first start up, which wasn’t the same as a usual job, nor with the degree of control of just running my own business, was a great learning experience on how to deal with uncertainty while still aiming to provide a measure of direction.
Realizing that, as a developer, your job is not to deliver code. Your job is to keep the user happy, and delivering code is only a part of that. It requires a mental shift from the technology-focused mentality one tends to have as an engineer.
Working with distributed teams, and learning to adapt to the different work and communication styles of people from different countries, has made a huge difference in adaptability, and has taught me to not assume the message is always getting across.
Going through several technology trends and epochs, seeing language and platform flame wars rage and abate, trying a bit of everything, helps come to grips with the idea that a language or a platform is just a tool, and it’s what you do with it that matters.

 

#2. What challenges will the participants find solutions to during your session at I T.A.K.E Unconference 2016?

The idea that being unable to modify your data can bring more flexibility is unintuitive.
However, the bigger our codebases grow, the harder it becomes to find out if a refactoring process, or even a seemingly small change, will have a negative impact. Test suites can reduce this uncertainty, but normally only inform us of a problem *after* we’ve made a change.  There’s usually no way to know, in advance, how time consuming the side effects of a modification will be.
A shift in mentality towards data immutability, whatever the language we are using, will help structure the code and functionality in a way that makes it easier to grow and change down the road.

 

#3. What else would you like to share with participants ?

I assemble and lead project-specific teams to tackle challenges involving interaction design, data and open source. I’ve been working on software for over 20 years, across multiple industries – from desktop tools, to banking and financial institutions, to healthcare, to gaming.
I usually work with distributed teams, as I’d rather take the expertise where I find it than expect it to be around the corner, and it leads to interesting, varied teams with different perspectives.
A voracious reader, of both technical and non-technical books, it would be strange to find me without one or two tomes in progress.  This extends to platforms and languages – I very much enjoy kicking the tires on both, always looking for something new to learn.

logo ITAKE 2016

Want to join Ricardo and many more software crafters from around Europe?Join I T.A.K.E Unconference 2016!

Programming contest @I T.A.K.E Unconference

May 05, 2017

As for every I TAKE Unconference edition, we want to give a chance to the software crafters from the audience to showcase their skills and learn more in the process. And because we appreciate passion, we offer a prize to those who convince a jury of well-known international developers that they are the most skilled in the room.

This contest is not meant to be easy. It will require you to practice beforehand, so please read the instructions carefully.

It will also require you to register before the event.

Mechanics

  • IMPORTANT: Register to the contest latest one day before I TAKE Unconference by sending an email to steliana.moraru@mozaicworks.com 
  • On the first day of the event, after lunch, you have max 15′ to do a performing kata in front of the jury.
  • The winner will be announced at the end of the second day

Constraints

To simplify the jury’s decision, the performing kata has to conform to the following constraints:

  • Only the following programming languages are accepted: Java, C, C++, C#, Python, Visual Basic .NET, PHP, Javascript, Swift or Ruby
  • Only solo contestants are accepted. Sorry, no pair programming this time
  • The kata has to showcase refactoring skills.
  • The kata has to last max. 15′

How we will judge

The jury will judge your refactoring skills.

The ideal kata looks like this – you will get maximum point if you:

  • clearly state the smells you see in the code
  • pick one of the smells
  • clearly state your plan to fix the smell
  • fix it in small, safe steps
  • run tests after each step to prove you didn’t break anything
  • commit after each step with a clear message explaining why you made the change
  • fix as many smells as possible within the time constraint

You will loose points if you:

  • make big or unsafe changes to the code
  • break the behaviour after changing the code
  • don’t improve the code a lot
  • don’t improve the design by the end of the kata (hint: we judge design using SOLID principles and the four elements of simple design)

Recommendations

To help you, we’ve thought out what we would do if we participated to such a contest. Here’s what we recommend.

1) Use one of the following codebases for the kata:

2)  Practice beforehand on the structure we presented for the ideal kata. Ideally find someone to practice with.

3) Watch other people refactoring. YouTube has many videos on the topic, including using the recommended code bases.

Glossary

A programming kata is a repeatable exercise used to practice specific skills.
Performing kata means doing a kata in front of an audience.
Refactoring means changing the internal structure of the code without changing its behaviour.

Call for speakers open

Sep 04, 2014

door-open

We have opened the call for speakers. For next year we decided to keep the topics that you hold dear: architecture, design principles, TDD etc. and also add some new areas that are becoming more and more popular these days: mobile, big data, scaling architecture etc. Visit the page to learn more.

If you know somebody that has something valuable to share with our audience, we’d appreciate it if you shared the link for the call page.

***

Have any questions about the call for papers or the unconference? Let us know in the comments.

[newsletter-form]

Leave a Reply