What I expect from employees

I have to be frank, most people don’t care about learning and don’t have a growth mindset.

That is fine, but then I prefer not working with you. And you would probably prefer to not work with me.

I will list some things I expect from employees, and in general people I want to collaborate with.

Personal

A healthy human is a better human. Have respect for your own body and mind.

General tech skills & hygiene

Systems and software we use

Company introduction & showing how to do some of the tests

Company “culture”

Note that even for a customer support role at our company, we expect people to be able to code a bit. We really value automation and people who are interested and able to learn new things.

Take a look at our automated warehouse here. I have an ambition to fully automate the warehouse, meaning robots for the last part of the picking process.

General tests before being hired

Before we hire anyone, they need to prove via some loom screen recordings that they have the above skills.

This is the minimum set of skills we expect from anyone working with us.

You can combine all tests into one loom, or make separate looms for each test.

test 1

make a loom and show 15 different operating system shortcuts

test 2

make a loom and show how you would use chatGPT to write a blog post about a topic you know well

test 3

make a loom and show how you would use Airtable to manage a list of contacts, using sorting, filtering, and grouping. And making different views for different purposes, for example filter on “status” or grouping on country or company

Show a few Airtable shortcuts and explain and show the difference between a grid view and gallery view.

Also create a form and show how forms can be use to submit data into a table.

Also setup one automation in Airtable, for example, when a new row is added, send an email to a specific email address.

test 4

Make a loom where you show 5 Gmail shortcuts in practice, and show how you can find all shortcuts in Gmail

test 5

Make a loom and show how you would compress an image, and show the difference in file size before and after

test 6

Make a loom and show how you would use the python programming language to write a script that reads a CSV file and prints out the content

You can use AI’s like chatGPT to help you with writing all the code.

Test out the program on your local machine with a test csv file.

test 7

Read THIS ARTICLE I WROTE about SEO/SEM

and afterwards make a loom and show examples of good and bad filenames. Also do “inspect” in google chrome on a random webpage and show an image with an alt tag, explain in the video what it is.

Also try to explain the structure we see when doing inspect on a webpage (HTML).

What are the different tags and what do they do?

test 8

Make a loom and show how to use “inspect” in google chrome and see all images loaded via the network tab. Also show that you can filter on different type of resources being loaded, for example, only show images. This can also be used to download images from a webpage, demonstrate this in the loom.

test 9

Add the adblocker “ublock origin” to your browser, and show how you can use it to block ads, turning it on and off on a webpage as needed. Also use the google translate extension to translate parts of the text on a webpage, without leaving the page.

Submitting the tests

Send the looms to me, and I will review them.

Conclusion

If you can do all the above, you are probably a good fit for us :)

You can use AI to help you with all the tasks, but you need to understand what the AI is doing.

Back-end developer tests

We have a Kotlin back-end, and we use Postgres as our database. Keyword summary:

The main task is to improve the customer AI app we have built. Which we also aim to be a competitor to systems like Zendesk.

This is the biggest project we have, it does not only include an integration with Gmail, Shopify, OpenAI (AI models) etc. to auto-answer customers (with human in loop), but also returns, complaints and more.

Then we have other smaller tasks like improve the custom review app we’ve built and making new @Scheduled tasks/jobs to automate business processes.

In addition some coding on our Shopify theme, mostly liquid templating+CSS/HTML/JS will be needed.

Note that only I have been working on the codebase so far. All code is written by me. You will be working directly with me and not some legacy project where none of the original developers are around.

One of the things I am a big fan of is deleting code. I think the best code is no code. I “aggressively” delete code that is not needed, so the codebase is pretty small and hopefully easier to understand due to my OCD.

Tests introduction

Test - simple frontend + Backend integration

To pass this test, make a loom showing and explaining all the code and the working web app in action.

Must use frameworks & libraries:

Make a spring boot app that on /test returns a list of products from a Postgres database that has been populated with a scheduled job that fetches products details from https://famme.no/products.json and saves them in the database. Use flyway for database migrations (initial table setup). Limit number of products you save to 10.

Note that one product can have multiple variants, so the json response from that endpoint does not necessarily translate cleanly to one database table, if you decide to solve that with JSONB or multiple tables with foreign keys is up to you. You also don’t need to save all the fields from the json response, only the ones you think is most relevant

For example you could simply use Scheduled with initialDelay of 0, to get the table populated at startup.

The list of products should be nicely formatted in a table, Shoelace should be used for “styling”/components and HTMX for the table to be updated without a page reload. Use Thymeleaf for templating.

So the website would be something like:

  1. header
  2. button to reload products
  3. table with products

and when clicking the button an ajax request is performed(by htmx) to swap the table with the new products.

Finally, make a form on the same page either above or under the main table, where a new product can be submitted. When submitting the form, the product should be saved in the database and the table should be updated with the new product. Again, using HTMX to update the table without a full page reload.

Test - code understanding

You will get access to the code and make a loom to review it:

You have to use Intellij while reviewing the code in the looms. If you’re a Kotlin/Java developer not using Intellij, you’re doing it wrong :)

Test - Use of AI

NB! When I write “context”, it is context from the repository you will get access to. The test is not only about being able to give an OK prompt to the LLM isolated, but also to choose context from the existing repo which is most relevant to solve the task. That means the code generated by the AI should work with the existing code base

Currently, Claude.ai is the best AI for code generation at the moment, beating chatGPT.

Make a loom where you give where you show:

Show that you copy paste the code into the codebase and that it compiles, fix any compilation errors if needed, either manually, or by re-prompting the AI.

For both of these scheduled jobs, which context should you give to the AI and why? Context length is not large enough for the whole codebase, so you have to be selective.

Developers who don’t use AI to give themselves “superpowers” are wasting their time 🥸

Shopify Front-end developer tests

These tests are for a potential “Shopify front-end developer” role.

Make 1 loom for all the tests, or make separate looms for each test. The easiest is probably to just use one file to show all the tests below and do it in 1 loom.

test 1

Make a loom showing how to: use shopify theme pull --store=..., shopify theme dev --store=..., shopify theme push --store=... to develop on a shopify theme locally.

test 2

Make a loom showing how you make a script in your favorite language that reads the products from:

https://famme.no/products.json and prints out the product sku:price, for all the skus and prices in the json file.

test 3

Make a loom demonstrating your understanding of css grid and flexbox in practice on a real theme

test 4

Make a loom showing how to render a metafield in a shopify theme, and how to add a new metafield to a product

test 5

Make a loom showing how to render information conditionally on domain, tip: request.host which is relevant for country domain

test 6

Make a loom showing how to use media queries to render different content based on screen size, for example a separate mobile image and desktop image