Aleksandr Krivoshchekov implements a factorial function in different ways as if he was at different stages of Go enlightenment. Stick around to the end for a cheeky Rob Pike moment.
In 2009 I started the Alan Turing petition. Perhaps you read about in WIRED back in 2014. This is my first-hand account of how I started the petition, automated my father with Perl scripts, convinced the UK to apologise to Alan Turing, and received a personal phone call from the British Prime Minister.
The future of work is already here, it’s just not evenly distributed. The folks at Ars have been living it (to one degree or another) for two decades. In this epic post, Senior Technology Editor Lee Hutchinson walks us through how they do what they do.
Little bored. Not learning as much as I used to. I’ve been doing the same thing too long and need a change. It’d be nice to primarily work in Go rather than work on Go.
When I first joined Google it was a chaotic first couple years while I learned Google’s internal codebase, build system, a bunch of new languages, Borg, Bigtable, etc. Then I joined Android it was fun/learning chaos again. Go was the same when I joined and it was a new, fast-moving experiment. Now Go is very popular, stable…
LOOK, THE LATENCY FALLS EVERY TIME YOU CLAP YOUR HANDS AND SAY YOU BELIEVE
JAMstack, myself, but I think the
Ajax analogy he quotes is an apt one. Aside: if this trend continues, Chris and the team might need to rename the site to “Jamstack-Tricks” soon.
Oh, and while we’re here: It’s Changelog not ChangeLog 😄
If Chris Fox had it his way:
- the keyword would be removed from all languages that use it
- only the language runtime and operating system would be allowed to raise exceptions
Click through to find out why he has this beef and what he thinks we should do about it.
Increasingly popular in the last couple of years, I think 2020 is going to be the year of “no code”: the movement that say you can write business logic and even entire applications without having the training of a software developer. I empathise with people doing this, and I think some of the “no code” tools are great. But I also thing it’s wrong at heart.
We had a great dialog about this topic on our 2020 predictions episode of JS Party. I tend to agree with Alex’s analysis, which is in-depth and well-reasoned. What do you think about the “no code” movement? Hype or reality? Somewhere in between?
I can’t count how many times I’ve been asked, “Can I put my logo on the login page?” or “why are the dates formatted like that?” but users of my software over the years.
This story comes from Ars Technica, not The Onion:
In June 2017, Adams drove Hopkins to the domain-name owner’s house “and provided Hopkins with a demand note, which contained instructions for transferring the domain to Adams’ GoDaddy account,” the DOJ said. The heist didn’t go as planned, and both the domain-name owner and Hopkins ended up suffering gunshot wounds.
Can you imagine transferring a domain name at gun point?
Twitter is funding a small independent team of up to five open source architects, engineers, and designers to develop an open and decentralized standard for social media. The goal is for Twitter to ultimately be a client of this standard.
Color me surprised and impressed. My first thought was, “why create something brand new when smart people have been working on open standards for a long time already?” Then I read on:
For social media, we’d like this team to either find an existing decentralized standard they can help move forward, or failing that, create one from scratch. That’s the only direction we at Twitter, Inc. will provide.
Verrry interesting, indeed. What do you think will come of all this?
Get some wisdom from Jason Warner, CTO of GitHub on building and leading engineering teams that scale.
If building a high-powered engineering team is hard, successfully scaling it through hyper-growth is near impossible.
The culture of any organization is shaped by the worst behavior the leader is willing to tolerate. Culture isn’t just about the “feels;” it’s about accountability and behavior. Whatever you do as a leader and whatever you tolerate becomes the standard for your entire organization.
Watch out! If you start reading this paper you could be lost for hours following all the interesting links and ideas, and end up even more dissatisfied than you already are with the state of software today. You might also be inspired to help work towards a better future. I’m all in :).
I co-sign that sentiment. When the author says “this paper” they are referring to this paper which they are about to summarize. If you haven’t considered local-first software before, you should know that there are seven key properties to it, which are described in detail in the paper and in brief in the summary.
We plan to dig deep into this topic on Brain Science (listen and subscribe here), but until then, here’s some great advice from Flavio Copes based on many years of working remotely.
I’m an introvert, I am independent and I like doing things alone. This post is heavily influenced by this fact, and you might find that what I say is madness if you’re an extrovert who needs people around to be productive.
The first suggestion I have for you is to have a dedicated office space. It does not need to be in another building, but it might be necessary if you have lots of people in your house. I do have a dedicated room, with a door I can close. It’s very helpful because it avoids.. interruptions.
If you are a leader or someone aspiring to lead, consider this approach to engineering management.
This post is a summary of the approach and tools I’ve used to build an engineering team, where everyone is a leader - including sharing of the project management expectations Google Docs guide that my team uses. It’s also a reflection on the pain points that came with this approach. I can’t advocate for how universally this approach could work. However, based on my results, it is something I suggest engineering leaders - especially frontline managers - consider as an option.
In our transcripts, we have 44 results for “Impostor Syndrome” and just 2 results for “Dunning-Kruger effect”. This makes me think that we’re either not that familiar with the Dunning-Kruger effect, or we don’t talk about it enough. So, what is the Dunning-Kruger effect?
In a word: overconfidence. It is a cognitive bias which leads people to believe they are more competent than they are, due to inability to objectively evaluate oneself.
People experiencing the Dunning-Kruger effect are unable to recognize that they are not performing to the standards they think they are. As with impostor syndrome, they feel this way in spite of any evidence, and it can lead to chronic problems in all walks of life.
Our friends at CSS Tricks are doing an awesome year-end series where they ask builders they admire the question, “What about building websites has you interested this year?” and each person writes a post about it. What gets Sameera Kapila excited resonates with me:
I realize we’re moving from a place where we’re not just sharing what we have, we’re working to build and improve on what others have built. And then sharing that, and the cycle continues. In a way, we’ve been doing this all along but it feels more noticeable now. In a way, we’re not just building websites, but building and iterating the way we build websites, and that is exciting.
Gone are the days when we developers were too shy/humble/introverted to promote our warez with the confidence and vigor necessary to draw a crowd.
In fact, we may be experiencing an over-correction. Some of us are selling a bit too hard at times. With that in mind, here’s some help translating between how developers describe our software and what we might actually be thinking. 😉
Being a leader is tough and leads to burn-out at least once or maybe even a few times. But why? If you’ve been building, leading, or maintaining open source, then this post from Alex Ellis should be on your “to read” list.
In this post I want to introduce the reader to five pressures that I have encountered over the past five years of building, leading, and maintaining Open Source Software (OSS) with community. This essay is primarily about being a leader in Open Source, but I believe it applies outside of technology too.
My aim is to foster understanding and empathy between contributors, community members, users, and maintainers. I would also like for maintainers and leaders in Open Source to feel a sense of solidarity in their shared burden.
Cory Doctorow goes deep into Usenet’s history and uncovers a sage decision by the “backbone cabal” which may help us improve the web’s (currently centralized) state:
Restoring adversarial interoperability will allow future companies, co-operatives and tinkerers to go beyond the comfort zones of the winners of the previous rounds of the game – so that it ceases to be a winner-take-all affair, and instead becomes the kind of dynamic place where a backbone cabal can have total control one year, and be sidelined the next.
This is the most intriguing and insightful bit of writing I’ve enjoyed all week (granted, it’s only Wednesday, but still)
Worlds of scarcity are made out of things. Worlds of abundance are made out of dependencies. That’s the software playbook: find a system made of costly, redundant objects; and rearrange it into a fast, frictionless system made of logical dependencies. The delta in performance is irresistible, and dependencies are a compelling building block: they seem like just a piece of logic, with no cost and no friction. But they absolutely have a cost: the cost is complexity, outsourced agency, and brittleness. The cost of ownership is up front and visible; the cost of access is back-dated and hidden.
That quote is plucked right from the middle of the piece. Please do click through and read how Alex got there and where they went next.
Jon Thornton writes on the Squarespace Engineering blog:
“Tech debt” is a dirty word in the software engineering world. It’s often said with an air of regret; a past mistake that will eventually need to be atoned for with refactoring.
Financial debt isn’t universally reviled in the same way. Your friend takes out a mortgage to buy a house and what do you say? Congratulations! …
The difference is intention. What if tech debt wasn’t always an accident, caused by incorrect assumptions and unexpected circumstances? How would you spend a tech debt mortgage?
We also talked about tech debt in a similar manner on Founders Talk #60.
Amir Salihefendic on asynchronous communication…
Yes, people gain back time (and sanity) by avoiding rush hour commutes. They avoid the distractions of the office. They regain a sense of control over their workdays. They have more time to dedicate to family, friends, and hobbies.
But apart from the commute, all of those benefits aren’t necessarily the result of location independence, but rather the byproduct of asynchronous communication…
Find employers who want you to succeed. Good management that prioritizes your interests and goals is so important for creating a career where you’re growing and thriving. Management makes or breaks roles. Find a manager, and a team, who is looking out for you and wants you to succeed. It will lead to a more functional team and to an environment where you’re probably happier.
Negotiate everything you can. Job offers, content creation, work hours, remote days, job duties, benefits, compensation, etc. can all be negotiated. Use your wins to give you confidence and as a tangible list of accomplishments.
Following up on designing delightful dark themes, I wanted to share this post from Kyle Stetz on the frontend engineering strategy for building Slack’s dark mode on desktop.
As is usually the case with large codebases, finding an implementation that works is only half the battle; gracefully changing infrastructural code and educating engineers on how to use new tools accounts for much of what we do when working on new capabilities of the product. Working in a large engineering organization — especially within a rapidly growing company — means that every change needs to consider the momentum and roadmaps of many other teams. The overarching question for this project was: how can we build sustainable and maintainable support for themes?