/Career Advice

What Complex Systems Can Teach Us About Building Software

- Kevin Sookocheff tl;dr: To build successful complex software systems: (1) Define a set of quality architecture principles that the organization believes in and that are systematically enforced. (2) Develop quality information aggregation systems that allow leaders to determine which components of the system are following the rules. (2) Experiment widely and encourage diversity in how we build teams and how we build software. Kevin explains how he arrives at these conclusions.

featured in #401


The Ambiguous Zone

- Ben Northrop tl;dr: The ambiguous zone lies between doing what we are told as engineers and doing what we want. If we are given specs that are missing something obvious, should we ignore what’s missing and do what we’re told? “The most effective developers I've worked with understand this, and are adept navigating this zone. They are curious about the perspectives and needs of other stakeholders, and ask good questions. They push back when things don't make sense, but do so tactfully.”

featured in #400


Cynefin For Developers

- Liz Keogh tl;dr: The Cynefin framework describes different types of problems and categorizes them into 4 domains – obvious, complicated, complex and chaotic – and a fifth domain in the centre, disorder, when it’s unclear which type of problem we’re dealing with. Liz discusses how this framework can be used by software engineers.

featured in #400


Lessons From A Pessimist: Make Your Pessimism Productive

- Armin Ronacher tl;dr: Armin observes two forms of pessimism - a “pragmatic form” and what he’s coined as “destructive pessimism,” which he believes has become more common inside and outside of engineering. Pragmatic pessimism can be useful - you assume that things are more difficult than they actually are and are able to highlight pitfalls along the way. Destructive pessimism wants, or expects, things to fail. While both seem similar on the surface, the latter can be harmful.

featured in #399


Eight Graphs That Explain Software Engineering Salaries In 2023

- Tekla Perry tl;dr: Based on 2022 reports, these graphs show how (1) tech salaries rose but below inflation. (2) The best paying jobs. (3) Software engineering skills employers want you to have. (4) Software engineering skills by demand. And more.

featured in #399


Hired’s 2023 State Of Software Engineers

tl;dr: (1) Engineers remain optimistic about the future. (2) Layoffs from May to December 2022 had the greatest impact on salaries and interview interest for junior and non-traditional engineers. (3) Demand for remote engineering talent remains high. Remote roles command higher salaries than local roles, especially in smaller markets. (4) The most in-demand coding skills and software engineering roles shifted.

featured in #396


Why You Should Send A Weekly Summary Email

- Jens-Fabian Goetzmann tl;dr: The weekly email has 2 headings, with 3–5 short bullets under each: (1) “Achievements This Week” i.e. the most important things you’ve done this week. (2) “Priorities Next Week:” the most important things you want to get done the following. The benefits are: it starts the week off right, ensure progress on the things that matter, enables introspection, aligns priorities, make invisible work visible and keep a record of achievements.

featured in #395


Why 'Product Engineer' Is The Most Fun Role I've Had In Tech

- Raquel Smith tl;dr: A product engineer is someone who works with customers and data to decide what should be built, and then goes and builds it themselves. Raquel discusses how it trumps software engineering in that it allows the individual the autonomy to make important decisions, and was a more fun career path for the author.

featured in #395


Building Your Executive Network

- Will Larson tl;dr: Will outlines several tactic for engineers to do this. “Your network is a collection of relationships, and relationships always work best when they’re built before you need them. Set a small goal, like meeting one new person each month, and slowly build your network up over time. Don’t make it your top priority, but don’t forget it either.”

featured in #394


How To Contribute To A Project You Have No Idea About

- Michal Warda tl;dr: Michael discusses his process contributing to Bun - a new JavaScript / TypeScript runtime, elaborating on the following workflow in this article: (1) Setup and run the tests for an existing codebase and get them green. (2) Write a test that fails. (3) Change the code. (4) Think if you need to add another test. (5) If you found a test to write then go back to 1. If you can’t think of a test you’re done.

featured in #394