Development

How I Got Started Selling NFTs


THIS IS NOT FINANCIAL ADVICE!
Disclaimer: cryptocurrencies are volatile, be careful!

Hi, my name is Johan, I’ve been programming for 20+ years and I’ve always been fascinated by math and science. One of the first things that I coded was fractals back in 1993 using Pascal. In the late 90:ies I sat staring in awe on a lot of demos (from the demo scene). In 2015 I started to use JavaScript and created a CodePen account where I create patterns, animations, generative designs and fractals. I also create shaders on ShaderToy. Last year I bought an AxiDraw pen plotter so now I also create physical things. Just recently I started investigating blockchain and NFTs because I wanted to try and sell my works online but was shocked to learn about the high energy consumption of Bitcoin and Etherium.

I’m going to tell you what I’ve learned and how I got started selling NFTs. First an introduction to all the concepts. Feel free to skip all of that and go directly to “How do I create an NFT?”.

Fractal Brownian Motion

Fractal Brownian Motion

What are NFTs?

Non-fungible token, also called nifties, are images and videos sold online for cryptocurrency. NFTs have been making the headlines recently thanks to some high volume sales like:

  • Beepl (Mike Winkelmann) sold his work “Everydays: the First 5000 Days” on a Christies auction for around 69 000 000 USD.
  • Nyan Cat, the flying cartoon cat leaving a rainbow trail, recently sold for 580 000 USD when the original creator auctioned a new improved version to celebrate it’s ten year anniversary.

An NFT is a record on a blockchain which tells who the creator and who the owner is. It also shows if the NFT is for sale or not and its price and it has a pointer to the file in question. All transactions regarding an NFT is kept in a ledger on the blockchain. Since the blockchain can’t store files, a common solution is to store the files on IPFS.

There are a number of market places for NFTs like: Nifty Gateway, Rarible, OpenSea, SuperRare, KnownOrigin, Foundation.

For physical art like a sculpture or a painting it is easy to define ownership, either you have the painting hanging on your wall or not. With digital art it has traditionally been harder, I have an image file on my computer, do I own it? NFTs does not prevent copying – millions of people can have the Nyan Can gif on their computer, but thanks to blockchain technology there is proof of who owns it right now. So why would I buy an NFT? Compare it to a photograph, you can either buy the poster version of it from an edition of several thousands – or you can buy one from a limited edition signed by the photographer. Do I just want to look at it or do I care about owning an original? Read more

What is a blockchain?

“An open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way”. Transactions are put in blocks which are verified with cryptography.  Compare it to the version control system git which is also distributed: the whole source code history is kept in each clone. Read more

What is a cryptocurrency?

Most of you have heard of Bitcoin – the first decentralized cryptocurrency, but there are a lot of others, for example: Etherium, Dogecoin and Tezos. A cryptocurrency is a digital asset that is not issued by any central authority, it’s impossible to counterfeit and ownership and transactions are stored on a blockchain. Common complaints are that cryptocurrencies can be used for illegal activities and the exchange rate is very volatile. Read more

What is a smart contract?

The lack of extensibility in Bitcoin led to the creation of Etherium which has smart contracts. Several market places have for example built in support for royalties. That means that when I put an NFT for sale I can specify that I want 10% royalties for every future sale. Read more

What is Tezos?

Tezos is a decentralized blockchain with a cryptocurrency tez ($XTZ) where you can deploy smart contracts. Tezos uses proof of stake as the consensus mechanism. Read more

What is a consensus mechanism?

In a distributed ledger there needs to be a way to ensure that the transactions are genuine. There are two major types of mechanisms: proof of work (PoW) and proof of stake (PoS).

  • PoW is currently used by Bitcoin and Etherium. To prevent data tampering a number of nodes in the network are tasked with computing hashes of blocks but only one of the nodes is selected as the winner at random which makes the majority of computations wasteful. This is called mining. PoW blockchains use a lot of energy, it was designed to do so. It’s been reported that Bitcoin consumes ‘more electricity than Argentina’
  • PoS is used by Tezos and will be used by later versions of Etherium. In PoS a single node is selected to do the computation and therefor there is no waste. This is called staking or baking. I’ve not found any specific energy consumption facts of Tezos but four researchers conclude that: “The energy consumption of PoS blockchains is several orders of magnitude lower than that of PoW” Source

Read more

What is the environmental impact of NFTs?

This is a very important aspect I think. I read a lot about this before I decided to create my first NFT. Since there are different blockhains using different consensus mechanism, you can’t say anything about NFTs in general, it depends on the underlying blockchain. Bitcoin and Etherium both use proof of work consensus mechanism which uses a lot of energy, as you already read about above, whereas Tezos uses far less.  

Read more:

What is generative art?

The final result of the work (image, video, sound etc) is influenced by an outer source – something that the creator can’t control. It could be randomness, it could be the time of day, it could be the price history of a certain stock, it could be just about anything. Read more

Fractal Flame Tangent

Fractal Flame Tangent

Particles in a flowfield

Particles in a Flowfield

How do I create an NFT?

Get a wallet

Temple is a Tezos wallet, it’s a plugin for your browser. Security is important, especially when it comes to protecting your money so make sure you keep your unique code safe. Each wallet has an address, a string of numbers and letters. Another wallet you can use is Kukai which integrates tightly with Twitter.

Buy Tezos

You can buy Tezos with a credit card from a digital currency exchange. Make sure you buy somewhere that allows you to send tez to your wallet. I used Coinbase.

Transfer tez to your wallet

From within Coinbase you can transfer tez to your wallet address. Verify that the money reached your wallet in your browser. Now, we’re ready to go!

Chose a market place

There are three NFT market places on the Tezos blockchain:

  • Hicetnunc (hic et nunc) 
  • NFTz.fun
  • kalamint

The first two marketplaces are open for everyone. Kalamint have recently opened, it has curated content which means you have to fill in an application form first and wait for them to approve. See the link “A guide to ecofriendly CryptoArt (NFTs)” above for other green market places.

From now on I will describe hicetnunc since that is what I have been using. Hic et nunc is latin for here and now, the project is open source and is on Github

Hicetnunc is under heavy development, and breaks from time to time. Hicetnunc have seen a rapid growth in recent weeks which is probably thanks to a lot of people longing for an alternative to (energy ineffective) Etherium based NFT market places. A community have formed on Twitter and on Discord where people help each other out and find new innovative ways of producing NFTs. During this weekend there’s been an event where the community shared free NFTs with each other.

Mint (upload)

You upload the file, give it a name and description, and decide how many editions of the file you would like to sell. As all transactions on the blockchain this takes a while, wait for it to complete before you go to the next step. At this point you still own the file and it is still in your wallet. 

You can mint photos, videos, music etc. I’ve seen nature photos, photos of tomato plants and photos of drawings. Hicetnunc supports these file types: bmp, gif, jpeg, png, svg, tiff, webp, mp4, ogv, quicktime, webm, glb, gltf, mp3, oga, html. 

Did you notice that SVG is a supported file format!? Did you know that you can embed interactivity with JavaScript into and SVG!? – You can! An easier way of making an interactive NFT is to use the newly released HTML file type.

Of course you should only upload content that you created.

Sell (swap)

You decide how much the item should cost and how many of the editions you’d like to sell. The file is now transferred from your wallet to the marketplace. This also takes a while.

Second hand sales are not implemented on hicetnunc at the moment. OpenSea, a marketplace for Etherium based NFTs, have announced that they will integrate Tezos based NFTs in the near future. Source

In your wallet you always see the current balance, it decreases a bit each time you mint something and hopefully it will increase when the sales starts happening. Currently it is a bit time consuming to figure out which of your works was sold for a given incoming tez transaction but it is possible to dig into the raw JSON transaction data to find it.

Cashing in

Some debit cards support withdrawal from Coinbase with direct deposit to the card. Another way is to transfer to your bank account. Coinbase requires you to verify your account by transferring a small amount of money from it first – before you can transfer money to it.

Be aware of the risk of being taxed. There is nothing specific from the Swedish IRS regarding NFTs but there is an example of a person selling products in a web shop in return of Bitcoin, which I think is the most applicable in this case: Skatteverket – kryptovalutor

Burn

You burn an NFT if you made a mistake. This is not possible on hicetnunc right now. What you can do is send an NFT to a burn address, note however that it will remain on your list of creations.

Möbius Transformed Iterated Function System

Möbius Transformed Iterated Function System

Problems

On hicetnunc there is no enforcement of intellectual property rights. Since anyone can sell anything there are plenty of examples of people copying the works of others and selling it as their own. It’s as easy as downloading a nice looking picture from the internet and then mint it.

There is a particular fraud called “copy minting” which is when someone downloads someone elses NFT and mints it as their own. Watch out for fakes when you buy! One thing that can improve the authenticity is that creators can get their Tezos wallet address verified so that the hicetnunc profile page displays the name and contact information. Make sure you check the profile page first before buying.

Future

Are NFTs just a fad, or are they here to stay? Are we seeing a buying craze during the COVID-19 pandemic? How are NFTs going to be used in the future? Maybe purchases of cars and houses will be in the form of NFTs. 

I definitely think we’re in a NFT bubble right now, but that NFT’s are here to stay.

The future will tell!

Rainbow Triangles

Delaunay Triangulated Random Points

Development

My experience with a coding bootcamp


It took me a long time to figure out what I wanted to be when I grow up. Thinking back on the things I have considered, the common thing seems to be that I want to create. I have studied textile design and packaging design and at some point I wanted to be a baker or work with movies, you get the picture. Then two years ago I had to really rethink my working life and decided I needed a new challenge, a new start. That’s when I surprised both myself and the people around me with realising I wanted to become a developer. 

After a rigorous application process with tests, two interviews and a letter of motivation, I got accepted to a 12 week bootcamp in C#, with the promise of a job after graduation. It was a scary step to take, but I’m so glad I took it.

The bootcamp

The first three weeks were dedicated to the basics, like if-statements, loops, data types and classes, in a very high tempo. For each concept we would get a short lecture followed by related coding tasks. In those first days we could run through 5-6 new things every day. At the end of the third week we got our first group assignment, build a console app and of course all six groups decided to make some kind of game. My group did an ASCII Battleship game and even though it wasn’t pretty, it was so gratifying to make something that worked! 

After that every week we tackled a new subject, like SQL, Entity Framework and MVC. Now and then we would have a one-day focus on something like UX, Scrum or RegEx, along with lunch and learn sessions about softer skills, like communication and consultant behavior. One day we got to build a simple html site in pairs as an intro to git (with the goal to solve as many merge conflicts as possible).

Every week ended with a checkpoint, a test to make sure that everybody kept up with the pace. For some that sounds scary, but to me they were a great confirmation that I took in the knowledge for that week and could spend the weekend getting ready for a new week of information bombardment. 

During the last two weeks we did our final graduation project to tie all our new knowledge together in an actual product and at the end we had to present it to a panel of industry people. The project was just as much about working in a team and trying to work within Scrum as it was about the code. After that, we got to toast as graduated developers.

Now over a year later, these are some of the things I find myself reflecting over. 

Lifelong learning

I knew from the start that I would not know everything at graduation, rather I would know enough to get started as a junior developer and continue learning on the job. For me one of the greatest things I took away was the knowledge that I can learn anything. Even though the bootcamp was mainly in C# I could confidently say “not a problem, I pick up things quickly” in an interview for a position that was not C#. 

Peer-to-peer

We practiced pair-programming and were always encouraged to help each other out. For me explaining something to someone else will help me cement the knowledge in a much better way. It also created a great team-feeling where we all wanted success for each other, and no one was afraid to raise their hand and say they didn’t understand something.

Soft skills

Like I mentioned we were also coached in other areas needed to be a successful developer today. For a junior developer it can be those other skills that are going to set you apart from other developers with more experience than you. Because in the end it’s not always enough to know the technical part, speaking with customers (in a way they understand) or being a good teammate can be just as important.

Is it better than a university degree?

No – it’s just a different way to become a developer.

For me it’s two completely different things. In pursuing a computer science degree you gain deeper knowledge on the theoretical and high-level concept, and a bootcamp focuses on the practical skills you need to be a productive programmer. It all depends on who you are and why you want to become a developer.

#theTIQQEcode

Finally 2020 is coming to its end!


This year has not been as we planned. We sat together for the first time on the 2d of January in Örebro and made big visions of how this year would be. We had a great Kick-off in mid January where all employees of TIQQE set the scene for the year. We had workshops, made dinner together and it felt great! A lot of laughter, warmth and forward-thinking. February went on as planned and then came March.


In March we were heading for the Philippines. We had planned this trip thoroughly, meeting up with the team, having a kick-off in Cebu, talking about leadership and getting to know eachother better. 
A few weeks earlier we started to hear about a mystic flu that spread across asia. The afternoon and night before our departure we started to wonder if it was smart or not. The bags were packed, passports ready and movies downloaded to the iPads. Then it started. COVID.
The 13th of March we communicated to all our customers that we intended to keep our employees safe and that we would stop travel to meetings and assignments.
From that day we also started to encourage our employees to work from home.

With that said, we’ve had a fantastic year. Strange but great. When we realized that this wasn’t anything that would pass quickly we made some guiding decisions:

  • We wouldn’t back on anyone that we’ve signed up to work with us
  • If we had to do economic cuts, we would take us in the Supportgroup ( our leadership team ) first.
  • At all cost, keep our employees safe as far as we can control

So, this year we’ve employed 12 more TIQQE friends in Sweden (three starts Q1 2021) and we engaged 7 new friends in the Philippines. 
We have done a lot online. Lunches, monthly meetings, a summer party with an online escape room, and year-end meeting with reflection. We drove around Sweden walking and talking one-on-one and delivering prosecco so we could celebrate later online.
TOGETHER
All the things we’ve done with our employees and customers have been successful because we do it together. No one has been in this pandemic-year alone.
So when we sum this year up, we want to THANK YOU ALL. All customers for feeling TRUST in us, so we have been able to keep collaborating and develop AWESOME stuff without physical meetings & all TIQQErs for putting up with us and having the COURAGE to have faith in our way of working. Ùbúntù – we are because We are. Let’s make 2021 better than 2020 together!
Have a wonderful Christmas & a Happy New Year  

Jacob & Sofia

#theTIQQEcode

#theTIQQEcode

Our Vision at TIQQE is Vision Zero when it comes to employee and customer turnover. What do we do when one of our employees decides to leave us? 


Well, we make sure that we’ve checked the following boxes

  • We’ve explored every possible way
  • It’s been a really really hard decision to make
  • It’s what’s best for the employee

In this blog we would like to share a story about our employee #5 Benjamin Bandy  who has decided to leave TIQQE. With that being said, he’s leaving us in person but never in our hearts.

Benjamin joined TIQQE just when we were starting up as a company, it was the first of september 2018.

Benjamin has been an employee and a friend who has always lived the values which are so important, he is nice, caring, sees the potential in everyone and always a pleasure to be around.

He is also a kickass techlead and developer who has always been highly appreciated by our customers. 

So why does someone that lives and breathes our values want to leave? Well, two years ago Benjamin met the love of his life. Unfortunately for us she lives overseas, in the US. For some unknown reason she doesn’t think that Sweden is a fantastic place to be (coming from Silicon Valley and working for Roblox), so in a couple of weeks Benjamin will take his belongings and move 7.921 kilometers away. 

Benjamin has been an amazing colleague for everyone at TIQQE, he has been a great friend and will be hugely missed by us all. However he has promised us to keep his Slack account so we can still frequently be in contact with him and not to forget that every friday morning at 4am he will wake up and join us for our weekly Quake tournament.

And we’ve created a mini-Benjy that we’ll keep in the office until you come back.

Even though he will be a few more kilometers away from us he will always have a special place in all our hearts. We wish you all the best Benjamin and hope that you come home soon! 

Jacob & Sofia

Development

TIQQE leadership program


Last september we started the TIQQE Leadership program. In this post I am going to tell you about my personal experience and reflections I did about it.


Change is constantly in our life. You deal with changes all the time: in your job, in your everyday life and in your relationships, with others and with yourself. 
Everything changes, everything evolves and you can’t stop that.
The only way to not be left behind, stuck in your safe bubble you have hardly built, is to embrace changes, to be a part of them. 

Embracing changes forces you to continuously question yourself and actively decide to make actions that could lead to failure, loss or even force you to start from scratch, again. And sure, that can be scary but it is the only way to grow and to improve yourself.
Embracing and being part of change is fundamental in a developers life.
In fact, IT leads the evolution and in the last two decades we have witnessed a real and true revolution in the sector.
Software has pervaded our lives and reshaped them.

The way of developing software evolved, so did the role of the developer.
Working in a team, having good communication with colleagues and customers, feeling empathy, being flexible and able to adapt, listening and supporting, being nice, depersonalizing, taking responsibilities and having leadership skills, are all qualities that a developer should have to be successful. 

Mastering one programming language to develop a certain kind of product on a specific infrastructure is not enough and valuable anymore.
What is important instead, is the attitude to never stop learning, to start from scratch again with a new technology.
Being ready and prepared to challenge yourself is precious. 
Despite the name, soft skills are not easy to master at all, and in order to achieve some of them you really need to be prepared to work on yourself.
Not all the IT companies have realized that yet and above all not all of them dare to change.

Receiving the invitation to join the TIQQE leadership program was for me, like receiving a message saying “we believe in you, we are investing in you”.
That was really nice. I got really thrilled about the idea that I was receiving a great opportunity to work on and improve my soft skills.
The program had the aim of working and practicing with some really simple but powerful tools and making their use a habit, something that is a natural part of our way to work and think.
The tools give us the ability to see different perspectives and help to work on ourselves not only personally but also in a team context and in a company context.

The best part of the experience was for me, the possibility of sitting together in the same room and speaking about ourselves. It gave us the possibility of getting to know each other, and learning from each other. I thought a lot about what my colleagues have told during the sessions we had and I tried to bring some of their perspective in my life.

I think it was an amazing experience that gave me a lot and that showed me how much I can grow and improve both personally and professionally, for myself and for the people around me.

Development

How to make it work

I joined a new team from the beginning of this year at one of our customer. This project is more complex compared with my previous work since it involves more team-members and larger environments. I learnt a lot from this project and I would like to share some experiences that helped me grow.

1. We work closer to the customer.

My previous projects involve very little communications with customers. The customer delivery did most of the work. Differently, the current project requires the customer and the development team working closely. We meet at least once per week, either face to face or online (due to the current COVID-19 situations), to gather the user’s feedback with the following aspects from different locations,

  • User experience on current version of the product
  • Bugs and critical incidents reported by service desk
  • New feature requirements

Meanwhile the development team shows the progress to our customers. In my opinion, it is an efficient way to understand each other in both directions, and this helps us meet the customer requirements in time.

2. We work closer to the different teams.

My previous tasks require me working individually, while this project involves several teams with various assignments and co-workers from different time zones. That don’t cause us any trouble, since we find our way to work smoothly among the teams and individuals as follows: 

  • We start our job with a scrum daily, and it triggers my day by making a proper plan for myself and also keeping track of others’ progress. 
  • People in our team are nice and cooperative, we are willing to overcome obstacles together and share ideas with each other. When I was new in the team, I did the pair programming from time to time with senior members. The pair programming helped me to quickly understand the existing system and new knowledge.

3. We have stricter control of the code quality.

Code quality is important, as it impacts how secure, maintainable and reliable your codebase is. Particularly in this complex project, multiple teams can share the same repository. In order to improve the code quality, we have the code review and do the code refactoring. And I’ve gotten used to the “test-driven development” style, I realize the benefits of covering code by unit tests: 

  • Easy to troubleshoot if the codebase is broken due to a new submitting
  • Easy for others to understand the code being tested
  • Reduce the bugs and design flaws in the early stage

4. We have more comprehensive access to framework features and technologies.

It is always fun to learn new stuff. And I really appreciate that I have such an opportunity to learn AWS technologies by participating in this project together with awesome teammates.

Development

Fullstack or not?

Fullstack vs. frontend and backend separation. This post is about how to optimally organize your team to build solutions that deliver as much business value as possible. This includes the most important aspect, the user experience.

Let’s say you have a team that should build and run some kind of web service that is presented to users both as a web page and an app that exists in the app stores.

One of the questions is how much specialization there should be within the team. Does every member of the team work on everything? Do you have specialization? Lets for this post limit the discussion to developers in the team. Most teams will need specialized roles for designers, testers, project owners, stakeholders, etc but that is outside of the scope of this post.

From my experience there are 2 major ways I have seen this organization happen naturally:

Fullstack or Frontend / backend separation. If having the choice, what way is best for your team?

Fullstack

Every developer works with everything needed to develop and run the solution: the same people do the HTML and JavaScript, down to the (server side) integrations with business critical (in some cases legacy) systems. These systems provide the actual value to the webpage or app.

Fullstack does not preclude having a UX designer involved, that does the design in design tools, but the designer doesn’t do the actual implementations. And in my experience the actual implementation of a design is very significant for the end result.

Pros

A single developer or developers that have high bandwidth communication can work very efficiently on a single feature and deliver it into production with a minimum of coordination and communication. This can be a great advantage if time to market is the most important thing for example.

Cons

As a developer dealing with integrations against internal systems it is unavoidable that you take a perspective of how the internal legacy systems at a business works. This will likely impact user experience.

It is hard to find developers that are good in both frontend and backend. Some developers with lots of backend experience might overstate their frontend skills, and vice versa. In a worst case this could result in a very bad user experience.

This comes from the fact that you will know all the internal complexities. It will leak into the user interface, and also developers will be tempted to cut corners and implement a user interface for the legacy system(s).

Frontend & backend separation

You have some developers that are doing frontend only, that is the HTML/JS/CSS or implement the iOS/Android app code.

Then you have the backend developers that do the “web-back end” that is code that is running server-side in the public cloud or datacenter, and provides the web facing APIs

Each group within the team owns the technical architecture and evolution of their respective part.

Pros

Frontend developers won’t know so much about internal systems and what functionalities or apis they provide. They will instead be able to think clearly from users perspective in every case.

Frontend developers can fully focus on growing skills with web frameworks and new and evolving frontend technologies and app native apis. Same thing for backend developers, they can fully focus on building maintainable and operationally stable backend API:s.

Cons

It is less efficient to deliver new functionality into users hands. More coordination is needed to make the solution work within the businesses constraints and current capabilities, and at the same time implement the user experience that is optimal.

Some developers will find this way of working less satisfying if they are interested in both frontend and backend technologies.

Conclusion

In my experience, if you prioritise user experience the highest, like in the case if you implement a B2C solution, frontend / backend separation is best.

If User experience is not of the highest importance, or if your target market is “power users” that to some degree know the internal workings of the business. This is more common in B2B scenarios. Fullstack might be best for your team.