🌦 Living With Anxiety as a Software Engineer
I have been working as a professional software engineer for more than 10 years. For as long as I can remember, anxiety has been a part of my life. Over the years I’ve made peace with its existence and sometimes I’m even able to harness it as a useful tool.
Despite the experience I’ve built up in both my professional career and from living with and managing anxiety, there are many things in an average day as a software engineer that are sources of anxiety to me.
✈️ Moving to Monaco - A Journey to a Better Code Editing Experience
Originally posted on the DataCamp Engineering Blog.
Last year, we deployed a major re-implementation of the core code editing experience of our interactive courses. In this article, we explore how our engineering team tackled the difficult problem of swapping out one of the major components of the DataCamp experience with minimal disruption to our users, whilst simultaneously reducing technical debt and laying the foundations for future success.

🗣️ Tips for Effective Remote Communication
Originally posted on the DataCamp Engineering Blog.
Being a remote worker, or working with remote teams forces us to be more intentional about when and how we communicate. Over the last few years I’ve either been working as a fully remote employee or with remote teams. This has been a humbling experience and I’ve learned a lot about what does and doesn’t work when it comes to communication.

🔥 Hot React Tips: useState Accepts a Function Argument
If you’re using React’s useState hooks in your frontend application, you may not know that the setter function can also accept a function as an argument. This can be used to avoid unnecessary re-renders when combined with useCallback.
🏄 Surfing the JavaScript Wave: Embracing Incremental Change in Real World Software Projects

The JS ecosystem moves forward at a break-neck pace. New paradigms, frameworks, and tools are released seemingly every day. React Hooks are a recent example of this, with many software houses dropping tools in a race to rewrite their codebase to use the new techniques. But what do you do if you’re in a small team, managing a non-trivial sized codebase, with limited time to invest in staying on the bleeding edge?
💭 5 Things I Wish I'd Known as a Junior Developer

As a junior developer, I was often fraught with insecurity and imposter syndrome with regards to my technical ability, and actually postponed the beginning of my career by at least a year due to these feelings.
Over the years these feelings have diminished somewhat, although not completely. Whilst not all of these points are related to confidence, if I had a time machine, I’d go back in time and tell myself these things. Ah, the power of hindsight!
🚀 Shiny New Apollo 2.1 API and apollo-link-state

In this article we’re going to learn how to write a modern GraphQL app that utilises some of the awesome new APIs recently announced by the Apollo team. Rather than starting from scratch, we’re going to build upon and refactor our counter app example from our previous exploration of apollo-link-state. To remind yourself of where we got to last time, have a play with this Snack.
🔗 Managing Local State With apollo-link-state and React Native
In this article we’re going to build a simple counter app to learn the basics of apollo-link-state and how we might use it to manage the local state of our apps. GraphQL is a fantastic and modern approach for dealing with data in your apps. Before you continue, it’s worth making sure you have a basic competency with GraphQL, Apollo and also React Native.
What is apollo-link-state?
apollo-link-state is a middleware for the Apollo stack that allows us harness the power of GraphQL to manage our local app state. Traditionally you might have been using Redux, MobX or even setState to manage your local app state. In this article I’ll show you how apollo-link-state allows us to either replace or complement these technologies.
✅ Verifying Your Github Commits
In this day and age computer security has never been more important. Open source software powers much of the world’s computing infrastructure and as such, we are dependent on the integrity of this software from a security point of view. Code is merged into open source repositories in a structural and intentional manner. However, it’s theoretically possible for a user to masquerade as another simply by changing their Git username and name. Another attack vector could simply be to obtain physical or remote access to a computer with commit access to a popular repository.