Ways to make money as a developer

Ways to make money as a developer

Below you can find a list of ways you can make money as a developer. I’ve wrote these items a while back and I thought that people might find it valuable so I decided to share it with you. ?

  • The most common is to have a job at a company or work as a freelancer for multiple clients
  • Create and sell digital products (plugins, components (in React, Angular, Vue, Bootstrap, etc), themes, etc)
  • build a SAAS (Software as a Service)
  • create webmobile and/or desktop apps where you can have ads or in-app purchases
  • Create a blog and monetize it via:
    • ads (Google Adsense, carbonads, etc)
    • sponsorships
    • become an affiliate and promote other people’s products
    • promote your own products
    • get paid to write articles for publications
  • write and sell ebooks and/or physical books*
  • create a YouTube channel (on topics like: tutorials, developer lifestyle, tips & tricks, news in the field, etc) and monetize it via:
    • YouTube ads
    • sponsorships
    • affiliate marketing
    • promote your own products
  • create online courses and/or online programs
  • live stream (on Twitch, YouTube, etc) and monetize it via:
    • donations
    • monthly subscriptions
  • create a podcast
    • sponsorship
    • promote your own products
  • work on Open Source projects and get donations and sponsorships
  • create a Patreon page where people can support you
  • create a job board and get paid by companies to connect them with developersdesigners, etc…
  • sell swag
  • sell a newsletter
  • have 1-on-1 coaching sessions
  • create a trading bot
  • participate in paid coding challenges
  • participate in bug bounty programs

Feel free to suggest anything else that should be added to the list!

Credit @Dev.to

15 Docker Commands Beginners Should Know

15 Docker Commands Beginners Should Know

In this post, basically, I don’t put options. If you think this command is lacking something important, you will need to check Docker Doc(https://docs.docker.com/)


pull command is almost same as git pull. Get an image to local from Docker hub.

$ docker pull kojikno/conda_docker


push command is also the same as git push. This command uploads your Docker image to Docker Hub. This allows others to use your image or you can use the image from any machines. For example, you can use the image for CI. I’m using my own image for Circle CI to run the test.
The free plan allows us to have one private repo. You can make your image secure. The following: python3.7 is a tag. Generally, a community organization provides multiple versions of images.

For example, node:latest, node:11, node:10 etc.

$ docker push kojikno/conda_docker:python3.7


This command is to create an image from Dockerfile. You can see what Docker file is in the following post.

ml_conda_docker is an image name & tag.

$ docker build -t ml_conda_docker:latest .


This command shows you images you have. I think I have used this command so many times lol

$ docker images

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
arm64v8/ubuntu              latest              56c6cce7dd32        7 days ago          57.7MB
circleci/picard             latest              7d0931871af3        2 weeks ago         103MB
arm64v8/node                10.16.0-stretch     3583429b1ae9        3 weeks ago         853MB
rwmodel/runway/densedepth   cpu                 186943877dd5        8 weeks ago         1.85GB


This command is to remove an images. Sometimes images are huge, so need to delete images especially when I create an image from container which is based on an image from Docker Hub.

$ docker rmi image_id/image_name

$ docker rmi $(docker images -q --filter "dangling=true") <-- remove images which is named none


This command creates a container but doesn’t start a container.

$ docker create image_name


This command is to run a container or start a container.
You should check the options.
Also you can check my post about container(https://dev.to/kojikanao/learning-docker-001-containers-5ac6)

$ docker run -it image_name/image_id bash


ps could be your best friend when you use Docker.
This command shows you running containers’ information. If you want to see stopped containers, you can add -a.

$ docker ps

$ docker ps -a


This command allows us to create an image from a container. We can pull an image and add/install anything we need then do commit. After that, we can start run/create a container the image we committed.
One thing you should know is that commit creates a new image from the image you pulled and the size of the new one could be bigger than the based one. So, you need care about your storage if you don’t have enough storage on your machine.

$ docker commit container_id iamge_name:tag


This command is to start running a container.

$ docker start container_id/container_name


This command is to stop a running container.

$ docker stop container_id/container_name


When you are in Docker container, you can use exit to get out there.

$ exit


This command to attach local standard input, output, and error streams to a running container.

$ docker attach container_id/container_name


This command deletes a container which is not running. You can remove multiple containers if you put multiple container_ids

$ docker rm container_id/container_name

# This commands remove all exited containers.
$ docker rm $(docker ps -qa --no-trunc --filter "status=exited")

system prune

This command is to remove unused data.
If you really want to clean up your Docker environment, you can use -aoption. However, this option removes all unused data so be careful when you use this option.

$ docker system prune OPTIONS


This command allows us to exec another process in a running container.

$ docker exec option container_id/container_name

Actually, there are so many commands you can use/should know, but I guess for a beginner like me these commands are kind of enough to learn the basics of Docker.

Hope this is useful for someone!

If something wrong or missing something important, please leave a comment!!!(I’m still learning Docker ?)

Docker Doc

Docker cheat sheet

If you don’t like to use CLI, you can use Docker with GUI like kitematic(https://kitematic.com/), but probably CLI could be helpful to understand Docker since we will need to write Dockerfile, docker-compose.yml.

Credit @Dev.to

Do You Really Need That Framework?

Do You Really Need That Framework?

Third-party frameworks and libraries are (and will probably continue to be) a topic for heated debate. Some developers spend more time researching and evaluating a potential framework than they do developing stuff with it, some developers reach for new libraries as soon as they run into a problem. This article takes a look at some pros and cons of using third-party libraries and frameworks.

Photo by Carlos Muza on Unsplash

Framework vs Library

First off, let’s start with a few words on what constitutes a framework or a library. The Internet is full of different definitions, some of them argue that the application of the Inversion of Control Principle is the main difference between the two, while some argue that a library is a collection of task-specific methods and a framework is a broad, ill-defined term that could be equal to a library, be a collection of libraries or something much more involved. For this article, the only thing we need to agree on is that both a library and a framework are collections of methods with the purpose of speeding up development and abstracting away common or complex calculations.

The Pros

Let’s start by looking at what advantages a framework / library can bring to our project if used correctly.

If you’re doing a quick proof of concept and want to show that your idea is feasible rather than build a production grade application, a framework might be able get you up and running faster than if you were to write all the code yourself. If you manage to get others onboard and secure funding to take the idea to market, you can decide whether you’d like to keep the dependency or whether you’d like to develop your own, custom made solution.

Faster Development
A framework could come in handy if an application requires a huge amount of work just to lay the invisible foundation for anything tangible. Let’s say that you’re developing an application that displays a lot of different data using graphs. It may take developers quite some time to develop the code that display the different graphs, so you may choose to use a third-party framework to reduce the time it takes to show anything at all.
This can be a competence and/or financial resources call as well. When implementing a service that relies on maps to display information to users, it probably makes much more sense to use an established maps SDK than to hire an entire department to create your own maps.

Tested And Refined Code
This one is only true in an ideal world, because the truth is that far from all libraries and frameworks that are available are updated / iterated on / supported in a timely manner. If a library has a steady user base and has been around for some time, chances are that it has been refined a couple of times. Bugs will have been reported, and a lot of them have hopefully been ironed out in recent versions. This is ultimately a judgement call, and it is one that should not be taken lightly when choosing whether or not to go with a framework.

The Cons

The cons of using any frameworks or libraries can pretty much be summarized using a single word: Risk.
All external dependencies come at the cost of taking risks, and this is something that should be thoroughly considered before choosing whether or not to go with a framework for a production grade application.

Lack Of Support
We touched briefly on this is the advantages section, but from the perspective of using tested and matured code. On the other end of the spectrum, we find frameworks and libraries that are abandoned by their authors, and therefore don’t receive proper updates when languages evolve and weaknesses are found. You could end up building your application around a framework that will ultimately keep you from properly maintaining it, and that could cost you a ton of hours to replace it at a later time.

Major API Changes
Since you don’t control the framework, you also don’t control the changes that are made to the API. You may end up in a situation where you need to migrate to a newer language version (especially true in the Swift world, where I reside most of the time). The authors of the framework may think that the breakpoint between the two language versions is a perfect time to make some bigger, breaking changes to the API, and you will end up having to repair your interactions with the framework on top of the migration. Not fun!

Application Size
Whenever you’re using a framework, your application will add on the size of that dependency, even though you may only use a fraction of the functionality. This is even more important for developers who have a tendency to reach for libraries and frameworks whenever they feel a bit lazy or don’t want to spend a little bit of time thinking about how to solve a problem.

So, Do You Really Need That Framework?

This is ultimately a judgement call (of course), and it varies between situations.
However, I personally feel like a lot of developers reach for libraries way too fast, before they’ve actually considered if they really need it.

To me, the best way of deciding is to start out in the “I don’t need this dependency” camp, and try to convince myself that it will actually be worth it in the end. This can be done by pointing to savings in time and/or costs, or the fact that I may not have the competence to create and/or maintain the functionality.

Note that “may not have the competence” should not be viewed as an easy out by saying “I can’t think of a way to do this right now, I’m gonna use that framework”. There’s a difference between skills I can learn with a few Google searches, and skills that require deep knowledge of a topic, knowledge that takes months or years of studies to acquire. Don’t let laziness make these decisions for you.

Source @Medium

2020 and Beyond Programming Trend Predictions

2020 and Beyond Programming Trend Predictions

Predicting what programming technologies will emerge in 2020

Photo by Safar Safarov on Unsplash

2020 is almost here, as crazy as that sounds. The year 2020 sounds like it’s derived from science fiction, yet here we are — about to knock on its front door.

If you’re curious about what the future might bring to the programming world, you’re in the right place. I might be completely wrong — don’t quote me on this— but here’s what I think will happen. I can’t predict the future, but I can make educated guesses.

Rust Will Become Mainstream

Rust is a multi-paradigm system programming language focused on safety — especially safe concurrency. Rust is syntactically similar to C++, but it’s designed to provide better memory safety while maintaining high performance.

We’ve seen four years of strong growth of the Rust programming language. I believe 2020 is the year Rust will officially become mainstream. What is mainstream is up for self-interpretation, but I believe schools will start introducing Rust to their curriculum. This will create a new wave of Rust engineers.

Most loved programming languages from the 2019 StackOverflow Survey.

Rust has proven itself to be a great language with a vibrant and active community. With Facebook building Libra on Rust — its the biggest project ever — we’re about to see what Rust is really made off.

If you’re looking to learn a new language, I would strongly recommend learning Rust. If you’re curious to learn more, I’d start learning Rust from this bookGo Rust!

GraphQL Adoption Will Continue to Grow

As our applications grow in complexity, so do our data consumption needs. I’m a big fan of GraphQL, and I’ve used it many times. I think it’s a far superior solution to fetching data compared with a traditional REST API.

While typical REST APIs require loading from multiple URLs, GraphQL APIs get all the data your app needs in a single request.

GraphQL is used by teams of all sizes in many different environments and languages to power mobile apps, websites, and APIs.

If you’re interested in learning GraphQL, check out this tutorial I wrote.

Progressive Web Apps Are a Force to Reckon With

Progressive Web Apps (PWA) is a new approach to building applications by combining the best features of the web with the top qualities of mobile apps.

Photo by Rami Al-zayat on Unsplash

There are way more web developers in the wild than native platform-specific developers. Once big companies realize that they can repurpose their web devs to make progressive web applications, I suspect that we’ll be seeing a huge wave of PWAs.

It will take a while for bigger companies to adapt, though, which is pretty normal for technology. The progressive part would generally fall towards the front end development since it’s mostly all about interacting with the Web Workers API (Native Browser API).

Web apps aren’t going anywhere. More people are catching onto the idea that writing a single cross-compatible PWA is less work and more money for your time.

Today is a perfect day to start learning more about PWAs, start here.

Web Assembly Will See More Light

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C, C++, and Rust. Wasm also enables deployment on the web for client and server applications. PWAs can use wasm too.

In other words, Web Assembly is a way to bridge JavaScript technologies with more level technologies. Think of using a Rust image processing library in your React app. Web assembly allows you to do that.

Performance is key, and as the amount of data grows, it will be even harder to keep a good performance. That’s when low-level libraries from C++ or Rust come into play. We’ll see bigger companies adopting Web Assembly and snowball from there.

React Will Continue to Reign

React is by far the most popular JavaScript library for front end development, and for a good reason too. It’s fun and easy to build React apps. The React team and community have done a splendid job as far as the experience goes for building applications.
I’ve worked with Vue, Angular, and React, and I think they’re all fantastic frameworks to work with. Remember, the goal of a library is to get stuff done, so focus less on the flavor, and more on the getting stuff done. It’s utterly unproductive to argue about what framework is the “best.” Pick a framework and channel all your energy into building stuff instead.

If you’re feeling inspired, pick something from this list and start building today!

Always Bet on JavaScript

We can say with confidence that 2010s was the decade of JavaScript. We’ve seen a massive spike of JavaScript growth, and it doesn’t seem to be slowing down.

Keep Betting On JavaScript By Kyle Simpson

JavaScript developers have been taking some abuse by being called “not real developers.” JavaScript is the heart of any big tech company, such as Netflix, Facebook, Google, and many more. Therefore, JavaScript as a language is as legitimate as any other programming language. Take pride in being a JavaScript developer. After all, some of the coolest and most innovative stuff has been built by the JavaScript community.

Almost all websites are leveraging JavaScript to some degree. How many websites are out there? Millions!

It has never been a better time to be a JavaScript developer. Salaries are on the rise, the community is as alive as ever, and the job market is huge. If you’re curious to learn JavaScript, the “You Don’t Know JS” book series was a fantastic read.

I wrote earlier on the subject of what makes JavaScript popular — you should probably read that too.

Did I miss a cool project? Let us know which projects or languages deserve more love and attention!


Source From @Medium