This post is equal parts actually about Docker, and the hilarity of being a woman on the internet in tech.
It is funny to me that I would get any kind of attention on Twitter, I don't post for engagement, I barely write about tech, and I'm otherwise barely on social media at all. I post on FB every six or so months so my out of state relatives know I'm alive and that's about it.
So I was certainly not expecting an offhand tweet complaining about Docker to get any kind of attention.
JTKThe longer I use Docker, the more I think it is lowkey terrible and we are all lemmings for going along with it becoming this popular15:42 PM - 13 Jan 2022
I never knew that in order to have opinions about Docker I would need to announce my pedigree, but apparently I do.
To my utter astonishment, someone on the Docker team found their way to my thread to call me a junior without the background to appreciate the problem set Docker addresses. And then asked to be unsubscribed like a heeeelllllla boomer. That part made me laaaaaugh.
Solomon Hykes@solomonstre@celkamada @h3techdev @dswersky @heyJTK Look I get it. When I was a baby programmer I also thought the tools written by my elders 10 years before, to solve problems I had never experienced, were trash. So you know what I did? I wrote better tools. You should go do that… after unsubscribing me from this dumb thread. 🙏07:39 AM - 14 Jan 2022
Anyway here are my qualifications: Have been in this field for many years, made senior in two and a half, have worked on giant gnarly legacy code bases and alternately built multiple products out of nothing to be hugely successful.
I am a code mentor and have volunteered teaching code, I am (as of recently) a paid guest writer for a database company, and managed to get straight As in senior year of a Software Engineering & Security degree while also working full time. My GPA was something like 3.8 and my major GPA was 3.9. Actually, I've been in school at least half time since 2019 so I have experienced a meteoric rise professionally with much less time on hand than equally qualified peers.
In one past role, I was so brutally effective that I received an off-cycle promotion from Software Engineer, not to Senior Software Engineer but directly to Dev Lead. Within less than a year of working there.
So...yeah. I am both educated and experienced, and as entitled to my opinion on Docker as anyone. (Although hot take, anyone can hate Docker for any time and for any reason, who cares lol).
Most notably, I actually had to spend somewhat extensive time using a dockerized development environment when at a past job, we had dependencies with no good MacPorts option that did not run on Mac period. In that role, I was also responsible for software that dealt with tracing vulnerabilities through containerized environments which introduces a special, interesting set of challenges.
Surprise surprise, twitter is not a tool of nuance. There were more to my comments than "Docker is terrible", naturally.
I made the mistake of wondering why this hit such a nerve with people and googled latest Docker tweets period, thinking surely I wasn't the only one with these issues. (Bad idea). Aaaaaaand that's when I found the subtweets. They centered on a few themes:
The internet is a wild place lol. Imagine me tweeting "I don't like broccoli" and a bunch of nerds demanding I explain why or can't make that comment. Or saying I can only dislike broccoli if I mention that cauliflower is a valid alternative. Or say "it is your fault you don't like broccoli you should have been cooking it with this technique, DUH!"
But as explained before, I AM ACTUALLY PERFECTLY QUALIFIED TO HAVE BOTH THE OPINION, AND A RATIONALE BEHIND IT. The internet neckbeards I'm sure will be so relieved to hear it (not).
- For starters, junior developers finding Docker un-intuitive and with iffy docs is also my problem, since what junior developers struggle with rolls downhill to me as their senior
- I have consistently found the cli poor, things I need to do regularly are not prefab commands or require large numbers of fiddly flags, I need to wind up making aliases for tasks I find common enough that they warrant a built-in command and it seems like something so easy to fix if you care about dx at all
- Resource consumption and old volumes hanging around remains annoying
- I find the docs very sparse, my particular criticism with them could probably be addressed by a 1-2 liner in various sections just showing one vanilla example of cli options. My experience in the docs is being redirected around like a pinball and eventually finding what I need outside of the official docs. If the rest of the internet is better than you are at explaining your product, imo that's an issue
- In light of I think, two Docker team members finding their way into my thread and being obnoxious, I now have a personal animus that I didn't even have originally so thanks guys lmao
I also have a criticism much more meta than Docker, and hate this opinion all you want but oh well:
Software is bad. Computers were a mistake, (To quote an old coworker). The less software my app depends on, the happier I am - and that includes Docker.
Particularly for my local dev setup, I tend to find that Docker wastes much more of my time than it saves. Tending to this tool and its various needs takes time I don't have. I'm busy, I'm sure if I had time to plumb the depths of the Docker documentation I could come up with a super cool setup that addresses every little thing about it that I don't like. For me personally, I have NEVER liked the "f@#$ you figure it out or you don't deserve the tool" mindset.
Give me things that work seamlessly. I have s@#$ to do.
I don't want to toil away customizing a linux box, give me an already usable computer. If you like that, great, but not everyone does. With more hours in the day I'm sure I could sit down with Docker and get into the weeds but I don't have time and for a tool so popular I don't feel like I should need to. Containerization is an area I have experience but not one I wish to specialize in, I'm hardly the best person around to come up with a complex Docker setup and feeling like I have to know it to do what used to be just running a flask app on localhost seems extremely overwrought.
- If you like Docker, from the bottom of my heart I think that's awesome. My least favorite use case (local dev) emerged in the comments that equally frustrated and delighted people. I think its great that we all are so different and have different likes and I'm happy Docker works for some people
- Things were bad before Docker - perhaps they were, some of it I wound up liking better for whatever reason. I've worked with Vagrant, VirtualBox, deploying to vms up on GCP, and whatever else. Maybe my preference just settled on those. I certainly miss local dev without Docker to mess with. It doesn't need to be how everyone feels
- Docker has its place - I agree with you! Yeah, Twitter is not great for nuance but sometimes I have really enjoyed Docker being in the mix
- Come up with something better then - well that's ridiculous. Returning to broccoli, clearly I can't invent a better vegetable. It is beyond absurd to imagine I can only have an opinion on Docker if I have a competing container solution's software ready to go. News flash, there are plenty of things made by people smarter than you or I that we still won't like for whatever reason. Also, the hilarious detachment from reality here - I have a mortgage and am in school full time? I don't have time to invent a better container solution if no one is paying me to do so, some of us have day jobs babe
No one expects the internet to be nice to them, let's be real. But in the negative commentary I will say, themes certainly emerged.
JTKFunny to me that I would be expected to have what, only agreeable opinions on tools I use in my profession?
Feels like the tech equivalent of being catcalled to smile more
Also as someone with software out in the world, yes there are things wrong with it that annoy ppl 1/19:46 PM - 14 Jan 2022
I'd love to never have to talk about this again, but it was hard not to see a sexist tilt to the replies. For starters, seemed supremely random that so many people wanted to discredit me by calling me a junior and implying that that could completely explain me not liking Docker.
It is not difficult to find the podcasts I've appeared on, my long held Senior or higher title has remained in my bio for years. Disagree with me all you want but you do not have a leg to stand on if you want to come at my seniority. Which is fortunate, because honestly as a newer and less secure dev maybe a zillion dudes telling me I have no idea what I'm doing would have bothered me.
That critique is even sillier if you unpack it: if I were junior would I not have permission to dislike technology? The software I admire makes complex things simple, so the highest compliment I could give Docker would be that its a good tool for junior devs. Some of y'all really have it twisted on the topic of juniors not understanding software and how that reflects on the software.
Lastly I'll say, a lot of bias is sub-optimal associations. People associate women with less expertise in tech, and these replies showed it. I think sometimes non-URM people think it is a security blanket, like somehow URM feel better if we can blame things on bias issues. I will assure you it is not the case, it just means for me that people are coming down hard on me regardless of the validity of my opinions and even if I respond in-depth, they are going to discount my expertise and conclusions. Makes it feel very futile to put effort into defending my views.
Something about my personality, I have really always hated status symbols or things like pulling rank. I would normally never say "I'm a senior AF dev here's my credentials", I find it honestly very tacky and no one should feel like I'm cooler than them if they are less experienced. The fact that I have to trot out this litany of things to say I can have an opinion is honestly bizarre, but here we are.
It is also not at all fun or a trump card to have to bring this up, frankly it sucks, but I feel like the kid in The Emperors New Clothes who speaks an unpopular truth. I am successful enough that I can take the flak for raising this issue so if something hits me as sexist you bet your ass I'm going to talk about it.
Despite some annoying replies (admittedly tame for the internet at the end of the day) I actually got some cool takeaways from this experience.
I had three people reach out to me about container tooling they want me to try, I'm going to set up three meetings next week for things I'd previously never heard of - considering my work uses Docker if any of them seem good I'd be thrilled to introduce them to our tech stack if they make Docker less of a headache.
A ton of people also responded in earnest with cases they love Docker for, which made me happy! Trust me, no one is happier than I am that fewer people feel how I do on Docker.
A lot of people just seemed relieved that anyone else struggled with this supremely popular tool that they hadn't gelled with.
And finally, there were some good-faith replies by people who really like Docker that had suggestions on things to make the experience better, or with alternatives - many I'd never heard of and sound extremely interesting and I'm really stoked to get into further.
At the end of the day, willing to write it off as a funny fluke and move along. But did teach me a valuable lesson that sometimes when you yell into the void, the void yells back.