New project: Geotoast

3 minute read

Two books I have read at the end of 2016 which have shaped a lot of my current thinking are So Good They Can’t Ignore You and Deep Work, both by Cal Newport.

I picked up a lot of tips from these books, but for me the two main things which stood that I want to work on are the following:

  1. Doing deep work. In other words, I want to set aside time where I can focus intensely on one specific task, without being distracted by anything else.
  2. Deliberate practice (or learning). This is about identifying a set of skills or techniques at which you are lacking, and then focusing your learning specifically towards acquiring those skills. For me as a programmer this means identifying certain technologies or techniques which I feel are lacking and the focusing on acquiring the skills to use those technologies / techniques.

    One of the best ways to do deliberate practice (or learning) is by using a project based approach. So in other words, once I have identified those technologies, I create a real life project which makes use of those technologies and build it

So what do I want to learn?

So, with that in mind I have identified the first set of skills I want to acquire, as well as the project which will help me accelerate this learning process.

So for me the skills / technologies I want to learn are the following:

  1. Firstly, I am working for Auth0 and building stuff which other developers use, but I have never actually built something using our product. I therefore do not understand some of the frustrations which developers have, and this is a problem. I will be building something using Auth0.
  2. The new API Authorization feature of Auth0
  3. ASP.NET Core, and specifically the following areas:
    • Authentication and Authorization (once again this is crucial for my job to understand the nuances of these)
    • Building an API, and all that goes with that - authorization, versioning, etc.
  4. JavaScript. Damn, my JS skills are sorely lacking
  5. One of the newer JS frameworks. Not 100% decided yet, but I am leaning towards Vue.js
  6. VS Core. I wanna become better at using it. So I will be using it, and not the full Visual Studio. Along with that, all the .NET command line tools. No more fancy IDE for me.

The project

The project I have identified which will help me learn these skills will be called GeoToast. Basically it is about displaying a popup message (or toast) to users on your website based on their geographical location.

The idea for this first came about some years ago while I was still doing the ASP.NET Weekly newsletter. I thought that as I was doing traveling around the world, it would be cool to meet up with developers in the cities and countries I was visiting. One other way I thought of getting in touch with them was but displaying a notification on my blog, so that when someone visited from say Taipei, and I knew I was heading to Taipei soon, it could for example display a message like the following:

Hey, I am headed to Taipei from 1 February to 14 February and would like to meet up with some of my readers. Interested in meeting up? [Click Here]

That at a high level is the idea for the application. It will allow people to register on the GeoToast website and then create a list of messages which can be displayed to their website visitors based on the geographical location of that visitor. It will also allow them the embed a small JS file in their website which will make a call to the GeoToast API, and based on whether any of the message are applicable to that visitor’s location, it will display a nice notification somewhere on the screen to the visitor.

Conclusion

That is the very brief overview of the application. I will write more blog posts to share more details and things I have learned as I continue with the development of this project. Because I also want other developers to be able to learn from this, the project is open source and hosted on GitHub at https://github.com/RockstarLabs/GeoToast.

Did you notice an error? Please help me and the other readers by heading over to the GitHub repo for this blog and submit a Pull Request with the corrections.