I previously wrote about takeaways from our first recruitment process as a recruiter in January 2021. This time I’m looking back to the recruitment process in order to gather tips for the other half, job applicants and seekers. Part of the advice are also based on my own experiences as a job seeker and some even on common sense. A recruiter of a bigger company could formulate this article a bit differently but these aspects mattered to us, as a small business.

1. Show your motivation

Neon light letters saying "This must be the place"

This is the most important and also maybe the most difficult part of a job application. Even if you have all the required skills, experience and diplomas, the recruiter needs to hear why you want this position, how would you like to use your skills and expertise in the position and the company. Being able to learn new tools and skills is pretty much an asset in today's world but a true motivation is harder to get if you don't have it.

Ok, but how can you demonstrate your motivation then? "I knew I wanted to work in IT when I got my first computer at the age of 4" is a good try but let's try it the other way. Imagine yourself in the organisation and position in question: What does it make you feel? What do you imagine doing: what kind of projects, tasks? What would you like to learn?

Everyone loves flattering but don't overdo it. Try to pick up hints from the company's website or social media pages of topics and projects that motivate you. "I really likes this motto on your website because I..." or "I just loved your approach on XXX and that's really something I want to do as well" or "I want to be your Ansible master!".

2. Get to know the organisation and the branch

Expressing your true motivation for a position usually requires some digging on the company and it's background but there are also other reasons on why you should investigate the company and branch in question. First of all, there is quite a difference whether you're applying to a small startup or a big multinational corporation. In bigger organisations the teams are normally bigger and roles specialized whereas in smaller companies you get and need to work on a wider spectrum. If you start your application with "I want to be a part of your DevOps team" and the company only has 2 employees you might want to double check whether it's really a kind of organization where you want to work.

3. Be a person

The outcome of a recruitment campaign is hiring a person to the company. Each human is different and this is also an important part of a job application. The recruiter desperately wants to find out what kind or characteristics you have and whether you would suit the company.

Bringing up your personal motivation already demonstrates your personality. Instead of or in addition to extensive skill, tool, diploma and position lists you should try to draw a picture of your personality as well. There are numerous tools and instructions online these days for analyzing your strengths, values and characteristics. Ask you friends, family members and co-workers to describe you and you'll be surprised to hear many things you never thought of!

You can write a short description of yourself to the beginning of your cv and list your best achievements in (work) life in it, for example. You can describe how you've handled a challenging situation in your previous work, hobbies or studies.

There are cultural and national differences here, naturally, but you need to stand out and show who you are to be successful in the job hunt! You don't need to a hire a graphic designer for setting the layout of your cv and application but it's important to have a readable, structured layout.

4. Portfolio

Paper dolls or skeches of clothes  on a table.

In addition to listing your achievements in a cv, demonstrating it in a form of a portfolio is an excellent idea. For a photographer or a graphic designer it's a must naturally but other professionals could and should use the idea as well! For nerds or IT professionals (to be), presence in GitHub is a natural way of displaying your activity. If you're not a developer, you can build your portfolio in other ways: in a file you can attach to your application, on a personal website etc. A portfolio can comprise your volontary work and hobbies - anything that can demonstrate your activity, knowledge and personality, you name it! Even if it doesn't directly fit the position you're applying for, it shows that you have motivation and ability to concentrate on something and learn new skills.

5. Cover the minimum requirements

This point probably should have been the first one on my list: read and understand the job ad (well, not all job ads are explicit or well written...). I especially talk about the requirements regarding submitting the application:

It was surprising that many of the applications we received didn't contain any expression of motivation even though we specifically requested that. Not doing that could simply be seen as an expression of no motivation at all... Not all companies would be "kind" like us to ask for missing documents or information, like we did with the most interesting candidates.

6. Apply early

I was quite surprised that there were no last minute or even last day applications! I also urge you to send your application as soon as you notice the job and not to leave it until the last minute. The first applications get the most attention and are also more easily memorable than later ones. Once you've gone through dozens of somewhat similar applications, you just can't focus and get excited of each new one. So, if you find an interesting job offer, don't be a last-minute-applicant like I always used to be!

I always thought that it would be impossible for me to make convincing looking websites. But I did learn it and enjoy it very much. But as soon as I’m ready with a new, beautiful web page on my screen, my joy is cut short by the fact that I still need to make it responsive. Learning website development is in fact a double battle: first learning the techniques to make nice things on a web page, and then learning another set of techniques on how to keep the design beautiful on smaller screens. In my experience, the latter battle is way bigger, and thus hope that sharing the lesson I learned will save someone from the agony I had to go through. I’ll focus on modals because making them responsive has been the toughest part for me.

So, in this article I’ll discuss how to make modals responsive in Oxygen Builder for WordPress. (A modal can also be called a modal window or lightbox.) This advice may help users of other website design tools but I’m only familiar with Oxygen.

The main function of a modal is to draw the website visitor’s attention to itself and try to persuade the visitor to take a certain action (reading a message and clicking “OK”, filling out a form, etc.). In fact, I’ve used the modals in perhaps a bit unconventional way – to show the reader additional information. I’ve set the modals to be triggered by a button click so that viewing the modal is optional for the visitor. I’m not sure how common this kind of use of a modal is but I’ve found it practical!

Anyway, most of the modals I’ve made so far have been very simple in a way that they only contain text, mostly just a couple of sentences. This kind of small and simple modals usually fit the screen without any tweaking when it comes to responsiveness.

But many of the modals I’ve created are higher than the screen, some already on laptop screens. For example, a contact form in a modal easily becomes too high to fit the laptop screen. Unlike you could imagine, it doesn’t shrink to fit the screen even on laptop size (or I just don't know how to do it). Nor does it automatically get a scrollbar either.

The answer is (...drum roll...): block element + overflow: scroll + fixed element height!

What does that mean exactly? It means that you need to set element display to "block", select value "scroll" for overflow and give the element a fixed height. In Oxygen, you'll find the first two settings in the Advanced tab, under Layout. The height is defined under Size & Spacing. So simple when you know it!

There is a further trick in setting the height: it needs to be smaller than the screen height because that’s the area in within the element will scroll. You'll understand this when you start with smaller kind of values, for example with 200 pixels and increase the value if necessary. So don't try to set the element height as high as the element really is. This is where I used to bang my head to the wall for quite a while…

Here is an example of a horizontal column layout in a modal. The middle and right column div are too high for the screen so I made the scroll settings for those divs.

I have another tip for you as well, regarding column layout. When you have a column layout in a modal, the columns start to stack vertically at some point, usually at under 992 pixels. That’s when you need to add a scroll to the modal and it needs to be added to the column element. In larger screens, when the column divs are stacking horizontally, and the column divs are too high to fit the screen, you need add the scroll to the div element instead. If you added a scroll to the column divs in bigger resolutions, you should take it off once the columns are stacking vertically because otherwise it’ll become too complicated (vertically scrolling elements inside a vertically scrolling element).

Here's the same modal on a smaller screen and the column is stacking vertically. I've removed the scroll settings from the divs but made the same adjustments at the column element.

So here's a list of adjustments you need to make to get an element scroll in a modal if it's too high to fit the screen:

  1. define the element ”block”
  2. overflow value needs to be ”scroll”
  3. the element needs to have a fixed height.

And remember also not to set the element height too big so that it exceeds the screen height!

Our Puppet-server installer product is now available free of charge in AWS Marketplace and Azure Marketplace! 'Configuration Manager' is a cloud image with an easy-to-use Puppet server installer. It supports installation of PuppetDB and Puppetboard as well. The source code can be retrieved from GitHub.

Check out details at our product page.

Puppeteers has launched a new service product which allows you to gain control of your Cloud resources by having them imported to Terraform. This allows you to manage changes to your Cloud and radically reduces the need for the pesky "who changes this and why?", "who set this up and is it still needed?" and "what does it do?" discussions. As a bonus you get much better visibility into your cloud.

With 'Puppeteers Cloud Modeling' we import your Cloud resources into Terraform in 7 working days, with only 1 hour of your time. After that you can develop the Terraform code yourself or with help from us.

How does it work?

The service package includes import of 50 Cloud resources into Terraform. We only need you to allow us read-only access to your Cloud and specify which resources and regions you want to be imported. You can (and should) enforce us to use 2FA - that can be done easily with the documentation we provide. We'll deliver a Terraform code for these resources within a week. All this only takes 1 hour of your time.

The service product is readily available for AWS and soon for Azure as well. We can adapt the service for other public Clouds as well as per request.

Have a look at the product page for more information! We're also happy to answer your questions.

Here's a recording on our webinar on March 9, 2021:

We covered the very basics of infrastructure as code, version control, quality assurance techniques and tools such as Puppet, Terraform, Ansible and Puppet Bolt.

The webinar slides:


Throw a job ad on a recruitment portal, wait for applications, hold a couple of interviews and that's it, right? This is what recruiting can look like from the outside but there's quite a bit more to it. A recruitment campaign can be a massive effort especially for small businesses. In addition, if you're doing it for the first time, you may want some advice.

We're a small company (with 3 more or less part-time employees) who recently ran our first official recruitment campaign so we know what we're talking about! We hope that sharing our experiences will help other small businesses and organizations to get the most out of a recruitment campaign without losing too much time and money and building a good employer brand at the same time.

There are naturally a hundred things to consider but I'll point out the most crucial ones in my experience.

1. Planning: time and money

Before even starting, take a moment to think whether this is the best time to hire someone. You're probably swamped up with work and you desperately need extra hands but do you have time for running a recruitment campaign? And once you've found an employee, do you have time for training them? Have you already prepared internal documentation for the new employee to reduce the amount (unnecessary) meetings and knowledge transfers.

If you have a kanban board, you can make the recruitment campaign an epic. An epic is essentially a small project that consists of multiple tasks. By splitting the recruitment into multiple tasks you get a better idea of the amount of work you need to do.

You should avoid having too many epics active simultaneously, so if you're already swamped it's best to clear your backlog - the new employee will initially consume your time, not save it.

As to costs, it may come to you as a surprise that you need money for recruitment even before hiring anyone. You may want to post a paid job ad into a recruitment forum and the time your current employees use for the campaign is also money! If you interview 8 candidates for 1 hour each and there are 2 current employees attending each interview, that results into 16 hours of work.

2. Technical preparations

If you're expecting to receive email applications, I suggest creating a new alias for it (with an obvious name such as hr, jobs or similar). It's not a good idea to use your company's general bulk alias (info, contact etc) which usually also has several internal recipients. This makes it easier to comply to privacy regulations, such as GDPR, and keep track of the applications.

Also, if you'll be receiving applications through several channels, you need a some kind of tracking and storage system for applications, not to mention a good naming convention for the CV and application files and folders.

3. Job ad forum and content

Before posting any job ads anywhere or even starting a campaign, you need to have a good idea of what you need, what you can offer and what you expect from the candidates. When hiring for a small business and even for the first time, the company may not have a clear vision of what they need and what they can get, whether they can attract candidates they want. This is understandable but nonetheless it's good to try to be as precise as possible when writing candidate requirements.

The defined attributes determine the job forum you want to use: for example, if you are offering a traineeship, it's natural to post the ad in student job portals. For us, LinkedIn was definitely the best forum. We were happy to pay 300 € for posting there for reaching the best candidates.

I can't emphasize enough the meaning of motivation from the candidates. Naturally this is something to lecture about to the job seekers out there in the first place but it's something to consider when preparing the ad text: ask the candidates to tell WHY they want the job and why they want to work for your company, what they can offer your company and what they expect in return.

We received numerous applications with no proper expression of motivation. A bare cv with lists of diplomas, degrees, tools and methods are hardly very impressive without an explanation how the person in question wants to use them in the position offered. This is particularly important in a small company where the consequences of hiring an unmotivated employee can be grave both money and time-vise. Also, having to ask for missing motivation letters from an applicant is a waste of time for the job seeker and the employer alike. I already decided that next time we're recruiting, I'll make it clear we don't accept any applications without a proper expression of motivation. Let's see whether I need to take back my words then...

As you want to attract creme de la creme of job seekers, you should pay special attention to the ad content. I recommend this brilliant list by Sofia Pohls - I couldn't have written it better! Remember that your job ad may be seen by your potential client or business partners, for example!

4. Interviews

Plan the interviews in advance: think of the key subjects you want to discuss and make a concise list of questions. Use the same question set for each candidate, in the same order, to make the interview outcome as comparable as possible.

As we had several people from our company participating in the interviews, I created a shared Google Docs file we were able to use simultaneously in order to follow the agenda and make notes efficiently.

If interviews are held online, pay attention to technical details. Make sure all participants have got the right link to the call. Ask all participants to use a proper headset with microphone so that you can understand that they're saying.

For the eventual 2nd round interviews, I recommend that they're held 1-on-1, if possible. That's a lot more "intimate" and allows both parties to fully concentrate on the facts. Multilateral online calls tend to be full of distractions due to latency and disturbances in the call quality, and irregular background distractions in the home offices...

+1 Extra tip: candidate communication

This one is simple: keep the applicants informed, at all times. Confirm the receipt of the application, answer all queries timely, inform all candidates not moving forward and explain why. This was self-evident for us but based on the feedback from applicants and general impressions, too many organizations fail to communicate to the applicants during the recruitment process.

Good, professional and friendly communication with the candidates also helps keep them interested in your company even if they do not get hired. Then, when you are able to hire again, you can try reaching out to the best candidates and possibly avoid going through the full recruitment process again, thus saving a lot of time.

Do you want to work on the front line of IT? Do you want to use the tools and methods of tomorrow, before the masses do? Read on!

Puppeteers Oy is a small, growing IT company that focuses on building modern IT infrastructure for organizations. We’ve got a long experience in IT, especially in DevOps and security.

We need someone with experience and/or interest in system administration and DevOps tools and workflows. You don’t need to be an IT student (current/former), neither are we! You could have 30 years of work experience or none at all: what matters is a passion for hacking and a developer mindset.

As you probably figured out, we don’t have a certain role in mind for you, it all depends on your skills, interests and experience. We will guide and teach you but you’ll have a chance to get your hands dirty with real customer work as soon as possible.

We’re looking for a trainee or a part-time employee or contractor. We’re used to working remotely so you can mostly work from anywhere. We work with international customers so you must be fluent in both spoken and written English.

You could have experience in/you will learn about:

You will encounter these topics as well:

On a personal level, we hope that you are:

What do you get:

Job start is negotiable but we hope to have you onboard as soon as possible!

Salary will be negotiated, depending on the contract type.

Do you have questions? Call our CEO Samuli Seppänen at +358 40 371 6573 on Wednesday 30 December at 15-16 hours EET and Thursday 7 January at 10-11 hours EET or email us at [email protected].

Application deadline: We're looking forward to receiving your motivation letter with a CV (in English or in Finnish) by email at [email protected] by 12 January 2021. Feel free to surprise us with a video as well!

Here's the next episode in our Duplo visualization series, have a look! This time we put Puppet agents to work.


Puppet agents will retrieve their desired state definition (catalog) from Puppet master for the Puppet environment they're in. Puppet agent reads the catalog:

Puppet agent compares the current state to the catalog and notices a difference! It needs to install a missing software package!

It installs the missing package:

The other agent does the same task: it goes to the Puppet master to retrieve its catalog:

It compares the current state to the catalog and notices that they match: no changes are required.

Both agents are constantly on duty and repeat the status check every 30 minutes.

Awaiting new orders from the Puppet master!


What on earth is Puppet? Read our article so you'll know that it is a serious matter and has nothing to do with toys and playing

We've been having DIY visualization sessions on Puppet and sysadmin related topics and we wanted to share some of them with you. We had a lot of fun doing this, hope you'll enjoy this even a bit as much as we did!

Let me introduce the characters involved in the first chapter:

R10k is started on Puppet master. It's going to get a branch ("production" or a feature branch) from the Git repository.

It chooses the right branch.

Git is helping out!

Deploying the branch as a Puppet environment - ooh, it's heavy...

Success! The Puppet environment has been deployed!


Have a look at the next part of the Duplo series where Puppet agents get to work!


What on earth is Puppet? Read our article so you'll know that it is a serious matter and has nothing to do with toys and playing


The purpose of this post is to show that search engine marketing (SEM) can be started rather easily. Small businesses, like our company, may not have resources (money, knowledge, time etc) to spend on marketing and consultancy so I'm hoping that sharing this experience will help and encourage other SEM newbies!

This blog post is in no means a complete SEM tutorial. There are plenty online, paid and free (I'll list some in the next chapter). My idea instead is to focus on the main points for getting started with SEM and also to enlighten some of they key concepts and terms. I'm trying to write down things that I hope I had heard of before starting with SEM!

Our starting point and preparations

The goal of SEM in our company was basically just to test it in and see whether it would be worth the money and effort. At that point we had one product in AWS Marketplace and we wanted to try SEM on it. We also had a real goal (or wish): we wanted to get one new customer a month for our AWS product.

We assumed that it would be better for us to use Microsoft Advertising (previously known as Bing Advertising) over Google Ads: we assumed that advertising on Microsoft would be cheaper to begin with and that we would have a more suitable audience with Microsoft: we assumed that many of our potential customers more likely use Microsoft Bing and DuckDuckGo instead of Google. Also, we thought that we would have less competition in Microsoft Advertising compared to Google.

I'll be writing a separate post on the differences between Microsoft Advertising and Google Ads, so stay tuned! The services have many things in common but there are plenty of differences, too.

As we had higher hopes for Microsoft Advertising compared to Google Ads, that's where we started off! As we didn't have much knowledge in our company in setting up a SEM campaign, I started off by watching tutorials.

My first course on the subject was from Udemy, Bing Ads for Beginners by Tom Wiztek. It was quite ok but as I later discovered, not all required details were discussed there so I went through a few more shorter tutorials online tutorials (on Youtube) and later on also Google Digital Garage courses Promote business online, Become searchable online and Digital Marketing. Surprisingly, the Google courses don't only concentrate on their own products such as Google Ads but discuss the topics from a wider perspective. Courses on Udemy and Google offer certification as well which you might want to add to you LinkedIn profile, for example.

Some key terms to understand

Before you can start setting up a campaign, you'll need to understand some basic terms/concepts involved. Firstly, there are three different levels in a campaign:

A campaign can contain several ad groups and each ad group may have several different ads. The ads in different ad groups can be different or the same ones. Ad groups consist of keywords: each ad group should ideally have different keywords than the other(s). When someone types keywords specified in an ad group in the search engine, an ad in this ad group is (potentially) shown to this person. If you have created several ads for an ad group, the advertising service picks up one (randomly or not, I'm not sure).

Why isn't one ad enough, why should you have several ads and several ad groups? The idea of having several different ads and ad groups allows you to try out different ad text and keyword options and see which are working best with different audiences and campaign settings. I'm sure someone has a better explanation for this!

There are different types of keywords:

I'm not going into details for match types as there are plenty of good definitions around the web. But I'm highlighting that you can also define negative keywords for your campaign/ad group. This is something you should definitely consider as they can prevent unwanted clicks in the campaigns!

Setting up a SEM campaign

Payment and budget

The first thing to do is obviously creating a user account in the advertising portal!

After that, one of the first things you'll need to decide is the payment method and billing options. Payment methods include options such as credit card and bank transfer. As to billing options, Google Ads seems to use almost solely monthly billing but in Microsoft Advertising it's possible to use either prepay and postpay. If you select prepay, you'll need to transfer funds to your SEM account in advance. If you choose postpay, you'll be charged afterwards, usually monthly.

You'll also need to define a budget for your campaign. Both Microsoft and Google ask you to set a daily budget. If you have selected prepay as a payment option, this also limits costs. Remember to calculate the budget wisely so you won't get a heart attack when looking at your monthly bill or at your prepay balance running out! Especially if clicks aren't producing conversions. You can always edit the budgets as well later on.

Campaign settings and hints

You can create the campaigns directly in the advertising portal or do some preparatory work outside it, for example using a spreadsheet. For example, the Udemy course I took describes a possible method of doing a search for keywords and ad texts. Both Microsoft and Google have a tool for keyword research in their portal. You should definitely see which results they give you! When you enter your keyword suggestion into the tool, it gives you some data on how many monthly searches the keyword has, how much competition they have and also suggest a click price.

There are naturally rules and restrictions that apply to keywords and ad content. They need to respect copyright and trademark policies.

As to keywords, it's usually always adviceable to use phrase and exact match type over broad match type. The latter usually results in plenty of unwanted and expensive clicks. For example, in our case, broad match for "puppet windows" made us compete with puppetry related sites. Removing the match type lowered the click price and also the number of clicks.

It's better to start simple, with fewer ad groups, ads and keywords so that you can easily see which options are performing best. Once you've stated that your campaign is up and running and giving even some results, you can add variety to the ads and ad groups. You can edit campaign options any time. But I don't recommend making changes too often: you should leave at least a few days between the edits so that you can see the evolution in statistics more clearly.

Additional features

In addition to the obligatory elements for a campaign (campaign, ad group and ad level settings), there are some additional features you can use in your campaigns: conversion tracking and remarketing/retargeting. The latter terms refer to almost the same thing so I'll be using the term remarketing here.

I had hard times on trying to understand what conversion means in SEM! Luckily, I ran into a clear definition: conversion is something that happens after someone clicks on your ad. The ad campaign statistics only record data of actions that happen before the click, you need to set up conversion tracking if you want to find out what happens after. When someone signs up to your newsletter, fills out a contact form, clicks on an outbound link on your site - those can be configured to be a conversion.

Another useful feature is remarketing. This means that you can create separate campaigns for people that have already seen your ad and visited your website. Targeting this audience is known to be more efficient than those who have never heard of you or your offer.

However, you need to know that conversion tracking and remarketing collect data from website visitors and require use of cookies and thus get you to the area of privacy policy and GDPR. As we preferred not to get bogged dwn with GDPR practices, we decided not to use these features. We thus said goodbye to remarketing but we found a service called Plausible that allows us to set conversion tracking in a GDPR and privacy-friendly way. Plausible is also a simpler alternative to Google Analytics.

Is it working?

Once you've set everything in the portal - how do you know it's working?

Firstly, it takes some times (a few up to 24 hours) before your ad content gets approved. You'll see the ad status in the overview page (Google uses the term Approved and Microsoft Eligible). If your ad content is not approved, you can ask for a reapproval after you've made sure the content follows the terms.

Your ad or keywords may not be super popular and score high enough to be displayed so it may take a couple of days until you see any "movement" on the graphs in the overview page. It's best to monitor the Overview page of the campaign (or all campaigns, if you have several running).

Once you edit the campaign settings or text, it's good to keep on eye of the statistics in the coming hours/days to see how the changes affect the figures. If you notice unexpected changes, for example impressions and clicks suddenly stop, you know that you edited something wrong. For example, you may have accidentally associated an empty remarketing list on your campaign... (Wasn't me...)


So how did it go, did our campaigns work? Did we achieve the goal of one new customer a month? Yes, we did! Describing the results and steps fine-tuning the campaign deserves a separate blog post. I might do that later on, especially if someone is interested hearing about it.

So I want to encourage you again: It's fairly easy to set up a campaign and there's not a big risk for losing a lot of money, so just give it a try! You can easily make changes to the campaign (for its budget, keywords, ad text etc) if you notice that it's not performing as well as it should or if you've made a mistake somewhere. You can also pause the campaign easily if needed.

You'll of course need some time and patience for viewing tutorials and setting the campaign in the portal but that's pretty much it. However, especially in the beginning, you should monitor your campaign daily so that you'll spot eventual issues asap.