Wolk Software Engineering

by Wolk Software Limited

A group of young and ambitious people dedicated to creating cutting-edge applications in combination with beautiful and functional design.

Page 3

JavaScript and Web Development Trending Productivity Power Tools 2015


Since January 2015 I’ve been trying to investigate what new libraries, frameworks, languages, etc. are popular these days.

Last year learned a lot MV* frameworks, in particular, about Ember.js, Backbone.js, Chaplin.js and Marionette.js.

I also learned a lot about JavaScript in the MEAP Stack (MongoDB, Express, Angular.js, and Node.js) and about modern web development productivity tools. I mainly worked with Grunt.js and Yeoman.

2014 was a very productive year in knowledge terms. Let’s take a look to the tools, technologies and frameworks that I plan to learn in 2015.

 Browserify & Gulp

I’m planing to migrate the automated builds from Grunt.js to Gulp.js during 2015. There are not huge difference between these two tools but I find the Gulp.js configuration files more clean and easy to follow. Grunt.js is a great tool but it looks like Gulp.js will dominate the throne of the

Continue reading →

SOLID Asp.net Web API Project Organization for maintainability and scalability

I like to organize my Wep API projects using the following solution organization (Sorry for the ugly diagrams…).


Each circle in the diagram is a .Net project (or DLL) in the solution:

  • Solution.Global: The global DLL contains POCO objects and the public interfaces of all the others DLLs. All the DLLs have a reference to the Global DLL.
  • Solution.IoC: The IoC project declares the bindings between abstractions (interfaces in Global) and implementations (Objects in each DLL). The code of this DLL can easily be re-used.
  • Solution.WebApi: The Web API project is the composition root for the IoC and therefore it is the only DLL that points to the IoC project.
  • Solution.DAL: The application data access layer.
  • Solution.WebClient: The front-end application.

By using this separation we can follow the SOLID principles, for example I can replace the Solution.DAL DLL for a new one by just

Continue reading →

Thoughts on JavaScript IoC containers with Require.js & TypeScript

Lately I’ve been thinking about IoC in JavaScript and I would like to find out the community opinion about my thoughts…

The require.js documentation recommends avoiding the usage of named modules and to let the naming task to the optimization tool:

It is normally best to avoid coding in a name for the module and just let the optimization tool burn in the module names. The optimization tool needs to add the names so that more than one module can be bundled in a file, to allow for faster loading in the browser.

I understand that by using unnamed modules we must provide the relative path of the module and the path will help us to locate the dependencies of a particular module.

    baseUrl: './'

define(['models/user_service'], function(userService){
    var users = userService.get();

In the example above, the usage of unnamed modules helps us to know where

Continue reading →

Writing JavaScript APIs

This article covers the most important things that you will need to consider before and while writing your own utilities and libraries. We’ll focus on how to make your code accessible to other developers.


A couple of topics will be touching upon jQuery for demonstration, yet this article is neither about jQuery nor about writing plugins for it.

The computer is a moron.” Don’t write code for morons, write for humans! — Peter Drucker

 1. Fluent Interface

The Fluent Interface is often referred to as Method Chaining (although that’s only half the truth). To beginners it looks like the jQuery style. While I believe the API style was a key ingredient in jQuery’s success, it wasn’t invented by them — credits seem to go to Martin Fowler who coined the term back in 2005, roughly a year before jQuery was released. Fowler only gave the thing a name, though — Fluent Interfaces have been around

Continue reading →

Becoming a JavaScript ninja

I’m training really hard to become what some people call a “JavaScript Ninja”. in this post I will share with you some important things that I have learned so far.


 1. Use code convections

Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices and methods for each aspect of a piece program written in this language. These conventions usually cover file organization, indentation, comments, declarations, statements, white space, naming conventions, programming practices, programming principles, programming rules of thumb, architectural best practices, etc. These are guidelines for software structural quality. Software programmers are highly recommended to follow these guidelines to help improve the readability of their source code and make software maintenance easier.

There are tools that will help you to ensure that

Continue reading →

Setting up a software company in the Republic of Ireland


To form a company in the Republic of Ireland you will need to send the following documents, along with the registration fee (€100 Physical Registration or € 50 Digital Registration), to The Companies Registration Office (CRO):

  • Memorandum of association
  • Articles of association
  • Form A1

Before being able to write these documents you will need to decide what type of company suits your plans better. There are a number of company types:

 Limited company

The shares in a company are owned by its shareholders. If the company is a limited liability company, the shareholders’ liability, should the company fail, is limited to the amount, if any, remaining unpaid on the shares held by them. A company is a separate legal entity and, therefore, is separate and distinct from those who run it. Only the company can be sued for its obligations and can sue to enforce its rights.

There are four

Continue reading →

Hello World!

Before Wolk Software Limited was founded (just a couple of weeks ago) we spent quite a lot of time thinking about some really complex questions like:

  • What would we like the company to be like someday?
  • What would make us different from other organizations?
  • What would we like people to think about our brand?

The answer to all this questions was related with words like “prestige” or “reputation”.


We are aware of the difficulties that involve trying to reach new customers. We know that there are many other organizations with similar plans in mind and that some of them have been around for a while and have a lot of resources available. That makes harder to compete against them but we have a plan to achieve a positive brand perception and we believe that, even though it is too early to try to compete with the big players in metrics like sales or profit, is never too early to compete

Continue reading →