Avril 14th by Aphex Twin. Kind of a lazy pick here - it’s a short song that happily stumbles along. Just like how I feel right about now.
Man, I just really love my job. This post is just going to be a total “yeah I just got lucky but I’m also going to humblebrag about it”, so feel free to duck out now. Same as always, this is mostly stream of consciousness with some (mild) attempt at organization. You’ve been warned!
Grad school was an amazing learning experience for many reasons, but probably the most useful [at least in the context of this blog post] was finally figuring out what I wanted in a job. It only took 6 years and 5 internships, but I got it down by the end. Things that are nice but not the deal breakers I thought they’d be:
- the area of work
- the team vs solo workplace style
- the location
Sure, I don’t want to sit by myself in the middle of Wyoming, but I put far more emphasis on this than I ended up needing to. What the real factor ended up being was control. This is something that you tend to associate with C-suite/manager roles, which is a big shame. I think there needs to be a good way to distinguish between setting goals and going about them. I don’t really care about what the goals, that’s decided by the top level people. However, if I’m hired to do a job, I want to do that in what I think is the best way possible. There’s a balancing act here of course - I’m not the most humble person, so there are plenty of times where I definitely should be told how to do something and I should go along with that. I still think this happens way too often (to everyone, not just me).
I have some internal debates over if this is an “age-ist” thing, because, let’s be honest, this normally comes up when I see the
TraditionalOldWay which is of course
TheWayWeHaveAlwaysDoneIt. I propose something new, and it gets met with confusion and/or reluctance. Hesitation is good, reluctance is bad. I’m not sure on the exact numbers, but I feel that all engineering jobs should be split 85⁄15: 85% of the time spent doing your job, 15% of the time spent trying to find better ways to do your job. Those are not the same thing! If I try to do both simultaneously, I’m hilariously inefficient at both.
Obvious conclusion is obvious, but I get exactly this at my current job. It’s a bit scary at times, going down routes that I have no idea where they’ll end, but that’s where the fun is too!
This is definitely something that’s specific to a startup. Massive companies have just too many levels of abstraction to let everyone work on all of them at once - it would just never work. “No one knows how to build a cell phone anymore” - a quote from a manager at Qualcomm. Creating a new smart phone requires so many moving parts that you can’t do it with just one person, unless you’re Bunnie Huang. I get that, I accept it, but I can also hate it, and boy do I. The cost of separating things by layers is that everyone gets siloed and you lose track of the big picture.
If you can’t see the big picture, your goals become really short-sighted and your optimization strategy is poor - always stuck in local, as opposed to global, minima. In theory, this is solved by managers translating details and requirements up and down the abstraction. I’ve been playing with
ReactJS a bit recently, and it’s really taught me how hard and frustrating it is to design systems that can do that correctly. Doing that in real life just seems impossible now!
I’m not sure if there’s a solution to this other than working at small companies. I know this ~*~doesn’t scale~*~ and that’s fine with me - there’s a whole lot of jobs out there, so whatever I can do to reduce the search space helps.
I’ll admit it, I’m a bit of a workaholic. I sincerely love solving technical problems and will spend way too much time on it. It’s not for everyone, and I take breaks from this behavior, but I’m definitely above average. This is a weird sentence, but I want a job that lets me take advantage of this. To give a specific example - I love IC design, I think it’s fascinating and challenging and all the other good things you get with engineering problems. My internship at ADI was the most boring thing in the world. I spent 3 months optimizing a whopping 6 inverters. I honestly think I was slower than a brute force dimensional sweep because of the lack of breadth.
It’s interesting because I had the other two things on my list, for the most part. I had decent control, just a spec to hit. There was a recommended implementation, but that was pretty loose too. I had a surprising amount of vertical integration knowledge, which was nice. Asking for more as an intern would be a bit greedy, so I’ll generously say we’re 2⁄2. But it was just so NARROW of a job, and this is getting back to the siloing aspect. It was a classic case of
DoOneThingAndDoItWell. I realized I maximize effectiveness when I have two or three things to juggle. It doesn’t need to be 33/33/33 split, but it just needs to be something that helps me continue to be productive when I get stuck on something else.
I think this is true for a lot of people and they just don’t realize it. This has hints of the Pomodoro Technique for time management, except you swap off to another task instead of taking a break. To me though, going from IC design to PCB design to front end JS work is just as helpful as going from IC design to Facebook to Reddit. Slightly obvious conclusion, but at a startup, you get lots of hats, and I can swap around quite easily whenever I get stuck.
Heh, as usual, didn’t turn out quite like I wanted. Planned on talking about some more specific things about my job, but I deleted a lot of it because
ProbablyNotAllowedToSayThat. Trust me, I get to do all of the above at my job!