
Consider the following problem. You have a large set of strings, maybe millions. You need to map these strings to 8-byte integers (uint64). These integers are given to you.
If you are working in Go, the standard solution is to create a map. The construction is trivial, something like the following loop.
m := make(map[string]uint64, N)
for i, k := range keys {
m[k] = values[i]
}
One downside is that the map may use over 50 bytes per entry.
In important scenarios, we might have the following conditions. The map is large (a million of entries or more), you do not need to modify it dynamically (it is immutable), and all queried keys are in the set. In such conditions, you can reduce the memory usage down to almost the size of the keys, so about 8 bytes per entry. One fast technique is the binary fuse filters.
I implemented it as a Go library called constmap that provides an immutable map from strings to uint64 values using binary fuse filters. This data structure is ideal when you have a fixed set of keys at construction time and need fast, memory-efficient lookups afterward. You can even construct the map once, save it to disk so you do not pay the cost of constructing the map each time you need it.
The usage is just as simple.
package main
import (
"fmt"
"log"
"github.com/fastfilter/constmap"
)
func main() {
keys := []string{"apple", "banana", "cherry"}
values := []uint64{100, 200, 300}
cm, err := constmap.New(keys, values)
if err != nil {
log.Fatal(err)
}
fmt.Println(cm.Map("banana")) // 200
}
The construction time is higher (as expected for any compact data structure), but lookups are optimized for speed. I ran benchmarks on my Apple M4 Max processor to compare constmap lookups against Go’s built-in map[string]uint64. The test uses 1 million keys.
| Data Structure | Lookup Time | Memory Usage |
|---|---|---|
| ConstMap | 7.4 ns/op | 9 bytes/key |
| Go Map | 20 ns/op | 56 bytes/key |
ConstMap is nearly 3 times faster than Go’s standard map for lookups! And we reduced the memory usage by a factor of 6.
Source Code The implementation is available on GitHub: github.com/fastfilter/constmap.

There is still a flood of Fabric related announcements post FabCon Atlanta 2026 this week: Upgrade your Synapse pipelines to Microsoft Fabric with confidence (Preview): Microsoft has launched a public preview migration assistant that helps organisations move their Azure Synapse Analytics and Azure Data Factory pipelines into Microsoft Fabric Data Factory. Gain full visibility into your Copy jobs with Workspace Monitoring in Microsoft Fabric (Preview): Fabric's Workspace Monitoring feature now surfaces detailed logs, performance metrics, and job-status visibility for Copy jobs, helping developers and admins troubleshoot, optimise, and monitor data-movement operations from one place.
A wave of new Dataflow Gen2 capabilities at FabCon Atlanta 2026: Microsoft announced a broad set of Dataflow Gen2 updates, including a faster Modern Query Evaluator, Variable Library integration now generally available for CI/CD-ready parameterisation, and new preview destinations such as Snowflake and Excel files. Microsoft Fabric FabCon 2026 announcements that will transform your data stack: a breakdown the five most impactful FabCon 2026 announcements for enterprise data teams.
New data protection capabilities in Microsoft Fabric: Native security for the modern data estate: Microsoft has expanded its Purview-powered security features in Fabric, extending Data Loss Prevention (DLP) restrict-access policies to all structured data in OneLake, adding Insider Risk Management coverage for Fabric lakehouses, and introducing preview capabilities to detect sensitive data in Copilot and AI agent interactions. Graph-powered AI reasoning (Preview): Fabric now offers a graph-powered AI reasoning harness that translates natural-language questions into Graph Query Language (NL2GQL), enabling AI agents to perform explicit, auditable multi-hop reasoning over enterprise relationship data rather than producing opaque probabilistic answers.
Introducing new Git developer experiences in Microsoft Fabric (Preview): Three new Git integration capabilities have entered preview in Fabric: Branched Workspaces that track the parent–child relationship between workspaces, Selective Branching to branch out only the items you need, and a Compare Code Changes diff view so developers can review exactly what will change before committing. Fabric notebooks support Lakehouse auto-binding in Git (Preview): Fabric notebooks can now automatically resolve the correct default lakehouse as they move across Git-connected workspaces such as dev, test, and prod, eliminating the manual rebinding step that previously slowed down multi-environment CI/CD workflows. Fabric Notebook Public APIs (Generally Available): Fabric Notebook Public APIs are now generally available, giving teams full programmatic CRUD control over notebooks and the ability to trigger, parameterise, and monitor notebook runs via the Job Scheduler API, enabling notebooks to be managed as first-class assets in automated pipelines.
What's new with Microsoft in open-source and Kubernetes at KubeCon + CloudNativeCon Europe 2026: At KubeCon Europe 2026 in Amsterdam, Microsoft announced that Dynamic Resource Allocation (DRA) has graduated to general availability in Kubernetes, enabling GPU-backed AI workloads to be scheduled as first-class cloud-native citizens, alongside new AKS cluster lifecycle improvements such as blue-green agent pool upgrades and rollback. Aspire on Azure App Service is now Generally Available: Aspire's code-first distributed application model is now generally available on Azure App Service, letting developers define their hosting topology in the AppHost project and deploy to a fully managed, auto-patching platform without abandoning the familiar Aspire programming model.
Finally, Azure Sphere is Retiring in 2031 - What you need to know: Microsoft has announced that the Azure Sphere service, including device attestation, OS updates, and security patches, will be fully retired on 31 July 2031, giving existing customers a five-year window to evaluate modern Azure IoT alternatives and refresh hardware designs away from the MT3620 microcontroller.
Welcome to F# Weekly,
A roundup of F# content from this past week:
News
Microsoft News
Videos
Blogs
Highlighted projects
New Releases
That’s all for now. Have a great week.
If you want to help keep F# Weekly going, click here to jazz me with Coffee!

Hello and Welcome, I’m your Code Monkey!
This week I finally launched my Game Dev Practice Lab! I've wanted to do this literally for years, it feels surreal for it to finally be a reality!
So far the feedback has been really positive, over 150 members have already joined and quite a few have already completed the first challenge! It's awesome to see how everyone solves the same challenge in different ways. On Challenge #0 Save System City Builder some people saved data with a string, others with JSON, others with MessagePack (which I didn't even know existed)
I just started Challenge #1 CCTV Camera System, I'm looking forward to seeing how people will complete that one!
Check it out HERE and get 20% OFF using the coupon LAUNCH, or if you ever bought one of my courses check your inbox, I have sent you a coupon to get it for free.
I hope you learn a lot!
Game Dev: Success Definition ; Cities Skylines blames Unity
Gaming: Fortnite Dying?
Fun: Cat Desk!

I talk often about how to find success with your games. How to pick a good marketable game idea in a well performing genre that allows your marketing to be effective in order to have the best odds of finding success. However I also try to constantly say how it's up to YOU to define what success means to YOU!
Maybe making 6 figures is your definition of success. Maybe it's just $10k. Maybe it's just releasing a game. Maybe it's just making something playable to have fun with friends. Maybe it's building something personal just for yourself and no one else. All of those are perfectly valid definitions of success!
One developer on Reddit posted and excellent image showcasing 10 levels of success. They range from "1. I made a video game!" to "5. I have a modest income from my game" to "10. My game is a cultural phenomenon with a long lasting legacy."
Which one best matches YOUR definition of success?
Personally my goal has always been "6. I made enough money to keep being a full time game dev", I just want to keep doing this for the rest of my life. I have no interest in making a phenomenon, I'm happy with making small niche games that only a few people even know about. I also have no interest in making a game with an enduring fanbase or turning a game into a multi-media IP (like FNAF). And I also certainly never want to retire! If I ever have a mega hit, something that makes $10mil, then I would still keep making games. I would definitely take it easier and work fewer hours, but I don't imagine I will ever completely stop.
Looking at the comments it seems the most common answer is 6 (make games for a living) and 1 (publish a game).
In order to achieve a goal, any goal, it's imperative that you are very specific on what the goal is, so do take some time to clearly define what is YOUR goal with game dev.
![]() | I love setting clear goals so I loved this image right away. If you think to yourself "I just want to be a successful game dev" then that's not really quantifiable, how will you know when you get there? Whereas if your goal is "I made enough money to keep being a full time game dev", then you just need to calculate your burn rate and multiply it by how long you work on your game. If you hit that goal then congratulations, you made it! |
It’s been quite a while since Synty did a HumbleBundle, but here it is! ENDING SOON
Nice pack with Sci-fi assets, some UI, animations, prototyping assets and even a pack in their new style: Sidekick.
Absolutely perfect pack if you’re making something Sci-fi, or great if you want to try out their Sidekick character creator.
It’s a great discount 95% OFF so if you like their style (like I do) then go and get it!
The Publisher of the Week this time is SURIYUN, publisher with a ton of cute anime characters and creatures.
Get the FREE Pspsps Monkey which is a cute chubby monkey character with tons of face sprites!
Get it HERE and use coupon SURIYUN2026 at checkout to get it for FREE!
Yet another awesome HumbleBundle this week is this one all about Realistic Assets!
It includes a ton of awesome stuff from some excellent publishers. You can find Vehicles, FPS Devices, Environments, Characters, Tanks, Zombies and more.
All in a super high quality high resolution realistic style.
Get it HERE!

Cities: Skylines is one of the most beloved games of all time. It sits with 92% very positive rating with 100,000 reviews, it has made over $100,000,000!
Then in 2023 came Cities: Skylines 2 and it was a disaster, currently with Mixed reviews just 55% positive.
How did this happen?
In a recent interview to PC Gamer the CEO mentions how part of the problem was Unity, or more specifically it was them basing their design and the core tech of the game on Unity DOTS which was very early, very experimental at the time. They thought they were future-proofing their game, when in reality they were just signing up for an extremely difficult development process since the tools were simply not ready at the time. It lead to a lot of engineering problems which in turn were reflected in the final game.
So use this story as a reminder to NOT use Experimental tools/packages in Production!
Nowadays Unity DOTS is an awesome Production-Ready tool! If you want to use it now, you can! There's also awesome games already out that are using DOTS, example Diplomacy is Not an Option. I have an entire full-length 17 hour course on making an awesome RTS game with DOTS. But I only went through the massive months-long effort of making that course AFTER Unity DOTS hit 1.0, not before.
![]() | I loved DOTS since I first laid eyes on it back in 2018, but despite how much the tech seemed awesome I would never use such a drastically different experimental tool in a production context. I followed the development of DOTS for 8 years as it was being built, they had a lot of complete redesigns that instantly broke old code. The current state of the tech is awesome, so just make sure you WAIT for packages to be production ready before you really commit to them. |

For years now Fortnite has been the juggernaut of the industry making seemingly infinite amounts of money! It's the cited reason why some other AAA games have failed, everyone is just playing Fortnite and no one has time to play any other game.
However apparently they have finally reached the peak in 2025 and have been downhill from there. Epic games has just laid off 1000 employees which is 20% of the company. In the announcement Tim Sweeney (CEO) talks about how they're spending more than they're making, how the industry as a whole is slowing down, and how recent Fortnite updates haven't managed to bring the magic like previous years. The only good news in this situation is that at least they got severance (4 months pay), but still it sucks to lose your job.
How is it possible to have the #1 game in the world that literally prints money, and yet end up with layoffs? How much are they spending on all those weird IP deals? Or is it their expensive legal battle with Google and Apple? Or is it them trying to make the Epic Game Store work by giving away free games?
If Fortnite is on a downtrend, who is on an uptrend? I believe Roblox is doing quite well but I have trouble imagining people going from Fortnite to Roblox. So perhaps those players are moving on to other games which could be a positive for the industry? The fact that Fortnite has massively dominated in the past few years isn't a good thing, it's not a sign of a healthy industry to have one massive title making all the money and everyone else fight for scraps, so if those players move on to other games we might have a more broad sustainable industry, but perhaps they just stopped playing altogether.
Tim Sweeney posted something on Twitter that I'm guessing he intended to be a positive message but really just comes across as incredibly tone deaf: "In the coming days, employers will see a stream of resumes of once-in-a-lifetime quality folks."
If they were so talented why did you fire them? You couldn't figure out a way to monetize all that talent? I wish all the best to the people affected, hopefully they can put their talent to work at a better company.
![]() | I hate hearing stories about layoffs. The industry has a whole has been going through a rough time for a few years now, I wonder when that will end... Some people have hope that the GTA 6 release is what will boost the entire industry, I hope so. |
Tech moves fast, but you're still playing catch-up?
That's exactly why 200K+ engineers working at Google, Meta, and Apple read The Code twice a week.
Here's what you get:
Curated tech news that shapes your career - Filtered from thousands of sources so you know what's coming 6 months early.
Practical resources you can use immediately - Real tutorials and tools that solve actual engineering problems.
Research papers and insights decoded - We break down complex tech so you understand what matters.
All delivered twice a week in just 2 short emails.

Do you have a cat? Do they jump on top of your keyboard and make it hard for you to work?
Here is a solution! Cat Desk! It's a desk with dedicated shelves and holes for your cats! Obviously it's made by Japan.
Although knowing cats I imagine they actually just ignore the places intended for them and will still just lie on top of your keyboard.
![]() | I love solutions to niche problems, and I love the idea of trying to design something for someone who will clearly NOT respect your design rules, is there a name for that? Antagonistic design? |

Spaghetti Code
https://www.youtube.com/watch?v=YG4i-F67YOk
Funny story on how large studios end up with terrible code through no fault of the programmers
Video Game Cities Are Weird
https://www.youtube.com/watch?v=VRWDq2Xu7I0
Really nice exploration on Video Game Cities and what makes a great one
Get Rewards by Sending the Game Dev Report to a friend!
(please don’t try to cheat the system with temp emails, it won’t work, just makes it annoying for me to validate)

Thanks for reading!
Code Monkey