Image for post
Image for post
Photo by engin akyurt on Unsplash

Medium Partner Program revenue from this post will be donated to the ACLU of Minnesota.

I had someone reach out recently about advice for new programmers who want to freelance, given that finding clients is even harder right now than it would otherwise be. Specifically how does a new freelancer find opportunities for contract work? My response got long enough that I figured I’d post it, so here it is.

Finding contract work as a brand-new freelancer is tough. My first year or so of doing freelance web development, I reached out to small local businesses, friends and family, and organizations, looking for the lack of a website to guide me to paying customers. I found a decent number of people who wanted websites, but not very many (read: none) who wanted to pay me to build them. Given that I didn’t need to support myself at the time, that was ok. …


Image for post
Image for post
Photo by Gatis Marcinkevics on Unsplash

The Stripe Press just published a beautiful reprint of Richard Hamming’s The Art of Doing Science and Engineering, which led me (and quite a few others, I imagine) to read some of his work for the first time. The written form of his lecture, “You and Your Research”, is chapter thirty of the book (go read it if you haven’t).

It opens with Hamming admitting that the lecture could just as easily be called “You and Your Engineering Career,” or even “You and Your Career”. He suggests that we should try to do significant things in our careers, rather than insignificant things. Hamming means ‘significant’ in the ‘significant to mankind’ sense, what he says applies to the ‘personally significant’ just as well. …


Image for post
Image for post
Photo by Heidi Kaden on Unsplash

In Surely You’re Joking Mr. Feynman, Richard Feynman talks about spending a summer at Caltech to “Just try out biology”, a field he was completely untrained in and unfamiliar with:

…I went over to the biology lab to tell them my desire, and Bob Edgar, a young post­doc who was sort of in charge there, said … “You’ll have to really do some research, just like a graduate student, and we’ll give you a problem to work on.” That suited me fine.

Feynman goes on to do work in the field and even contributes some non-trivial new findings to biology. …


Image for post
Image for post
Photo by Humble Lamb on Unsplash

Inspired by Fogus’s “The Best Things and Stuff of 201X” posts, I decided to try something similar. Here is a list outlining some reading I did this year, and my thoughts on it.

Non-technical books

  • How to Read A Book — This was definitely the most impactful book I read this year. It completely changed the way I approach reading for retention and understanding, and I’ve already noticed a big increase in useful information that I can recall and use months after the initial read. …


Image for post
Image for post
Photo by Priscilla Du Preez on Unsplash

I’m very interested in improving my ability to learn technical concepts efficiently. In this article, I’ll go over the heuristics I’ve found that work well for me: Read actively, use multiple sources/formats, work at memorizing, apply the concepts, and finally teach.

It all started with the observation (one I’m sure many of you are familiar with) that I have an interest in learning many things, but only some of those things stick after trying to learning them. I’d read a book, or watch a video lecture, only to then run into roadblocks. Some of the content I would be able to pick up easily, only to forget it later. Other content would be too opaque for me to make much progress with. The worst was content I thought I had learned, but would then struggle with when it came time to write down my thoughts on the subject or to talk about it with others. …


Image for post
Image for post
Photo by David Pennington on Unsplash

This post is a response to the Rust core team’s call for blogs. It will outline some of my thoughts about learning the Rust Programming Language, and how I think 2020 should be a year focused on adding to the quantity and quality of learning resources available.

I don’t yet consider myself a real Rust programmer but the A call for blogs 2020 put forward by the core team is open to “anyone and everyone”, so I’ll lay out what I think about the process of learning Rust, and my experience thus far.

Rust has some fantastic “first party” resources for learning the language. The Rust Book, Rust by Example, and the Rust documentation are all stand-out examples of written learning resources created by a programming language community. It seems like a simple concept, but having official learning resources maintained by some of the same people who work on the language itself is a great idea. The fact that these documents are also free and available on lots of different devices is incredible. Additionally, Rust programming books written and published traditionally are climbing in number and quality. Fullstack Rust, Rust in Action are two project-focused books I’ve worked through, and there are several others that are a bit older. However, while the official living ebooks and the wider book marketplace are great, when we look at practical, project-based, and video content, things start to break down. …


What do you do when they control all the cards?

Image for post
Image for post
Gods Unchained

Blizzard has indicated its pro-Chinese stance on the current political struggle in Hong Kong. This highlights an issue regarding ownership in digital games: Blizzard (like other game companies) controls all digital assets associated with their IP. Hearthstone is one example, with many players accumulating large collections of arguably valuable digital playing cards. If players become disillusioned with Blizzard, there is no recourse. Physical trading card games like Magic: The Gathering involve physical card ownership. Blizzard’s Hearthstone does not, even though digital cards can have similar values. This raises the follow up question, “is there a better way?”. My opinion is yes, and it leverages blockchain technology. One exciting example is Gods Unchained, an Ethereum blockchain-based game.


Software development insights from the man who started the personal computing revolution

Image for post
Image for post
Photo by Brett Jordan on Unsplash

There are a few icons in the history of personal computing that programmers like to idolize, and the grandfather of the all is Steve Wozniak. The sales and marketing people have Jobs, the programmers have Woz. For good reason, too — Steve Wozniak accomplished some amazing things, including designing and building the Apple II from scratch, both hardware and software. While you might be thinking “That happened in 1977, in a garage, in California. How does it apply to me, today, in 2019, in my chair, on the internet?”, …


Image for post
Image for post
Photo by Zsolt Palatinus on Unsplash

This post is one of several that outline my perspective on learning Rust as someone who primarily uses JavaScript. You can find the rest here.

Rust has a lot of powerful features associated with its primitives and standard library. A cool one I just came across is the method slice::windows. This method returns an iterator over a slice. The iterator length can be specified. It lets you iterate over a slice and have a window of a specific size on each pass. For example:

// windows.rslet slice = ['w', 'i', 'n', 'd', 'o', 'w', 's'];for window in slice.windows(2) {
&println!{"[{}, {}]", window[0], window[1]}…


Image for post
Image for post
Photo by Jesús Rodríguez on Unsplash

Junior software developers are busy taking over the industry, but while they’re at it there’s another type of developer that’s rising hot on their heels. These engineers are the inevitable next step in the journey of the professional developer. They are intermediate engineers.

Most smaller organizations don’t have a standard classification for developers who have too much experience to be a junior, but don’t have senior-level chops. These individuals don’t usually have a distinct title outside of ‘[Insert Flavor] Developer’, and they are characterized by the rapid growth of both their responsibilities and skill set.

James Hickey describes this stage as developer puberty, and I think the description is apt. He says that these individuals are identified by ‘[A] mental urge or “pull” to believe that they actually know everything they need to know’. I agree with this description. Developers who are in this phase in their growth have somewhat of a benign arrogance, believing they’ve got it figured out, much like a teenager who believes her parents have it all wrong. Like teenagers, intermediate developers might not have the perspective needed to understand their naivety, or the dangerous nature of their newfound dogmas. …

About

Austin Tindle

Software developer, writer, sometimes thinker. https://tndl.me

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store