So, do you want to become a software developer and you didn’t graduate computer science? Do you feel that “your time has passed” and you still think that there’s a lot more to achieve? Well, this post is for you, so you might want to keep on reading! If you ask yourself if this is even possible, well…. yes it is! I’ve studied philosophy and theology and still I’m working for almost ten years in the IT industry, I’m playing around with code for around 2 years and now I’m a software developer. Is it easy? Not at all! Or it depends on what “easy” means for you. But it’s achievable and here are a few guidelines on how you can become a software developer. Continue reading
Cloud computing is now growing at a very fast pace for over 4 years now. Strictly related to the increased adoption of cloud technologies there is also an increasing interest in software as a service, as companies of all sizes around the world realized the benefits of paying a subscription for the software they use. In these perspective, software development companies and independent developers around the world build now multi tenant applications. However, multi tenant applications are a tricky from the planning phase, since customer data needs to be strictly isolated, the application itself must be highly available and easily scalable. And, as I also briefly mentioned in my previous article, everything starts from the database. That;s why I would like to briefly point out the main SQL design patterns for multi tenant applications.
In practical examples I will refer mostly to Azure SQL databases and the .NET ecosystem, although the main design patterns are still valid for any relational databases you might want to use. A lot of these aspects are described in different Microsoft Azure documentation articles. My goal is to summarize information that is otherwise dissipated in different sources. Continue reading
Databases are one of the first things to think about when developing new software, especially web applications. I know that at a first sight, this topic seems to be a little odd: you simply use a relational database like SQL or MySQL ant that’s it, right? Well, I think that modern web applications are a little bit more complex and it might be worth considering other options and that’s why I would like to tackle this topic.
Traditional relational databases are clearly a goo fit for static applications. By static I think about applications that don’t change very often or that don’t require a huge amount of read and write operations. For example, if I would like to build my own blog at a certain time, I would surely choose SQL. And if I think about the data model for a blog post, it could be designed as something like this: Continue reading
It’s been a month since I became a full time software developer at Amdaris and I thought it might be fun to write down some things I’ve learned during this exciting 30 days. This might be useful for people that are in the same position I was during my last year: having some dev knowledge, but finding it difficult to make a bold steps towards a full time developer role. My insights won’t be deeply technical right now and I will definitely avoid very specific .NET topics.
I didn’t know what to expect at the beginning, but for now every single minute was worth this change, because I really had a lot to learn. My first big challenge was getting fully familiar wit Git, branches, commits, pull requests, user stories and so on. These concepts were not necessarily new to me, but I really didn’t know exactly how they are put in practice during day to day activities. Discovering how developers collaborate using specific tools was so great, that I started to work with repositories also for my “personal” projects, since I can clone a specific repository to whichever machine I am working at a specific moment and I can continue to work even if I’m not always on the same computer. If you’re wondering, I am using Visual Studio Team Services to do that. Continue reading
Technology evolves on a very fast pace and it’s often difficult to predict the future of technology or some specific directions that technological development will head to. Still, last week there was an event that unarguably defines some strategic directions that technology development will surely emphasize. So last week, AlphaZero won a 100 games chess marathon against Stockfish. Not only did AlphaZero win, but it didn’t lose a game at all! It won 28 games and drew 72. The spectacular aspect from a tech perspective is that AlphaZero learned the game in only 4 hours. Continue reading
Reading Twitter and several discussion threads on GitHub or Reddit, I came to the conclusion that there still is a lot of confusion when discussing .NET Standard, .NET Core and .NET Framework. The truth is, .NET Core and .NET Standard are still new and Microsoft also keeps making some changes when releasing different versions that add to the confusion. That’s why I will try to demystify these different components of the .NET world. Before getting into it, I would like to underline that this is my understanding and therefore I might be wrong at some points, but overall I think the overall picture is still helpful for clearing some of the confusion out there. Continue reading
As I already announced on LinkedIn, I decided to leave Microsoft starting November 24th. Strangely enough, I didn’t leave Microsoft because I didn’t enjoy the company anymore, but because I stumbled upon a new challenge that I really couldn’t refuse. More than 2 years ago I’ve decided to leave Office 365 behind and to focus more on Cloud Application Development. The solid foundation I had in cloud identity topics helped me a lot, because if you develop an application you pretty sure will also need authentication and authorization and that’s where Azure AD comes in handy. Now, I got the chance to totally shift focus and become a “real” software developer. That’s why I really couldn’t refuse this challenge and am glad to have joined Amdaris. Continue reading
I just finished watching the #Build 2017 keynote and I am really excited by all the new things that were announced in this occasion. There were so many cool things that at the end I started to forget those mentioned at the beginning. That’s why I thought of writing a //build 2017 keynote summary, to serve more for me remembering all the things that I need to keep up with during the next year.
One of the coolest thing is the new Azure Cosmos DB offering. Azure Cosmos DB is Microsoft’s globally distributed, multi-model database. With the click of a button, Azure Cosmos DB enables you to elastically and independently scale throughput and storage across any number of Azure’s geographic regions. It offers throughput, latency, availability, and consistency guarantees with comprehensive service level agreements (SLAs), something no other database service can offer. What this means is that you have a database where you can store documents, tables, graph data and many more in the same place and use really any DB API to access all the data in nearly real time.
Just to stay in the same database area, the announcement of Azure database for MySql was also a nice surprise. Basically, you get a MySql database as a service, without the need to take care of patching infrastructures and so on.
Further, Microsoft announced at //build 2017 the new Azure IoT Edge, a technology that’s meant to extend “the intelligence — and other benefits — of cloud computing to edge devices.” It’s a cross-platform run time that runs on both Windows and Linux, and it will work on devices that are smaller than a Raspberry Pi. This will solve a lot of problems in IoT scenarios with really small devices, since this new features enables a more straight forward communication between Azure and devices.
Next, the announcement of the new Azure Portal App for iOs and Android, together with the built in full featured Bash shell in the Azure Portal was also a very intriguing announcement. First, the mobile app is not available on Windows 10 mobile devices (I know, there are few of them out there, but still….) and second, the first integrated shell is a Bash shell, not PowerShell (PowerShell will come “some time” in the future). On the other side, this underlines once more the heavy open source approach that Microsoft is showing during last years.
The remote debugging of production web apps using Visual Studio 2017 without any downtime was also a great thing to watch.
Let’s go to the AI part. I was already fairly familiar with Microsoft Cognitive Services, but the announcement of the custom vision API was really exciting. This enables developers to easily train their own vision machine learning models, providing the necessary training data. This really starts to look more and more like democratized AI, which should enable developers to build more and more intelligent applications.
The PowerPoint Translator was also a fairly cool demo, but for me it was not necessarily something new since exactly the same thing was showcased two years ago at the Build conference, but back then it was a Skype extension, called Skype translator. These two are fairly similar.
A final observation: almost all demos were made from MacOS laptops and iPhones.
Watching the //Build 2017 keynote was a very good time investment. I still dream to attend this conference in person at some time 🙂
These days I saw on social media a lot of IT guys sharing with joy and great passion photos with “There is no cloud. It’s just someone else’s computer”. I also saw a lot of discussions and guys bragging with this motto, showing that they really mean it, that the cloud is bullshit and that every reasonable IT guy would resonate with this idea, that managers are kind of dumb pushing for the cloud and so on. Now, I fully support freedom of expression, but I would still want to say a few words on this topic.
First of all, technically all these people are right. The cloud is only someone else’s computer. But, in my opinion, the real problem with this attitude is not the technical part, but all the misconceptions and hostility that lies beneath these words. Disqualifying all IT guys that don’t share the same opinion on cloud computing is, first of all, a sign for the lack of common sense. But I wouldn’t like to dwell on this, right now.
The first argument I would like to bring forward is that the cloud is not something that evolved artificially. It’s exactly the other way around. The cloud is just the IT response to today’s world, to today’s economy, to today’s morals. We live in a service oriented world and almost all people nowadays prefer to consume service and not own products. That’s why we lease cars, we shop online, we order pizza instead of baking and so on. Companies, on their side, need to adapt to today’s needs and nowadays people need new services and products right away. Continue reading
Last week Microsoft CEO, Satya Nadella, announced the reorganization of the Microsoft phone business, a process that will also cause the layoff of around 7.800 employees. A big part of the tech press started to make more or less accurate suppositions about what this means. So I read that phones are not important for Microsoft anymore or that the Nokia deal was a total failure. Strangely enough, most of this suppositions start from correct premises but in my opinion arrive to the wrong conclusions, simply because some analysts fail to see the wider picture and to fully understand the Microsoft strategy.
The first thing to understand is that the whole concept of “mobile” has changed. Nowadays, “mobile” is not about the device anymore, but about the mobility of the experience. And this is precisely the strategy Microsoft is going for: enable a truly great mobile experience across devices. This is why Microsoft invests a lot of effort in apps for Android and Google, apps that are meant to enable users to have a great Microsoft cloud experience even on non Windows devices. Back in the days of the Nokia deal, “mobile” was everything about the device itself. In this perspective, acquiring Nokia was the best thing Microsoft could have done at that time. Sure, expectancies were very high and I personally also thought that this would increase the Windows Phone market share in a consistent way. Continue reading