I have been a developer for the past 7 years. I've gone through a lot of code reviews during that time. I have devoted my time to learn good software engineering practices through C#. Last year, my passion for performance engineering took off. One thing that has always been important for me was to be … Continue reading Introducing DotNet.SystemCollections.Analyzers
Welcome back to my online text adventure series. Let's discuss what is the game about and what makes it interesting for me. First, let's ponder on why, while the new generation of gaming is upon us, I want to build a text-adventure game. Well, it's an easy question to answer. I want to build an … Continue reading Why build a text-adventure game?
Hi, This marks the beginning of my new passion project. As per usual, many different fields in software engineering pique my interest. I aspire to get to know different fields and continue to grow as a software developer. Beforehand, I thought I’d get to build a web platform and also a game. I decided to … Continue reading Introduction to the text adventure
Resiliency against change & avoiding regression The real cost of software isn't the initial development, but the maintenance over time. In time, the requirements will change, there will be new feature requests and the business might change direction. With all those undeniable changes coming to the code, there's a real need to make the systems … Continue reading Testing your software system with resilient randomized tests
Hey everyone, First, for those who don't know the F# Software foundation, here's a link 🙂 In a few words, their mission is the following: The F# Software Foundation is a community operated, not-for-profit organization dedicated to our mission. As an organization, we actively encourage a diverse community of F# developers to join us in … Continue reading Running for the F# Software Foundation board
Hi everyone, I think the title of this post says it all mostly. I am not here to judge you, this is me talking about my own journey and sharing my random thoughts on my blog 🙂 The way I see things is that the software field is a very fickle field in fact. We … Continue reading Be proud of your work and keep on learning everyday
Hi, It's been a few weeks and I apologize. The recent events are tough on everyone and it's getting a bit harder to find the focus to keep going on personal projects and my blog. So, something newsworthy happened to me in the past few weeks. Initially, I was working on with a design team … Continue reading Learning about leading projects and building web projects with F#
Hi everyone, C# 8.0 has brought up a lot of great features and among them there is the 'Nullable Reference Type' feature. Probably the most impactful feature of C# 8.0 is Nullable Reference Types (NRTs). It lets you make the flow of nulls explicit in your code, and warns you when you don’t act according … Continue reading Handling Missing Info in .NET
Hey everyone! I don’t know who has already seen this but I want to make sure it’s visible everywhere! Zaid has been putting so much energy building awesome tools and documentation around Fable! Now, he has released publicly a book on developing web applications through F# and Elmish! Here’s a snippet of the readme: The … Continue reading The Elmish Book by Zaid Ajaj
Hi to all, You're here today to hear about this new application that we'll be building during the next few months. F# Background I've been introduced to F# by my old mentor during an internship back in 2016 and had the chance since then to work on multiple projects with it on projects such as … Continue reading Building a production-ready full-stack web application with SAFE – 0
For the uninitiated, F# is a general-purpose programming language found in .NET. Contrary to C# who promotes objects as its first-class citizen (can receive and output objects in methods), F# promotes functions at its first citizens. This means that the preferred way of doing this will be through functional programming, but it doesn’t meet that … Continue reading Baby steps with F# and functional programming
When you’re designing a performance-sensitive computer system, it is important to have an intuition for the relative costs of different operations. How much does a network I/O cost, compared to a disk I/O, a load from DRAM, or an L2 cache hit? How much computation does it make sense to trade for a reduction in I/O? What is the relative cost of random vs. sequential I/O? For a given workload, what is the bottleneck resource?
When designing a system, you rarely have enough time to completely build two alternative designs to compare their performance. This makes two skills useful:
- Back-of-the-envelope analysis. This essentially means developing an intuition for the performance of different alternate designs, so that you can reject possible designs out-of-hand, or choose which alternatives to consider more carefully.
- Microbenchmarking. If you can identify the bottleneck operation for a given resource, then you can construct a micro-benchmark…
View original post 312 more words
Hi, So I stumbled into this amazing gem and also this one! Seriously, go check those ASAP 😀 They'll provide free courses made available by universities and I've found so many that I want to do, but I'll have to restrict myself otherwise I won't find the time to do them all but here's a … Continue reading A few cool courses to do
Hi, So we're one week into the F# mentorship program and I've got some progress to share. I've had the chance to met with my mentee and that went really great! He has signed up to get an introduction to the language and that's exactly what we've planned to do. We've went over some fundamentals … Continue reading Week 1 F# Mentorship: Full-stack web app + ML experiments
Hi, So I wanted to talk about the very first project that I've shared with my team when I started at Robotmaster. My team initially told me that if there was anything I could bring up that I felt could help them in any way, I was free to do so. I'd really like to … Continue reading Running internal hackathon to spark innovation and collaboration
Hi, Last year, I started to contribute on Exercism. For those who do not know what is Exercism, in a few words it's Exercism aims to provide opportunity for people of all backgrounds by helping them develop their programming skills through practice and mentorship. We provide thousands of exercises spread across over 50 language tracks, … Continue reading Mentoring C# and F# developers on Exercism
Hi, Last fall, I've entered the 7th round of mentorship with F# community. It's a great program and it's also free. I have the chance to meet a great mentor that taught me a lot about F#. For 2020, I've also entered the mentorship program of the Winter period as both a mentee and … Continue reading 8th round of F# mentorship program
Hi, So it took some work but today I earned my yellow belt in Python on CodeWars. Now, I'm focused on getting familiar with the internal APIs of Python. When I finally earn my blue belt, that's when I'll start focusing on big O from the get-go. I still make sure my code isn't inefficient, … Continue reading Earning my yellow belt in Python
Performance engineering has been something I've been pushing at my job for the past few months. We've had performance issues that needed to be solved and it felt like even if we fixed them, we could still get hit by a regression. So that's when I started to research online to find a solution to … Continue reading Early steps in performance engineering
Hi everyone, Presentation made by Jeff Dean, the current leader of the Google AI division Each talk bring excellent points to keep in mind while designing a system that will scale at large We can exclude the information related solely on distributed systems and focus on the common principles for software design Designs, Lessons and … Continue reading System Design Principles from Jeff Dean
Hi, About a week ago, I started training with my algorithms and data structures skills with Python. Today I had a small victory. I've finally ranked up to 7th kyu with Python 🙂 My top language, for now, is C# in which I'm ranked at 5 kyu (yellow belt) almost at 4 kyu (blue belt). … Continue reading Ranking up to 7th kyu with Python
Hi, Today I feel extra motivated so I've decided to write more posts. So, before the end of 2019, I spent a lot of time thinking on how I wanted to grow during the year and the next ones. One thing that needed to change in my routine before I could start being serious about … Continue reading Waking at 5 am to get stuff done
Hi, Last year, I saw a few functional programming languages had repositories on which you could find companies that use those languages. Because that looked like a fun initiative and I couldn't find an equivalent for F#, I created one and shared it on a few social networks like Reddit. I'm writing about it now … Continue reading The F# company list
Hi, One of my biggest goals in 2020 is to dive deep in Python and machine learning; two things I haven't really explored in the time I've been in tech. That's about to change. Even though I have experience with other frameworks and programming languages, I do not consider my self as an "experienced Python … Continue reading My master class in Machine Learning & Deep Learning with Python
My definition of success for the start of the decade is a complex answer that deserves my utmost attention. Why is it a complex topic? It’s composed of many layers that my life revolves around. Stepping out of the comfort zone First, I see that change is something that I’m comfortable staying away from and … Continue reading How can I be successful in 2020?
Hi readers, This year has been a big one in the field of software engineering for me. My close friends know that F# has always been a technology that I loved and I promised myself I would start doing more F# development than I have ever done before. FSSF I've joined the F# FSSF community … Continue reading Experiments and Adventures in 2019 with F#
Why does functional programming matter? Functional programming is the new hotness right now, but regardless of the hype, most modern programming languages are introducing FP-friendly features that make a big difference to software quality: Delegates LINQ Read-only properties Pattern matching Readonly value types Tuples As we’re adding features and applying good software engineering practices, we’re … Continue reading Promoting F# in a C#-based team
Hi everyone, Today’s post is targeting students in college. The main idea is to sell you the idea of participating in the Google Summer of Code program that Google host every year since 2005. Oh and by the way, this is just free publicity, the program does not provide any money to me in order … Continue reading Why students in college should participate in Google Summer of Code (GSoC)
Hi, For those looking for new ways to kick off 2019 with a bang with your .NET skills, keep on reading 🙂 1. Leverage more LINQ in your C# code Lately, functional programming has been a really hot and trending topic. C# is becoming more of a functional programming language to stay on par with … Continue reading 3 Tips & tricks for Kickass Developers in 2019
Hi, Quick word on LINQ So today's post is going to be focused around LINQ which is an acronym for Language INtegrated Query. For those who are unaware and would be interested in learning more about LINQ, I invite you to go on this page. In a few words, LINQ is the name for a … Continue reading Tech Questions #4: Should I use ToArray/ToList in LINQ queries?
Hi, Quick post, I promise! I update my blog and you can now follow me on the social networks I'm active on 🙂 I created a YouTube channel to share my experience and knowledge, but mostly, to document my experiences as I'm trying to pick up new skills and maintaining acquired skills. On my Instagram … Continue reading Follow my social media activity
Hi readers, It has been way too long since my last post and I'm truly sorry. I've been reflecting on my year of 2018 workwise and some part of it wasn't so fun and I wanted to share my experience. I have had a total three different employments that year and I went on 35-40 … Continue reading Onto finding my dream job
Hi, I'm starting the year by taking a look back to last year. A lot of things has happened and right now, I'm looking ahead for things to come. Many things happened to me. I'm trying to sort them out. January - August 2017 Those were my last months as an undergrad student in software … Continue reading 2017 successes
Hi, Today, I'm going to talk about an open source gem in .NET for developing WPF applications for people who are interested in reactive and functional programming. To understand the work behind ReactiveUI, one mst understand Rx, or rather Reactive Extensions for .NET. The goal of the syntax of ReactiveUI for read-write properties is to notify … Continue reading Hidden .NET Gems – ReactiveUI
Hi, I've learned about the magic of the method Combine from Path a few months ago. Usually, even in production code, we tend to use string concatenation through either directly using '+' or StringBuilder. Thing is, you do not want to directly use string concatenation to build your path. Try to think about using your … Continue reading Hidden .NET Gems – Path.Combine
Hi, I've started a job as C# software engineer consultant on the 15th of this month. It's given me the opportunity to go back over my XAML with WPF and Silverlight and doing some refactoring with C#. Doing so, I've been pushing my C# foo & re-discovered some things that I hadn't use in a … Continue reading Hidden .NET Gems – Aliased generics
Hi, This is my third and probably last post of the day. As you probably know, I'm currently in the process on working on multiple projects and getting out of my comfort zone and I'm going to share my experiences right here with you, readers, so may not have to go through the same challenges. … Continue reading SmartSavings: Go full-stack mobile dev – Part 0
Hi, I'm picking web and mobile development lately as they are super trendy at the moment. But it's more than that. I'm a firm believer that in this profession, software development, we can't keep still. We ought to ourselves to move way outside our comfort bubbles and try new things even if it's a small … Continue reading FastOrder: real-time pizza order placement – Part 0
Hey guys, This is a new series I will try to maintain to the best of my capabilities. I'm this awesome blogger who happens to be also a Microsoft MVP called Iris Classon. After her first year of programming, she started to ask and get answers for what she'd call "stupid question". Why would she … Continue reading Tech questions 1-3: Linq
Hi guys, I've spent quite some time in the past using the Roslyn API, in an internship and during the Google Summer of Code 2015. Thought I'd be a great idea to present it here. The .NET Compiler Platform, known by the name of Roslyn, was made available to the public as an extension to … Continue reading A better tomorrow for source code with Roslyn
Since Push requires stacks to manipulate its data, we need an implementation of this data structure. There is of course a .NET implementation, however, it is not a “functional” data structure, in a sense that it is mutable. It is easy enough to implement our own, purely functional, immutable stack.
F# list is a logical choice for an underlying implementation. It derives from Seq (i.e. implements all IEnumerable flavors), has a useful length property which we would like to have for our stack as well:
What remains is to implement basic operations, which are all static members of the Stack module.
These are pretty straightforward. pop function has a slight quirk: we would like to return both the value of the head of the stack as well as “the rest” of the stack. So the return type in this case is a tuple.
Another slight irregularity: stack functions work on…
View original post 270 more words
Hey guys, So this week I worked on a small code kata. The purpose of this project is to simply be able to format text into a bullet point like any text editor allows you to do it. To complete this challenge, I decide to use F# since it's so great for prototyping and get … Continue reading Bullet points formatter
Hey guys, I'll start by wishing you readers an happy new year. Lots of things are changing for me this year. I'll go a quick review of last year I was a full-time intern at Genetec working as Software Developer from Jan to April I gave a tech talk in my local .NET meetup concerning … Continue reading Goals for 2017
Hey guys, So, professional shaped skills... What's that. Basically, it's the form your skills take concerning your expertise in your individual field(s). This form will depend on both depth and broadness. Trying to learn as many things as possible will lead to little depth and a large broadness of skills. The exact opposite leads to … Continue reading Shaping your profesional skills structure
Hey guys Today, I'm here talking about how to better ourselves us developers. We're always learning while working and that's bad. We should instead learn in our own time and practice before trying to use our tools to resolve the bugs in the software and the features requests from the clients. Learning on the job … Continue reading Become better, learn better, do code katas !
Hey guys, In spirit of my withdraw from the Google Summer of Code program this summer, I thought I'd do a piece of the project I successfully completed last summer. So what brought me to the program last year ? I spent a few weeks on working on a new thing in .NET called Roslyn. … Continue reading GSOC 2015 : From NRefactory 6 to RefactoringEssentials
Hi, Today, I'll be talking about a special project I have not only designed from A to Z but also implemented. Well, it's not as big as this sentence let's it sound. I worked on developing a prototype of a mobile game in augmented reality. Being a huge fan of tactical RPGs, I found it … Continue reading Augmented Tactics: A role playing game prototype
Hi guys, Well because of health problems, I won't be able to meet the expectation for the midterm evaluation coming next week and I will have to step down from the program. It pains me to do so since the project was taking me out of my comfort zone and forcing to adapt to a … Continue reading GSOC 2016 : The end
Hey guys, Being myself a fan of functional programming and cross-platform development, I thought you might like a nice read on how to create your very first platformer game with F# & MonoGame. Making a platformer in F# with MonoGame For those not having any prior knowledge of F#, don't worry, I'm going to do … Continue reading Making a platformer in F# with MonoGame
Hi guys, Last summer, I got into an interesting course entitled "Emerging topics in information technologies". During the first part of the course, we focused more on 3D computer vision techniques and how to manipulate 3D images.Issues such as depth-image-based rendering were obscure and captivating enough to get me motivated throughout the summer semester. In order … Continue reading Interesting project : Render stereoscopic 3D images using Kinect 2.0