One of the few things that developers can agree on is that the interview process is terribly broken. There are ideas about how to fix it (links below) but the industry has yet to come to a consensus on a better way forward.
Many developers are particularly aggravated by the way some organizations insist on “academic” interview problems that test developers skill with algorithms and (big O) algorithmic analysis. The argument is that these types of problems are often irrelevant to the job, rewarding antiquated knowledge over practical skill, and are biased in favor of developers with more time and resources to spend on preparation.
Now, before we continue let me get this out of the way:
I agree with those arguments!
Why Avro?
Apache Avro is an open source data serialization system that lets you send information. It is frequently associated with “big data” and distributed systems because it has some distinct advantages over the competition.
The primary advantages are listed below, but read on for more information:
- Messages are highly efficient
- Strong schema support
- Schema versioning
- Dynamic schema support
- Different, but compatible, Reader and Writer versions allowed
- Union types
- Object container files can include schema along with encoded records
- Support for serialization/deserialization with human-readable JSON
Elasticsearch is not just for search!
Elasticsearch is often described as an open-source, scalable, full-text search and analytics engine. This is true, but this sentence doesn’t really tell you much about what developers actuallydo with it.
Many people who hear “search engine” may have preconceptions about what developers use them for, thanks to the strong correlation with services like Google, Bing, or Duck Duck Go. To be fair, the full-text search of Elasticsearch can get you similar, but far less sophisticated, results as something like Google but that’s only part of the picture.
Because of the nature of the underlying technology and the focus on horizontal scalability, Elasticsearch is also a fantastic analytics tool. “Analytics” is vague term though, so I wanted to list out 4 common use cases for Elasticsearch that are hopefully more relatable.
[Read more…]Coding Lessons…from Factorio?
Factorio is a game where you are a teeny tiny engineer has been stranded on a very large and hostile alien world. Your goal is to build a rocket and shoot yourself out of there, but that’s going to take some serious work!
[Read more…]JAMstack Primer for Back-End Devs
The JAMstack is a methodology for building web apps that is based on client-side JavaScript, reusable APIs, and prebuilt Markup. I think that the emphasis on build-time rendering has interesting implications for all web developers, and I made a little video about it while working on a presentation about it for a group of Back-End developers.
I tried doing it in a fun “pop-up video” style, and I’d love to know what you think about it!
[Read more…]Calling all Full-Stack Haters
There are plenty of posts that discuss the benefits of specializing in either front-end or back-end development. I generally enjoy the types of articles that offer me the chance to see the world from another developer’s eyes. However, some of these articles are particularly antagonistic to Full-Stack developers, and I worry that the hyperbole is harmful.
[Read more…]How do you start your side projects?
I’ve got a small project that I need to complete for an upcoming presentation on JAMstack. Since I was starting the project from scratch I thought it might be interesting to record the process so I could see how I spent my time.
Here is the video:
[Read more…]When is an array, not an array?
TL;DR: Don’t do weird stuff to JavaScript arrays.
*ahem*
What are arrays?
In the standard definition of Array data structures in Computer Science, arrays are a collection of like elements where any member may be accessed by an index. That definition doesn’t sound very different from an Hash Table or it’s ilk, but the key distinctions here are that the elements of the array must take up the same size in memory, and that the array indexes need to be numeric so that the logical address of any individual element can be derived from that number.
[Read more…]
What is your favorite NuGet package?
We graphed the results of our recent contest for Practical Test-Driven Development using C# 7 and thought you might be interested in the results! This wasn’t a scientific survey, so take these results with a grain of salt.
Want to participate in contests like this in the future? Join the mailing list!
Huge thanks to John Callaway and Clayton Hunt for sponsoring the giveaway, go check out their podcast: The 6 Figure Developer.
Is Docker the new Git?
Git is currently the default choice for source control. We may take that for granted today, but it was not always a clear winner. Mercurial was a serious contender for the DVCS crown, but perhaps the fiercest competition came from the status quo.
Some of the arguments that I am hearing about Docker today remind me of the arguments against Git in 2010 while it was rocketing towards ubiquity.
Arguments like…
- “My team is already invested in tech x…”
- “I don’t particularly want my source control to be distributed…”
- “But we hardly ever branch…”
The heart of these arguments is the same:
“It solves a problem that I don’t have”
[Read more…]