Get Noticed 2017

Hello Get Noticed! We meet again…

As some of you might notice, I’ve not posted any new post since two weeks. There are few reasons for that including my vacations (finally) and other. But the most important one is the fact that I wanted to rest before huge programming competition. If you are not familiar with this even keep reading 馃檪

 

Get Noticed

One of the most recognizable Polish .NET developer – Maciej Aniserowicz – came up with really great and simple idea. Why not create some kind of competition for programmers all over the country? There are two main requirements:

  • You need to create an open source project and publish it on the GitHub. Technology is not specified (Microsoft related) so, if you’re interested in Python – create some Python app, you like Java – go and write in Java. What’s also important is the fact that you don’t need to be a professional programmer to start in „Get noticed”. What’s more, there are lots of folks for whom participating in this competition began their career as developers!
  • You’ve got some awesome project? Great, but that’s not enough! 聽How will people get known about it? Well, the easiest way it to… create a blog, and write about it! More precisely, twice a week 馃槈

As you see, that’s a loot of work to do after leaving the office, but that’s exactly what „Get noticed” is all about! Just keep progressing!

 

My struggling with „Get Noticed 2016”

To be honest, the previous edition of mentioned competition was really exhausted for me. Not only because I had no enough time to finish my project but also because of technology stack which I chose back then. My project was called Aurora, and its main purpose was to manage the SCRUM projects (something similar to Visual Studio Online, now Visual Studio Team Services). The technologies looked as follows:

  • ASP.NET Core (RC 1)
  • Aurelia (alpha version)
  • Materialize CSS (alpha version)

… and some others. As you see, these three main technologies were not even in RTM. Because of that, I spent almost 2/3 of my time to struggle with unexplained errors and integrations with all technologies. At the end of the whole „Get noticed” I had just a core of the entire application. I was also really pissed about application architecture which was nothing more than N-Layer architecture (which was fucked up in some places).
I wasn’t happy about the final result of Aurora but I learned a lot (not only about technology-related stuff but also about managing time in a project). Even though my project wasn’t finished and… good, I got to the finals! The competition was over, but I left with my own blog, new skills and motivation to do much more than before. I felt like a winner anyway!

 

The ideas for „Get Noticed 2017”

When I heard about a new edition of the competition I was sure about one thing – I’ll definitely sign up. But, soon after I asked myself about project and technologies I’d love to use. I came up with some ideas:

  • Introduce actor model in some project – for me actor model looks very promising. I like the idea of single-thread actors, queuing the messages, hierarchy of entire actor system. That’s why I wanted to learn Akka.NET or Orleans. But there were two issues. Currently, Akka does not support.NET Core, and I’m working on Mac. I know, bootcamp could do the job but I just don’t to write yet another project in .NET 4.5.2. On the other hand, project Orleans supports .NET Core but after playing with it for a while I didn’t like it that much.
  • Learn functional language – Since a year, I wanted to learn some functional language and functional programming in general. The obvious choice for .NET developer should be F# but I thought more about Elixir. The problem is that I’ve never done it, so most of the competitive post would be just an introduction to the language. The project would be also very simple and probably boring.
  • Learn reactive programming and RxJS – that was my third thought. A few weeks ago I read a great article about reactive programming with RxJS. Instantly I felt in love with that approach and I wanted to try it out. But once again, I felt that the project itself would not be interesting.
  • Refresh C knowledge with CrazyFlie 2.0 – I didn’t mention that earlier but during „Get noticed 2016” I won some price – a little drone called CrazyFlie 2.0. It was created by developers for developers. You can program the whole communication with the robot, and its actions by your own! That seemed to me really interesting and completely new (since I’ve got just a little experience with such a programming). The problem is that I wanted to learn something connected with the job I do – web. But I promise that this topic will return this year!

 

gifty

All right, so what is my final decision? As mentioned in the previous paragraph I wanted to learn something more web-related. Meet gifty! A web application which will help solve one of the biggest problem about someone’s birthday – what gift should I buy?! The idea is very simple. Each registered user can define the list of gifts, which would be nice to receive. Before user’s birthday (let’s say two weeks) his friends receive an email with reminding and link to user’s profile. Each friend can now choose which gift he choose to buy and he can mark one or more gifts from the list as „taken” so other folks will not buy them. After receiving perfect presents, a user can mark them as „received”, and the story starts once again. Of course, that’s just a short brief because the entire application will have much more features/user stories such as folding the expensive gift, suggesting gifts based on previous choices, adding occasions to the calendar etc.
The whole application will be made as couple microservices, which will communicate via message queuing. I’m also going to follow the CQRS pattern and introduce some DDD. I’ll describe more technical details in the next post. For the now, the technology stack looks as follows:

  • .NET Core
  • NancyFX
  • MongoDB
  • Neo4j
  • RabbitMQ
  • Aurelia/TypeScript
  • Docker
  • Travis CI

I’ve never worked with nancy, mongo, neo4j, docker and travis, so it’s gonna be awesome (but also challenging) three months of competition, but I hope that some MVP will be finished at the end.

 

Get ready…

That’s it! I’m really excited about the project, but more about this great three months full of new experience, knowledge, and fun! I hope that you like the idea 馃槈 If so, please left some comment in the section below! If you have any questions, don’t be afraid to do this here on the blog or write a message to me directly using the contact form.

WHISH ME LUCK!