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
Want to get into game programming?
I have dabbled with game programming many, many times over the years, but I kept bumping into the same problems and frustrations.
Lucky for me, I got a chance to bend Jason Weimann’s ear over on the Unity3D College YouTube channel and I got some great pointers and a fresh new perspective!
Make sure to subscribe to the channel if you have any interest in game development!
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…]Back to Square One
I recently published a website that was built with technologies I was unfamiliar with. I accomplished my goals for the side-project and I learned a lot about those new techs. Yay!
However…
I didn’t feel good about the quality of my work. I took lazy short-cuts and found “creative” workarounds which ran counter to the spirit of the technologies I was supposedly trying to learn. I knew this was a problem from the start, because I’ve been down this road many times before and I recognized that I had conflicting motivations.
I wanted to learn the new techs, but I also wanted to ship before the end of the holiday season. The deadline was self-imposed, sure, but I thought it was important because the vast majority of my attempted side-projects wither up and die long before making it to the mausoleum.
What’s a dev to do?
[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…]