software

Will Faught

July 2023

Data-Driven Software Interviews

Software interviews suck, but they don’t have to.

Thomas Ptacek: The software developer job interview doesn’t work. Companies should stop relying on them. The savviest teams will outcompete their peers by devising alternative hiring schemes. Years from now, we’ll look back at the 2015 developer interview as an anachronism, akin to hiring an orchestra cellist with a personality test and a quiz about music theory rather than a blind audition. Being good at navigating hiring processes requires a basket of skills that isn’t correlated with job performance.

hiring interviews software technology

Will Faught

1 minute

September 2022

Always Change, Never Finish

An interview with an Agile Coach.

Part 1: Part 2: Some gems: They were posted one “sprint” apart. 🤣 “It’s really Waterfall with meetings every two weeks.” “That’s Greg. His birthday is on day 2 of sprint 7.” “We don’t even define requirements until after production.” “I lost my job because I’m a horrible developer. Now I’m an Agile coach.” “Always change. Never finish.” “Folks who don’t have anything valuable to add deserve meetings.” “I’m so used to it, I don’t even hear the Waterfall.

agile methodology scrum software technology

Will Faught

1 minute

September 2016

SQL Injection Can Compromise The OS

TIL that if your server has even one SQL injection vulnerability, the entire operating system can be compromised. Eye-opening!

code coding engineering hacking programming software sql

Will Faught

1 minute

August 2016

Go Raised The Bar

Go raised the bar for new language distributions: UTF-8 code Testing, benchmarking, and profiling built in Single command line tool Build tool that leaves code directories clean Package manager Package doc browser Standard code style and formatter Fast builds Language spec with grammar and thorough library documentation Uniform, batteries-included standard library Concurrency support and automatic parallelism, sync and atomic libs, race detector Interfaces, not inheritance Vendoring support Cross compilation Static linking only for simple deployments Tabs, not spaces No semicolon line terminators Trailing commas in lists to minimize diffs Static types Default values for uninitialized variables Built-in comparisons and hashing Safety (e.

code coding engineer engineering go program programming raise the bar software swift technology

Will Faught

1 minute

July 2016

Check Sudoku Solutions

My Golang program to check whether Sudoku solutions are correct. It works for any valid Sudoku board size (1x1, 2x2, 4x4, 9x9, 16x16, etc.)

coding engineering go programming software software engineering sudoku

Will Faught

1 minute

June 2016

Io Language

Io looks like a nifty language.

coding io language programming software

Will Faught

1 minute

September 2015

Numbers Every Software Engineer Should Know

Jeff Dean: 0.5 ns L1 cache reference 5 ns Branch mispredict 7 ns L2 cache reference 25 ns Mutex lock/unlock 100 ns Main memory reference 3,000 ns Compress 1K bytes with Zippy 20,000 ns Send 2K bytes over 1 Gbps network 250,000 ns Read 1 MB sequentially from memory 500,000 ns Round trip within same datacenter 10,000,000 ns Disk seek 20,000,000 ns Read 1 MB sequentially from disk 150,000,000 ns Send packet CA->Netherlands->CA

software

Will Faught

1 minute

March 2011

What Would Feynman Do?

How well would the late Nobel-Prize-winning physicist Dr. Richard P. Feynman do in a technical interview at a software company?

feynman interview software technology

Will Faught

1 minute

April 2008

Recode, Repeat

It’s a shame how much software is rewritten all the time. Incompatibilities of language, interface, and execution platform and the proprietary nature of most software development seem to have doomed us to forever reinvent the software wheel. The number of linked list implementations out there must be staggering. In a perfect world, someone would decide a linked list would be a nice thing and implement it, and then everyone else would use that one implementation from then on.

incompatibility interoperability life modularity reflections reuse software

Will Faught

1 minute

π