ENGINEERING

How to get a remote software engineering job

I’ve been a full-time remote worker since 2010. The COVID-19 pandemic has brought big changes to things involving face-to-face contact – like going to an office for work. Since this sea change has gotten more engineers (and employers) to think about remote work, I thought I’d share some tips on how to find and keep remote gigs. This was written with junior-level engineers in mind, and is more about full-time employment than freelancing.
How to port 100,000 lines of Python 2 to Python 3

How to port 100,000 lines of Python 2 to Python 3

TLDR: Use python-future. The Project Last summer I led the conversion of a 100KLOC Python 2 web application to Python 3. The application is called “Accelerate” - the backbone of operations at my employer, MassChallenge, a global startup accelerator. It handles every stage of a running accelerator program: account creation for entrepreneurs and experts (mentors) startup applications online and in-person judging of applications coordination of one-on-one meetings with mentors during the program generation of reports used by judges selecting cash award recipients So, it’s a mission-critical app.

How things get better after you screw up at work

(Hint: it’s about your team.) A couple weeks ago I accidentally replaced our live, production database with a 17-hour old snapshot. This is an always-on application with users around the globe, so the mistake was likely to have blown away some new user-entered data. I didn’t realize what I had done for an hour or so (I thought I had targeted a test database server, not production). When it hit me, I had already left work.
How I became a software engineer, 8-bit version

How I became a software engineer, 8-bit version

You could say Z-80 assembly language is what really turned me into a software developer. My first programming language was BASIC, which was built into my first computer (a TRS-80 Model III). I wrote a lot of BASIC code, including arcade-style games (compiled BASIC — you can still play them on this TRS-80 Model III Emulator). I always wanted to keep learning. There was no World Wide Web for research and nobody I knew could guide me, so we went to Radio Shack and asked them how else I could program the computer.
How did I get here?

How did I get here?

(I recently posted this on Quora in response to a question along the lines of “Engineers, when did you decide to study Computer Science?") I have been a full-time software engineer for the last 7 years, and a part-time one for ten years before that. I have never formally studied computer science. It wasn’t an option before college (small high school in rural Vermont). And at the otherwise excellent small liberal arts college I attended, it wasn’t one of the available majors.
The Riak key-value database: I like it

The Riak key-value database: I like it

(Note: This is a writeup I did a few years ago when evaluating Riak KV as a possible data store for a high-traffic CMS. At the time, the product was called simply “Riak”. Apologies for anything else that has become out of date that I missed. Also please pardon the stiff tone! My audience included execs who we wanted to convince to finance our mad scientist data architecture ideas.) Riak is a horizontally scalable, fault-tolerant, distributed, key/value store.

What happens when you screw up?

Non-engineers want to know: what happens when a big bug is found in your software, and the bug is causing real users real problems, and you’re the one who wrote the code? Engineers do sometimes write bad code, and sometimes it makes it into production, it’s true. But shipping production software involves a lot more than writing code. It goes beyond that one engineer. That engineer is not the only person who saw or ran that code.