United Kingdom: +44 (0)208 088 8978

Feeling like a developer

Akash takes a slightly different take this week, telling us how he's been supported by the F# community.

It's been three months since I joined Compositional IT and had the pleasure of working with an amazing group of developers. I've been able to get a better grasp of F# and its tooling but also some things that I never paid much attention to. This post is to highlight those things and how they've helped me feel more like a developer.

I remember it being my second month when I found a bug in a library I was using and was asked to create a GitHub issue... now to a lot of you I'm sure thats an instinct but for me the idea was completely foreign. I had never created an issue on GitHub - in fact I'd been more comfortable with hours of headbanging and running in circles.

It was such a daunting task that I think I must've rewrote the issue at least 10 times before submitting it and I still edited it afterwards. And you can probably guess what happened after that... I got the help I needed without the headache and hopefully helped others who had similar issues.

I've never worked at a company that encouraged me to get help from wherever I could. This again may be normal for many of you but to me is a new feeling. It totally makes sense since we can't hold all the knowledge between us so why not just reach out to the author or an SME? Working at Compositional IT has given me the confidence to reach out to those outside of my network.

When it comes to F# specific help I'm sure everyone will agree that the community is as open and supportive as they come. The F# software foundation have a slack which is a great way to get help and I've now used it countless times from general queries to more specific questions - most recently how to handle rest spread from JS in F#.

For anyone curious 😜:

[<Emit "Object.entries($0)">]
let objectEntries (x: obj) : (string * obj) array = jsNative

// Custom operator - unfortunatley the ... syntax isnt available which is why I opted for the <...>
let (<...>) v = objectEntries v |> unbox

This is just a small appreciation post to the folks over at CIT and the amazing F# developers out there for helping people like me, feel like part of a community and a 'real' developer.