This is the weekly thread to discuss what you have done recently and are working on this week.
Be descriptive, and don’t hesitate to ask for help!
Only two weeks until I start teaching Programming Languages at CSU, San Bernardino. I continue to work on putting together the materials for the class, which are available on the course website. At the moment that means fleshing out the exact schedule of reading both from the textbook (which is available online for free, something I am very glad about) and from various supplemental materials, as well as putting together the full directions for each lab.
PLAI is so good. How long is your course? Are you intending to pack the entire book in?
It’s 10 weeks, and I would indeed like to fit the whole book in. It’ll be on students to read what they can, and we’ll cover the important parts in class. I’m not looking for perfection. The bulk of the grade is in the final and the project. The final will be focused on understanding key core concepts, and the project is less about precision and more about making an honest effort to grapple with language design and the trade-offs inherent to it.
I’m working on the reading schedule (both the book and the supplemental materials, along with optional and advanced reading for those looking to dig deep on a particular topic), and I may post it here for feedback when it’s ready.
Building a house. This week we’re grading and setting up for the foundation.
I’m also playing with openGL and toying with some ideas for an itty-bitty roguelike.
My original plan for leaving corporate software and getting back into research hit a major hitch. Don’t want to get too specific, but it was something completely out of my control (the news came today) that had nothing to do with me, but with (as far as I can tell) anticipated funding problems related to a certain politician (that I didn’t vote for, but that we’re stuck with). Fuck.
Still hoping to make the transition, preferably in government or a better industry (read: not this startup “sprint” bullshit) than software. Applying directly to CS graduate school is not an option, because at 33  there’s no way I could pass admissions without already being a researcher (which means that I need to get a research job, despite lack of a PhD, first). So… a lot to think about, and not a lot of time to think.
All I know is that I refuse to stick around in the Fake News that is corporate software engineering– it’s a thoroughly dishonest business, and I can’t stand it anymore.
Reading is split between the famous “Dragon Book” (the compiler textbook) and Peter Frase’s Four Futures.
 How the fuck did we end up in a world where 33 is “old”? I still have, like, 50 years left. I’m in far better shape than the typical college grad after one year at his corporate job… because it doesn’t take long to decline, if you’re not careful, once you start workin' for a livin'. Even mentally, I’m at least as strong as I was in my 20s, if not better.
at 33 there’s no way I could pass admissions without already being a researcher
Are you sure that’s true? I have only limited view into how admissions work at the handful of universities I’ve been, but I’d be surprised if it’s that categorical. It’s not the most common trajectory, but a reasonable number of people decide to go back to grad school in their 30s to advance or even change careers. When I was in grad school (~2004-2011), though I was in my 20s, a number of my cohort were in their 30s, and one was in his 40s. They had different reasons, e.g. one guy had been in the air force (not any kind of air force research job, either) for ~6 years post-college, then worked for a year or two in a programming job in industry, then applied to grad schools in CS. An especially common source of the trickle of older-than-20s students was bioinformatics. Mid-2000s seems to have been a time when lots of people who had gotten a BSc and/or MSc in biology in the ‘90s drifted into bioinformatics one way or another in industry, and decided they needed to go to grad school in CS to get to some of the more interesting problems in the space.
Someone with industry experience/connections can also be a big plus for research labs, depending on their focus. If anything, from the perspective of someone hiring research assistants (which is how PhD funding usually works in CS, and admissions is often closely tied to funding), the size of a typical PhD-student stipend relative to going rates in industry means that if someone experienced actually wants to join your lab for that pay, you’re getting a huge bargain…
Graduate schools want people who are already researchers, not promising people who might make it. To be fair to them, that makes a lot of sense. Grad school has a high attrition rate, and there are plenty of 4.0 Putnam winners  who turn out to be miserable grad students, because (a) we were all immature at 22 and for some of us, that impedes progress, and (b) the skills necessary to thrive in research are dramatically different.
If it were 1985, a person like me would apply for BA-level research positions, take a part-time Master’s, and then pursue a PhD (at which point, you probably have to go full-time) if so inclined. The work experience and research done on the job solve the admissions problem, even if you’re 40 years old. The problem in 2017 is that the BA-level research positions are filled with PhDs, because the research job market has been such a shitshow for so long.
As for getting back in, when you’re in your 30s, it’s hard because you’re at an age where, even though you’re still decades from being old in any meaningful way, you have to justify why things haven’t happened for you. It helps that I’d probably be changing disciplines. I was a math major and did a year of math grad school, but I’d probably go for CS because, while I enjoy the R&D environment, I also like to work on practical problems and to be able to actually build my ideas instead of just write about them.
 I wasn’t a Putnam winner but I got an HM (58 out of 120) and was a 4.0 college student, which is actually a negative predictor of grad school success. (This may be bullshit, but supposedly 4.0 - ε is optimal. The idea is that grad school performance is only loosely correlated with GPA along [3.6, 4.0) while 4.0 students are likely to have perfectionism issues or be inclined to a certain rigidity.) However, I had a period of serious illness in my first year of graduate school and left for Wall Street. At the time, I felt like I had “failed out” even though, objectively, my grades were only mediocre and I could have (and probably should have) returned to fight another day. Two years later I was making more money than almost anyone my age. One year after that, I’d been 2008’d and had agoraphobia (which went away, but it took a lot of work) and was working for a startup because I was too disabled (open-plan syndrome turned into full-blown panic disorder) to work in a real job. Now that I’m an old fuck and have my health back and have had some time to think, I wish I’d stayed in research and worked on things that actually matter.
Our industry is crazy. People consider themselves (or others) as “senior” by their mid 20s. In other industries that’s when they’re coming out of scrub stage. Personally I think it’s harmful.
Right, and “senior” doesn’t mean senior in the software industry. I know plenty of “Senior SWEs” who work on Jira tickets and have to deal with that “user story” bullshit. It means mid-level at best; and titles like “Principal Engineer” or “Architect” start getting hauled out for people who are actually senior. Even then, software companies do a terrible job of recognizing high-level engineering talent.
The optics of it are of fast promotion: you can be 25 and have a 40-year-old’s title! The reality is that software culture almost always demotes: you get to be 40 and have a 25-year-old’s job.
Read this and thought of you….
Giving a talk at Erlang & Elixir Factory San Francisco! :)
Week 2 of my being employed at Shutterstock (specifically, Premiumbeat). Very much excited, culture seems good and sane, and I’m already digging my claws in some code. Node stuff, which is (IMHO) a step up from PHP, so all good. I’ve been learning a bit about mixing programmatically, for fun.
On a non-work related note, I’ve been reading a book about communication specifically aimed at tech people, covering communications for non-tech people. It’s got tons of great insight and I can’t wait until I finish it because I suck so hard at communicating correctly. It even has a section on navigating office politics. That book was literally written for me, figuratively.
That book sounds like me too – what’s the name of it?
Recovering from surgery and playing a lot of Zelda. It’s a happy occasion, not a sad one.
Concentrating on code would be hard right now, maybe in a couple weeks when I need painkillers less often….
I’m working on the design for a new storage system/doing some literature review. If anyone has experience running a multi-petabyte storage cluster I’d love to hear some do’s and dont’s. I’ve been researching the CRUSH algorithm used by CEPH and learning a bit about the theory of object/replica placement for replicated and/or RS encoded data.
Also doing knowledge transfer with a colleague who’s leaving (boo!). If you know some good senior level people interested in doing Go remotely let me know. Reasonable hours, good pay, friendly team, and a pretty decently big scale.
Connecting to an Oracle DB with node. Making APIs for daily and monthly reports to be consumed by Salesforce. The end points thus far just send off queries. Not too complex, but I’ve learned some stuff.
We’re also making a completely new auth service using OAuth and JWTs. Working with the Oracle node module has been pretty great. The two guys that are maintaining it are super nice and helpful. Very grateful for their help.
I have been trying to get the Linux kernel to boot on the 4Kc MIPS emulator I am writing.
It has been a fun but frustrating process of digging through kernel source, QEMU source, horizontal folkdancing with buildroot and stepping through code and muttering wtf more than a few times! Figuring out interrupts is ‘fun’. Plenty of little landmines as well.
The good news is that I have managed to hack enough code into the kernel tree in arch/mips/mipsemu to get the kernel to boot to a prompt on QEMU with a setup that matches my emulator too.
Now that I can boot and debug the kernel easily, the job for this week is adding support for the remaining privileged opcodes to my emulator until it boots to a prompt too.
Getting ready for baby #2, next Wednesday. Nothing technical going on. Sonatype and I parted ways, so after a few months, I’ll probably be back in the “looking for work” game, but for now, I’ll take my parental leave and like it. I need a technical project to keep my brain working. Suggestions welcome!
Refactoring an email batch job to run as a daemon
Implementing the slack button api for a gif sharing app we built because giphy leaves a lot to be desired, but their “shuffle” option is a well implemented feature.
I started an internship last week and moved cities for it. My internship is at a machine learning research facility and I feel like I know nothing about the topic at all, it’s really different from what I am used to. Also need to adjust to the new city since I didn’t know anyone at all prior to moving here. But besides that I really like it so far!
Reading the systemd docs end to end.
You know, it really isn’t as bad as all the noise makes it out to be.
It’s pretty good.