Kotlin in Web Development
Kotlin is a cross-platform, statically typed, general-purpose programming language with type inference. It has already taken over android development, but is it any good for web development? In this blog, we will cover a few of the best Kotlin features for your web application.
Estimation – Issues, Guidelines and Techniques
It can happen that project managers resort to scheduling estimates. For whatever reason, if it happens, then it is difficult to estimate the schedule at a later stage and adjust the change of the project scope. Even good estimates contain inherent assumptions, risks, and uncertainty – and yet, if they do, they are often treated as if they were accurate.
Code Quality – SonarQube
Do you know that feeling when you see a code and ask yourself: „Oh my God, who wrote this bad code?“ And after browsing through history you see the unpleasant truth – the author is you. It is nothing strange; we learn every day, and we have new and better ideas which we can refactor.
Monitoring in HA Applications
The key goal of monitoring is an increase in situational awareness. There is no automation without observability, and there is very little situational awareness without monitoring. The role of monitoring is to deliver observable data in a human-readable format. We can, however, extract additional value by taking a few extra steps.
Introducing JShell: A Guide for Using the New Java 9 Feature
The shell or the REPL (read-eval-print-loop) is a well-known tool in many programming languages. Typically, this is more common in scripting languages such as Python or Node, but more recently it’s been adopted by JVM languages like Clojure and Groovy as well. The upcoming Java 9 release finally brings this shell functionality to the Java language as well, in the form of JShell. This blog post is a preview of the use of the new feature java 9 Jshell. More details about it you can find at web sites that are used as a source: Introduction Jshell and Tutorial Jshell.
Scaling Scrum – Intro to Scrum@Scale
As one of the most popular and widely accepted agile frameworks, Scrum was envisioned and designed to enable a single team to perform its work at optimal capacity and at a sustainable pace. Given the rising volume and complexity of work performed during the development of a modern product (or service), most organizations eventually had multiple Scrum teams working together.
Does the following situation seem familiar? An application that has been working reliably for many years suddenly needs a security update somewhere in the code. It’s the software of all things, whose documentation has been somewhat neglected since the last release(s); the software, whose original developers are no longer available. So, what do you do?
Companies, from SMBs to large enterprises, in order to support their business processes inevitably use one or more software products, mainly purchased as an off-the-shelf package, or nowadays the leased peruse PaaS or SaaS products. Rapid market and business environment changes require fast process adaptation, which is why software should be quickly modified and made ready to support activities with minimal stress and costs. One of the possible solutions lies in using low-code development platforms.
Best Agile Practices to Improve Productivity
Agile is an iterative approach to software development in which developers deliver functional code to their customers in smaller iterations or sprints. Agile practices help to deliver more value in one iteration and keep developers on track with project requirements. Here are some tips to improve your team’s productivity by using the best agile practices.
WebAssembly: A Light at the End of the Tunnel
MFC and .NET Interoperability
This should serve as a short intro to the somewhat archaic MFC library. Nowadays, the .NET framework is much more widely used. Nevertheless, you might come across the need to connect an old MFC application to a new one written in .NET, for example, if the MFC one is too large and complex for easy migration to .NET. So, let's take a look at how to do that.
Three States of Git and Three Sections of a Git Project
These three states make a system based on promotion. Each file can reside in one of these three states and change states depending on what was done to it.
Introduction to Git and Types of Version Control Systems
Git is a Version Control System or VCS. VCS is basically software designed to record changes within one or more files over time. It allows us to undo or to cancel all made or pending changes within one or more files. If we're working on a project with many files, VCS enables us to control the whole project.
Breaking down a monolithic application to microservices - you need to publish them somewhere
It’s not a panacea and it’s not a guarantee that it’s the right way of working with microservices but it works for us, maybe it’ll help you in breaking down your monoliths, or at least it’ll break some stuff.
Breaking down a monolithic application to microservices - real world examples and tips we use in our .net world
For our next steps, I wanted to give you a few real-world examples of designing and developing microservices that we use in our .NET world.
Breaking down a monolithic application to microservices – where to start?
This approach might not be possible for every part of your system but you’d be surprised in how many cases you can implement it.
Porting ios control to Xamarin.iOS and then to Xamarin.Forms (with SkiaSharp)
When we need to use some custom control from ios and use it in our Xamarin.ios application we have two options to do this. Make bindings or rewrite it with C#. You may wonder: “Why may I ever need to rewrite control instead of just making bindings?” The first and most obvious answer is “you need to extend this control with your own properties and functionality”. The second answers is “you will need it to port to other platforms”.
Domain-Driven Design: A Short Introduction to a Complex Software Development Approach
In this blog post, I will try to define Domain-Driven Design (DDD), concentrating on one of its concepts, Ubiquitous Language (UL). This is a just quick overview, not the full explanation. I intend to give you a small glimpse into the terminology and practices that DDD represents.
Configuring Angular, Jenkins, and GitLab for CI/CD
This article assumes that you have a running Jenkins instance on your Linux machine with a valid domain (not localhost), GitLab and that you are familiar with the Angular framework.
CI/CD Cloud Voyage with Jenkins
In the past I played around with creating pipelines for Angular deployment with Travis and Google Cloud, but companies rarely decide to put their code on cloud. More often, they want their application to be developed, tested and run in protected environments where the company has full control and where it costs less money.
Working in Distributed Agile Teams
What are Agile Development and Distributed Agile Teams? What are the benefits and challenges of every Distributed Agile Team? How to build trust in physically distant groups of people, and how to overcome geographical and cultural differences to meet project goals?
How to solve document generation problem
Word and similar tools become less useful when trying to fill in one template file with multiple different data sets. For example, many different documents where the only difference is the forename and surname. Doing this by hand becomes tedious and time consuming.
To be or not to be a full stack developer?
This article is intended for web developers as I come from that part and therefore consider myself able to speak only about full stack web developers. The article can be used as a list of things that you can put a checkmark or use it as a to-do learn list. Maybe, I will succeed in convincing you that full stack developer is an expression you should use very carefully. Let’s dig in.
A Guide: How to successfully manage a distributed software development team
Rise of distributed team popularity, especially in software development, is sometimes due to specific project needs, but in most cases, it's driven by the inability to hire the appropriate talent locally. Therefore, the need for establishing and successfully managing a distributed team is steadily becoming increasingly important.
This guide encompasses relevant experiences, practices, and recommendations, all of which aim to facilitate the art of successfully running a distributed software development team.