DEV Community

Cover image for 20+ Lessons I've Learned Writing on DEV for 4 Years

20+ Lessons I've Learned Writing on DEV for 4 Years

Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄
Weeks of programming can save hours of planning
・Updated on ・9 min read

Table of Contents

<!-- /TOC -->

I've written 69 articles in the last 4 years and I'm eager to share with you what I've learned so far.

I'm by no means done learning, so if you have additional tips for writing good articles, the comments section is all yours!

1. First, get started 🎬

If you have not written your first post, nothing you would read here matter much.

So make sure to get started, and if you are unsure how, I have a guide for you!

2. Do not Bury the Lede ⚑️

Your first sentence should contain what is most important in your article.

Here is a test you can use to find out whether you bury the lead in your articles:

Can the first sentence of your article be used as a good tweet to introduce your article?

This one is rather good I would say:


This one is rather bad:


3. Brainstorm on Paper πŸ“

To write a good article, you need a good topic, either one you are excited to write about, or one requested by the public(*). You need a good title, and a mission statement of what you are trying to achieve with the article.

I've found it easier to find multiple good titles than to find only one. By that I mean that coming up with a good title when I'm exhausted after finishing an article is hard. On the other hand, if my relaxed brain focuses only on coming up with topics, titles and mission statements, my creativity kicks in. Your mileage may vary but for me nothing beats pen and paper for brainstorming.

(*) Bonus: is a cool tool to find out what the public wants to read. Enter your topic and you will be greeted by the most common questions asked on Google.

4. Talk it Through With a Friend πŸ—£

Words always come easily - said no writer, ever.

A strategy that works wonder is to:

1) write a shitty first draft as fast as possible, with no structure or formatting getting in the way.

2) talk it through with a friend: "... and what I find very interesting is... / ... what I really wanted to say is that...".

3) now write the article you wish you had discussed with your friend.

5. Learn Markdown πŸ“š

If you haven't learned Markdown yet, put that on your TODO-list because you need it to format things nicely.

It won't help you only on DEV but also on GitHub, StackOverflow, Blogging software and many more websites.

I won't elaborate on this because @yechielk has done a wonderful job explaining markdown, so bookmark this:

6. Add a Table of Contents βœ…

One flaw of Markdown is that there is no build-in way to say: "Hey, please insert a table of contents here".

If you use Visual Studio Code, I recommend Marky Dynamic with which you can insert and update an automatically generated table of contents.

This is how the table of contents for this article is built.

7. Be Liquid πŸ’§

DEV has liquid tags that allow to preview a link

{% post %}
{% github jmfayard/refreshVersions no-readme %}
{% tag kotlin %} 
{% comment 2d1a %}
Enter fullscreen mode Exit fullscreen mode

GitHub logo jmfayard / refreshVersions

Life is too short to google for dependencies and versions

Deleting code.

(The context here being: working with problematic legacy code and getting to the point where you have new code (paths) that do(es) the same thing but without the issues, so that the old code, and its issues, can just be discarded)

There is a friendly doc available in the editor.


8. Use emojis πŸ˜„

Break the monotony of walls of text by adding emojis as often as they make sense.

I used to think that was ridiculous, I changed my mind.

9. Use #️⃣tags

Take some time to discover what tags are available at

Technology-related tags are pretty obvious: #javascript #css #java #python...

There are cross-cuttings tags you want to be aware of:

  • #beginners if your article is accessible for them.
  • #productivity if you have tips to be more productive.
  • #career for anything related to jobs and careers.
  • #showdev to show off what you've built.

Some tags have non-obvious rules you need to be aware of:

  • #discuss is for eliciting community responses but is not appropriate for blog posts.
  • #help is to ask for help, not to be helpful to others.
  • #opensource is for discussing the philosophy and practice of open-source, it's not for promoting your open-source project.
  • #watercooler was hard to understand for me, because I have lived in France where slightly off-topic discussions happen around the coffee machine, and in Germany where they happen in the Biergarten. No watercooler involved.

10. Upload images on GitHub 🏞

You can get your point across with fewer words using screenshots, annotations, shapes and sketch.

I use Skitch for that, happily so.

One thing I don't like is uploading pictures in the editor.

As a work-around, I have a GitHub issue where I drag&drop all my pictures


11. Start a series ⏭

Instead of writing one yuuuge article, you can divide & conquer your thoughts in a serie of articles.

Make sure to use the Series feature so that the different parts are linked together.


12. Originally published on your own blog πŸ”—

As much as I like DEV, I want to stay the owner of my content.

For this you need to set the Canonical URL to link to a copy hosted on your own blog. This will tell Google and other search engines where the article originally comes from, and prevent them from flagging the article as duplicate content (thus banning them from the search results).


13. Generate your blog with Stackbit ❀️

You don't have an own blog yet?

Wait no more, you can generate it from what you publish on DEV.

This is what I use for

I love how low-maintenance it is!

14. Add a cover image πŸŒ…

If you have spent time and effort in your article, you don't want it to to look like a boring link when shared on Twitter/Slack/Whatever.

Therefore you need a cover image of size 1000x420.

(I always forgot this information).

I'm a backend guy so I struggled to produce decent cover images.

My favorite strategy is to write programming code and transform it in a gorgeous image with

This is what I've done in Android's billion-dollar mistake(s)

If you can draw, you have a super power that you should use here!

I can't but my wife produced this great cartoon in β€œWhat is your current salary?” is a red flag that you don’t want to work here

If you publish often on the same topic, Canva is a good tool to produce a branded image where you only have to change the title.

This is what I used in How to learn Kotlin: browser vs IDE, books vs tutorials, for newbies and Java devs - DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Last but not least, @pjijin has made a good cover generator. This is what I used for this article:

15. Write in a Markdown Editor ✍🏻

DEV has its own editor at but they won't take offense if I say that a stand-alone Markdown editor is much better.

Thanks to Markdown being a standard (not really, but that's off-topic), there is a variety of editors you can try:

  • Visual Studio Code is good as always, and it has a spell-checker.
  • Notion is a solid choice.
  • Typora is my current favorite for its distraction-free interface.

16. Push to a private GitHub repo πŸ‘¨πŸ»β€πŸ’»

Once you start to use a stand-alone Markdown editor, the logical next step is to push your changes to GitHub. Or Gitlab or whatever you prefer.

I got this tip from @john_papa

Saving my content and making sure I do not lose it (2 of my goals) are reinforced by creating a GitHub repository for my content. I prefer this to be private as it contains a lot of my writing. I also organize my repository in a way that makes sense to me. I can find my articles quickly, modify them, iterate on them, and move along.

17. If English is Not Your Mother Tongue... πŸ‡¬πŸ‡§

Being able to write a complete and easy to read article with no dumb mistakes in a foreign language is such a hard multi-years journey.

Even after 25 years, I'm far from being perfect.

I feel your frustration.

And I highly recommend this article from @vtrpldn who share useful tips to cope with the challenge:

18. Publish Early, Publish Often πŸ’‘

It is often exhausting to polish an article until everything is ready.

My tip: hit the Publish button before you are ready.

What do you fear? It's not like thousands people will read it the minute you publish it, that never happens.

Having something published releases some of the tension involved in finishing the article.

Now read again your published article, and incrementally improve what needs to be corrected.

19. Publish now, Share later πŸ“£

It is often exhausting to publish an article, and I will advise you against sharing it right after it's done.

I have a friend who writes epic super long stories, and I was surprised and jealous that he managed to write 1.000 additional words to promote his work on Facebook and LinkedIn afterwards.

His secret was that he gave time to his brain to relax. He "finished" an article on Monday, published it on Tuesday and shared it on Wednesday.

20. Beware of Vanity Metrics πŸ‘ŽπŸ»

Blogging platforms, including DEV, gives you access to the number of views in your article.

It's in the human nature when you see a number to want to see it big, and growing.

I want to have a word of caution here: this is a hedonic treadmill that is not good for you.
As soon as you hit a target, you get used to it, and disappointed when you don't hit it again.

It's dangerous to have goals that are not meaningful. I would suggest to focus on the impact you have, on meaningful conversations, etc.

What About You?

What challenges have you faced trying to write regularly?

What strategies did you use to overcome them?

Any article you want to share?

If you want to write to me, there is a standing invitation at

Discussion (36)

brandonwallace profile image

Nice article. You should also have an introduction to introduce what you will discuss in the article and a conclusion at the end to summarize everything.

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Good point, I always struggle with conclusions :)

brandonwallace profile image

Me too brother.

josefine profile image
Josefine Schfr

Thanks so much for this, I found the tips & all the additional resources super helpful! One thing I learned while writing and I try to improve on is writing inclusively. You never know who reads your article and what their background is - and I think it's important that nobody feel belittled or excluded.

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author • Edited

Thanks for your kind words.

Agree, I try to remember that we are all different and avoid at all costs title like 5 reasons why EVERY PROGRAMMER should have a BLOG! because it's so wrong to be prescritiptive like this:

I dislike not the content but the title, which deny that we all have different lives.

You can be a developer, mother of two small twins, therefore have no time for blogging outside of your job, therefore your title is false.

motivatedman profile image

I use to recommend people use blogging but your opnion is really appreciable. It's true that we can't get time for everything in a short day of life.

Thread Thread
motivatedman profile image

And hope you won't mind it, that a stranger commented on your posts. I am new to these platforms, and I am afraid if people like strangers comments or not.

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Hello, you are very welcome to comment! My hope when I write an article is to have meaningful conversations with people like you.

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Thanks a lot for your insights @yechielk @pjijin @john_papa @vtrpldn @helenanders26 !

petermortensen profile image
Peter Mortensen

For "4. Talk it Through With a Friend":

How exactly is that done? Do you summarise it (the friend is unprepared)? Read it aloud as is (the friend is unprepared)? Does the friend get it in advance in writing and then you talk about it? Or something else?

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Good question. I don't use the draft article, I try to summarize it, and I try to make it interesting enough to keep my friend's attention

petermortensen profile image
Peter Mortensen

For 3. ("Brainstorm on paper"):

If it is relatively simple text only, I prefer it on the computer (in a simple text editor, not a word processor where you are distracted by formatting).

But I often use a mind map on paper to generate and exhaust thoughts about a subject, including blog posts.

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Mind maps are also a good thing to have in your toolbox. I use paper when I feel stuck on my computer. If I don't, I don't use it.

fpsvogel profile image
Felipe Vogel

How did you make your table of contents into a dropdown list? Great tips!

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

It's yet another liquid tag: collapsible then endcollapsible.

fpsvogel profile image
Felipe Vogel

Oh, I missed that in DEV's Liquid instructions. Thanks so much!

tkuenneth profile image
Thomas KΓΌnneth

Excellent tips, thanks a lot for sharing.

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Thanks Thomas

firangizg profile image
Firangiz Ganbarli

Very useful post, thank you!

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Looking forward to read your articles :)

miguelmj profile image

Very valid points!

margo_hdb profile image
Margo McCabe

You make some really interesting points! Very helpful. πŸ‘

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Glad it helped you Margo!

wanderingsoul profile image
Jameel Ur Rahman

Nicely written article. Thank you for the helpful tips!

kathybowing profile image
Kathy Bowing

Awesome, thank you :-)

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Thanks Kathy :)

graciegregory profile image
Gracie Gregory (she/her)

Great post, Jean-Michel. Thank you so much for being part of this community! We're so happy you're here.

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Thankj you so much Gracie, that gives me the motivation to keep going.

mccurcio profile image
Matt Curcio

Good ideas,
Thank you

empreendedoras7 profile image

Good article.

alecbsherman profile image

Great post - thanks for all the advice!

capscode profile image

very helpful article..
definitely its gona help every writers in any of the platform

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Thank Rahul :)

petermortensen profile image
Peter Mortensen • Edited

For "9. Use tags" (cultural faux pas):

Yes, coffee and beer is far better than chlorinated water.

petermortensen profile image
Peter Mortensen

For "7. Be Liquid":

It is not clear what "liquid" is or refers to. Perhaps add some link for context?

jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

It was a reference to liquid tags, addition to standard markdown