Do You Need to Work In Public?
Do You Need To “Work in Public”?
As a follow up to a previous post about what to do next as a junior out of bootcamp, I got asked the question about the value of "working in public". There’s a lot of information floating around about the benefits to “work in public”, to keep a public record of the code you write and your thoughts to share it with the world. It can also mean working on a project with a publicly accessible repo, like an open-source project, or a project that other people can access.
The "internet audience"
I remember leaving my coding bootcamp bootcamp I felt a lot of pressure around the benefits of “learning in public”, to do things like keeping up my GitHub commit streaks, posting on medium (or now Substack I guess, is there DevTok?).
Having been at 3 development jobs since, I want to reflect on how I feel about the pros and cons around working in public. Is all of this a potential way to get a job? Maybe. Is it necessary to work in public?
My short answer is no.
The longer answer is below.
- What is working in public?
- Why is it such a big deal in tech?
- What are the downsides?
- What are some other options?
- When should you work in public?
What is Working in Public?
Working in public is the idea that you should put on display you’re doing, learning, and thinking about. This typically comes in the form of a blog where you provide links to things like projects, GitHub, and examples of the stuff that you’re doing. It can also come in the form of giving presentations at conferences, or contributing to an open-source repository. This blog (yes, I did just link to my own blog), and my serverless series, are a great example of “working in public”. I’m trying to share what I learn, as I learn it, so other people can take advantage of the growth I experience.
Why is it such a big deal?
Swyx’s free chapter of The Coding Career Handbook goes into solid depth on the primary arguments for working in public. It’s well written and worth a read, but I’m uncertain if it’s the only or even the primary way that most software engineers are employed. It’s one specific way to get to a specific set of outcomes that you might want.
But, the primary benefits for you and your career, are roughly:
- Improving Your Coding Skills
- Having an easier time getting jobs
- Having a higher net worth overall
I think there’s also something of a tech aesthetic going on here around being part of open source, and displaying your status by showing your dirty laundry. While I actually think it’s not a bad thing to have sharing be a status symbol, I also think it can go overboard occasionally.
Improving Your Coding Skills
Having to explain yourself to other people is proven to be a good way to sharpen your understanding and clarify places where you lack knowledge. (There’s this thing human brains do where we will assume we know something if we know someone who knows about that thing. For example, if you ask most people if they know how a toilet works, they will say yes. If you ask most people how to describe the functioning of a toilet, they will struggle).
Working in public also gives you the ability to receive feedback about what you do and don’t know. You might get new ideas from people you share the work with, or you might have someone share something you were wrong about.
Having an Easier Time Getting Jobs
Having publicly available material you can point to in job interviews can be a benefit. It can mean sharing your website for your prospective-employer to get to know you better. And, if you have some level of notoriety, maybe they’ve already read your work and have a pretty good sense of who you are.
It’s also a good way of verifying your skill. You don’t have to go through thirteen rounds of a front end interview to prove your coding chops if you’ve built some clever UI elements in a personal website, or made a significant contribution to an open-source repository. Talking about the code you’ve written at other jobs can be challenging because your interviewers are taking it on faith that you were actually doing the things you say you were.
Having a Higher Net Worth Overall
Swyx calls this expanding your luck surface area. The basic thought here is by engaging in effective marketing, you’re making it more likely to get the sorts of wild financial outcomes that we saw during the dot-com boom. This can be in the form of exposure to a small, hot startup that can exit with an outsized valuation, or getting a high-value position at a well-known FAANG*. To be honest, I suspect that this is the case, but it’s not necessarily a need.
*(Facebook Apple Amazon Netflix Google)
Downsides to working in public
I’m skeptical that there’s a specific, obvious reward for junior engineers to having a website where their work is visible. I can remember each time I’ve gone into a new job search thinking “it would be great if I had a blog” and then completely forgetting about it the second I actually had a job.
What are the downsides to working in public?
- It takes a ton of time and effort
- Building a small following and portfolio is a long-term investment
- It’s probably not the primary way you’re going to find your next job
It takes a ton of time and effort
Part of being in a 40-year career means doing things that increase your longevity, not necessarily things that maximize output and keep you in the game. Working in public in an effort to get a job might not serve you all that well.
Saying “work in public” sounds great, evoking this concept of just taking all the stuff you already do and putting it on a website. But that’s probably not going to get the exposure you want (or need?). And I’m not even talking about the potentially immense emotional effort and risk involved. I just mean, when you learn something, it actually takes a lot of effort and refinement to structure that in a way that’s legible for other people.
It’s often not enough to just have a repository, or a deployed site, you likely want a solid README, or a post-mortem, or a demo or some documentation explaining what’s going on. For example, even something like my “serverless” project, can seem excessively straightforward, trying to figure out the beginning and end of each article is… an incredible challenge, actually. I’ve put a lot of thought into what order articles should go in, and whether some even belong, long before I actually click the publish button.
Build even a small following is a long-term investment
Writing can definitely pay off, but in terms of increasing your luck surface area, it’s probably going to be 1 or more years before you see the sort of cumulative impact from a blog that you might expect. I’m imagining outcomes like getting a job opportunity, getting a promotion or a raise, or making a connection with someone that might not have known you otherwise.
And, as a long-term investment, it’s the type of thing that you will only feel comfortable doing if you have the time and space to do it. If you don’t. If you have people to take care of, other demands on your time, or even other interests, you don’t need to do it. It can be an area you decide not to invest in, so you can invest in something else important to you.
It’s probably not the primary way you’re going to find your next job
Working in public is part of a constellation of stuff that will define you and your potential value to (and interest in) a future employer. Working in public can create the type of web of connections that makes you valuable. But, the actual act of being public is just a small component of that, and there are other ways to create similar sorts of value in less public ways.
Other Options: Private and Semi-Private Work
This is actually something Swyx goes into great detail in Section 1.8 of marketing yourself to your fellow humans. And, while I don’t necessarily agree with the framing, I do think the underlying logic is solid. It’s worth it to spend some effort making your work visible to the people around you. They probably know less about what you’re doing than you might think.
As an alternate to “working in public”, I’m going to focus on a couple of things:
- Practice writing. Journal.
- Keep a brag book.
- Maintain a list of connections you want to maintain
Journal
Yeah, I said it. I'm old-fashioned. But other people don’t need to read your writing for it to be useful. You get a lot just by putting your thoughts out there. If keeping a blog helps your journal, great, do that. But the main goal is to write and articulate your thoughts on paper, and see where you do and don’t have gaps. It’s like 80% of the benefit of writing in public but without having to worry about things like grammar, spell check or legibility. And if some day in the future you want to turn it into a piece of writing, it’s a great starting point.
Capturing Your Output
Along with journaling, you should keep a running track of stuff you’ve accomplished. Some work you can copy screenshots, some work you might want to write a quick paragraph.
Firstly, it’ll make you feel good about yourself. While your friends might not understand that creating a login page is a considerable undertaking (as my personal experience at code bootcamp can attest), your brag book will never let you down.
Secondly, it builds a good habit of practicing talking about stuff you’ve done. Lots of the time in situations like hiring interviews, potential promotion discussions, or chatting with another developer at a meetup or a conference, you’ll want to be able to talk about what you’ve done succinctly. Keeping a brag book will prepare you, without making any of that preparation public.
Brag books also help you track your accomplishments, and build a narrative about your growth in your career. It’s surprising how many small details we can forget when we don’t record them, so having them recorded is a great way to make sure they don’t get lost to time.
In my opinion, brag documents are one of the highest leverage things you can do to help advance your career (and your personal happiness at your career).
Cultivating Your Private Network
Once you get in a job, one of the best things you can do is to cultivate an internal network of people who you would like to stay in touch with over time. This doesn’t mean being weird or conniving. All you need to do is if there’s someone you work with who you find interesting or inspiring, find some time to grab coffee or lunch with them, and make a connection. Become friends. These are the people who will vouch for you, refer you, and help you find your next opportunity. (And you for them)
Having a group of people who believe in me (and who I believe in), has helped open up potential job opportunities and given me perspective on what decisions I might make in the future. It’s very private work (and honestly people are fun to be around, so stay in touch with the ones you like!) but it’s been a huge boost to my career. And for people who are just out of bootcamp, your bootcamp-mates and your teachers can serve as the same sort of network. Keep in touch with them!
This isn't to say it's easy. Of all of the recommendations I'm making here, it's probably the hardest one. I have a set-up on my task list where every 2-3 months I'll get reminded to reach out for coffee/lunch. And I still feel overwhelmed and uncertain when that task comes around. But for the effort of coordination and keeping up, it's the career benefit and the intrinsic value of being connected to people I enjoy, appreciate, and learn from that makes it worth it.
When To Work In Public
The goal of my writing here isn’t to convince you not to write or try to commit to an open-source project. Rather, I’m trying to destress the situation where you feel like you have to do these things to have a sustainable career. If you want to write, if you would like to contribute to open source, you should absolutely do it! Just do it for intrinsic reasons and not because you feel like you have to as some sort of stress response to the scariness of the tech world.
The Exception
There is one incredibly compelling reason to work in public, and that’s in the case where you want to do the type of writing or public stuff that helps bring something to life that wouldn’t exist without your contribution. Basically, if you feel compelled to write/contribute, you should do it! It’s reasonably likely someone will find a lot of benefit from your perspective and experience. But do it because you feel intrinsic motivation from the work, not solely to try to min-max your career.
This doesn’t have to be huge, but it’s a really compelling reason to work in public and if you find one of those areas, there’s a chance you’ve hit on something really fun and exciting. (But don’t feel like you have to!)
I’m thinking of blogs like:
- https://jvns.ca/ work on answering questions about how coding and computers work
- https://lethain.com/ work on tech leadership
- https://charity.wtf/ work on tech careers
The point here isn’t their fame, it’s that they’ve found areas of interest where they felt they could make a meaningful contribution, and so there was benefit to working in public. If you can find one of those (even if it’s just for your 5 friends), you’ll likely feel the type of dedication and commitment to keeping it up as a practice.
If not, that’s ok too! You can write and work on your side projects off and on as you have the energy and time.
There Is No One Way to Shape a Career
Starting out is the toughest part of your career, especially in software engineering, where the tools change constantly, and it can feel like you’re swimming into a wide and deep ocean. There’s no one way to do it. Just keep swimming.