Functional programming — A BitBakery Knowledge Nibble

Continuous learning is one of our core values. Every BitBaker brings their own unique experience to deliver for our customers’ projects.

Once a month, we get the team together for a lunch and learn series we call Knowledge Nibbles. We bring in catering from one of our favourite locals and take turns presenting a subject to the team.

The October learning session was lead by BitBakers Marcel Rusu and Pablo Morales. They presented an intro to functional programming with lunch from the Lancaster Smokehouse.

As a provider of outsourced software development, we work with a lot of different stacks. Two different customers might even use the same framework, but use different versions. We use continuous learning to build a deep understanding of the frameworks we use.

“You can learn a lot more by developing an understanding of the technology first.” said Pablo. “If you’re just running around asking questions because you don’t know the answers and not making time to learn, you’re not growing as much as you could be.”

Marcel has been following the concept of functional programming for a few years now. Both Marcel and Pablo studied computer science at Wilfrid Laurier University. “He kept talking to me about functional programming in second year and I didn’t really get it until I finally had the chance to work with React.” said Pablo.

Their talk focused on two principles of functional programming: declarative programming and immutability. Declarative programming is a shift from telling the program “what to do” instead of “how to do it”. You focus on the flow and structure of data before you type in your first line of code. Declarative programming makes it easier to see how data flows through your code. You’re also less likely to make simple errors that occur when you swap variables.

Immutability builds on the idea that state changes are the cause of most bugs. These changes can be implicit or accidental. An immutable date type is one that is never changed. Using immutable data types reduces and even eliminates these bugs. What can be an immutable data type? In Javascript, primitives like numbers, strings, and booleans all can be immutable. Other languages differ in the mutability of their standard types. Some allow for immutable arrays, others allow for mutable strings.

Marcel and Pablo chose the topic because of its rapid adoption in the industry. “What’s interesting is that web is leading this. It’s almost a decade ahead of mobile for moving into declarative.” Marcel feels that many people still have trouble explaining functional programming. “Many people use functional programming in frameworks like Angular and React, but I think it’s still hard for many front end devs to easily answer ‘what is functional programming?’”

Before diving into functional programming, Marcel recommends asking why are you using it. What benefits does it offer your development team?

“It’s really important to understand the technologies we use,” said Pablo. “We use a lot of different frameworks, and it’s important to build a deep understanding of them. Three months ago, I wouldn’t be comfortable explaining things to the team. Now I feel like I can really help Marcel and Edson.”

Marcel and Pablo both agreed that getting a chance to present was rewarding. “We’re both pretty passionate about talking and sharing. It’s exciting to do that here at BitBakery.” said Marcel.

Our newest BitBaker traded Avenida Atlântica for King Street West

Edson standing on King Street in Kitchener

Finding and hiring great tech talent isn’t just a problem in Silicon Valley. It’s an issue wherever your company is located – and it’s one companies here in Waterloo Region struggle with every day. 

Sometimes you have to go looking for talent outside your postal code – Toronto, Hamilton- even Ottawa. There are times when you have to search a little farther – and it was one of these searches that lead us to Indaiatuba, Brazil and our newest BitBaker – Edson Mesquita.

Earlier this year, we participated in a recruiting event run by Vancouver-based VanHack called VanHack Leap. Hosted at the Communitech Hub, VanHack Leap brought 15 developers from around the world to meet Waterloo Region tech companies. It was a great way to meet developers who we would never normally get a chance to meet. Once a connection is made, VanHack works to arrange for the necessary visas and helps with moving arrangements. 

Edson, his wife, and his cat landed in Canada in late September and they’re getting settled in to life in Kitchener. Edson is from Indaiatuba which is located outside São Paulo. If you’re like me, you’re asking why someone would move from warm Brazil to soon to be winter Canada. “Well, Canada is a first world country, it’s polite and chill and I feel I am the same way,” said Edson. 

Edson brought us these delicious snacks from back home in Brazil. Pé de Moleque, Paçoquita, and doce de leite. They did not make it past the first day.

Edson also was looking to work with a smaller company that worked on big projects – and that’s just what BitBakery is. “I prefer smaller companies where you can get to know everyone you work with,” added Edson.

It wasn’t just our team size either – it was our taste in burgers, specifically Union Burger in Downtown Kitchener. “It felt like destiny,” said Edson, “it was one of the first places I ate at here in Kitchener and then I find out that the team orders from there weekly.”

Moving to a new city can be difficult – moving to a new country is an entire order of magnitude harder – but Edson has a plan on how to meet people. “I love board games, they are great ways to meet people.” He’s picked a good place too – with our local board game cafes like Games on Tap, The Adventurers Guild, and The Round Table.

While education and healthcare are important for Edson and his wife, the quality of living and proximity to Toronto were also factors in deciding on Kitchener. “Indaiatuba is the same distance to São Paulo as Kitchener is to Toronto,” added Edson, “I’d rather live in a small, tight community that’s close to big events and sports.”

As for why Canada over other international destinations, “…you go to other places to be rich, you go to Canada to be happy.”

Welcome to Canada (and to BitBakery) Edson!