I'm reviewing submissions for a conference I'm somewhat involved it, so here's some advice. 1/n
If the number of years you've been a programmer really is the most interesting fact about you, then by all means, open your bio with that. For everybody else, make your bio about the good stuff. 2/n
"X can be challenging. In this talk, we'll look at some [techniques|patterns|approaches] to deal with X." -> Tells us something about those approaches, because if you don't, it's hard to evaluate if it's going to be worth watching. 3/n
Teasers are for movies. If you are worried about spoiling the secret in a two paragraph abstract, maybe it wasn't interesting enough to begin with? For everybody with good ideas, tell your audience what they are in the abstract. 4/n
"We'll use X to implement an example" -> Unless X can be assumed to be widely known, add a few words about what X is. "We'll use X (a Java framework for doing foo) to implement..." 5/n
Your audience includes people who have been doing the thing you're talking about for 5 years longer than you. They want to know if they're going to learn some radical new insights or an introduction to the basics. You do them a service by helping them evaluate that. 6/n
The goal of your abstract is not to draw in as many people as possible. It's to draw in the people who need and _filter out_ the ones who don't. (Also, you'll get better reviews.) 7/n
Storytelling! I'm looking at a submission about scaling an NGO's system to help a 100s of millions of people, but it explains the context of the problem it's solving beautifully. Instead win. 8/n
*instant win
I can sometimes tell from the abstract that the submitter only knows one programming language. Often, something that is hard or new in your tech stack was long solved in others. If you submit to a general conf, look around at other communities first. 9/n
Your abstract and bio are not the only thing I look at btw. I have this little website called google where I can find your blog and videos, so it helps if you have stuff out there. 10/n
Speaking of blogs, often I read a 2 paragraph abstract, and have no clue what it's about. Then I read your 4 paragraph blog post, and it's all very clear. Abstracts shouldn't be mysterious puzzles. 11/n
(Side note, I've sinned against all these myself 🙃)
Read your own abstract out loud. It's one of the best general writing advices I've ever gotten. If I had done that with this thread, I wouldn't have made so many typos either. 12/n
Expose your ideas to daylight. A conference shouldn't be the first place you ever talk about this. Explain your stuff in 1 on 1s, to your team, at a meetup... 13/n
If you're going to pitch your product or company, at least be honest about it. Covert pitches give your brand a bad reputation. Also, many conferences accept pitches, but it's called sponsoring. 14/n
Personally, I think that a 1 minute pitch at the start or end of a 45 minute talk is perfectly fine. More than that, or pitches in the middle of a talk, are annoying unless the program indicated that it was a sponsored session. 15/n
Remember that definitions often make more sense _after_ you've explained the concept to an audience, not before. That's more of a teaching advice, but in any case, don't open your abstract with "Wikipedia defines X as..." because your audience can read Wikipedia without you. 16/n
If you're submitting a talk because you're against something, because it makes you angry, because everybody is wrong but you: your idea may be valid, but it's not very attractive. Sleep on it, find a brighter angle, rewrite. 17/n
If your premise is based on the fact that *everybody* does things a certain way, (and you don't explain how you *know* that everybody does that), then I assume you're talking about this one annoying colleague you had in your previous job. 18/n
A lot of my advice is also simply about clarity. Take the readers' POV. "X is hard but with this talk I will make it easy", maybe explain what is hard about it and what your approach will be. 19/n
I think you're all overly worried about "spoiling the talk". Again, if an abstract spoils it, it wasn't worth a whole talk anyway. Tell us the ending, the solution, the secret, the idea you want to convince us off, right there in the abstract. The talk is for explaining it. 20/21
Thanks for reading my rant. I don't have a soundcloud but I live on a planet worth saving, and you can help by choosing better leaders, by holding them accountable (even and especially if it's one you chose), by changing what you buy and what you do. 21/21

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Mathias Verraes

Mathias Verraes Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mathiasverraes

7 May
@stijnvnh @cesardelatorre @yreynhout @Indu_alagarsamy I think the naming is sloppy and creates a false dichotomy. (I imagine it exists for historic reasons). The naming suggests that integration events somehow are not messages that convey something has happened in the domain.
@stijnvnh @cesardelatorre @yreynhout @Indu_alagarsamy It also suggests that events (wether persisted or not) should not leave the Bounded Context, and instead different events should be created.
@stijnvnh @cesardelatorre @yreynhout @Indu_alagarsamy I agree with the reasoning behind that, but I think the conclusion that people usually draw ("Never share domain events") is unnuanced and doesn't consider other forces. In other words, whether or not to share domain events should be a deliberate tradeoff.
Read 11 tweets
29 Apr
The right time to fix it, is right before the cost of fixing it becomes exponential. 1/
If the thing works and you don't have to add anything, don't improve it.
If you add something, and the addition of N raises the cost of improving it with N, be on high alert. 2/
If you add something and the cost raises with 2N, first improve the system to get that particular impact down to N.
If you add something of N and the cost of improving raises with N², stop the work and do system-wide improvements first. 3/
Read 12 tweets
12 Apr
I’m having lots of conversations with @rebeccawb about Bounded Contexts in Domain-Driven Design. This is a small snapshot of some of the tensions involved in picking good boundaries.
🧵⬇️ (1/15)
Some context:

A Bounded Context is an “understandability boundary”, a boundary around a model and its language. You can understand the model and the language in isolation, without having to understand other Bounded Contexts. (2/15)
An Interface is the set of contracts or message types or APIs between Bounded Contexts. They translate from one model and language to another. (3/15)
Read 15 tweets
12 Feb
The most important thing you can do when trying to learn Domain-Driven Design is still very much Eric's book amzn.to/3b1Uqrx People are not recommending this book enough because few have actually finished it.
It has a reputation of being hard to read, which is deserved. Read a little bit every day. Or read the bold parts first, then start over to read it thoroughly.
It also has a reputation of being too academic or too theoretical. This is undeserved: it is highly pragmatic, but it approaches software design from an angle that didn't exist anywhere else before, so it introduces many concepts that seem foreign at first.
Read 8 tweets
11 Feb
The larger the client, the more likely they hire me because they want to "get it right the first time and avoid rework", and the more likely they end up not hiring me because before they do, they want to agree on the scope of what I will do for them.
Repeat after me: All good design is redesign. Rework is a feature, not a bug.
Seriously, the best results happen when people hire without knowing what exactly they want to achieve.
Read 8 tweets
29 Dec 19
"As small as possible" (DB partitions, message size, μsvcs, Bounded Contexts, class names, method arity, ...) is almost universally bad advice in software design. Some critical logic is going to cross those boundaries and result in poorly implemented, preventable workarounds.
But, "Whenever something is wrong, something is too big" (Kohr 1957) is also true for software. Big things are more obviously bad. Small things look simple, because the wrongness hides not inside the things, but in their connections.
Things usually tend to get bigger, rarely smaller or stable. @CarloPescio calls this gravity (things with mass acquire more mass) in the Physics of Software. Our usual reaction is to advocate smallness.
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(