Hacker News new | ask | show | jobs
by dasm 2059 days ago
Why not try to get better at whiteboarding?
2 comments

Not the OP, but I've reached a similar place to the OP (I've given up looking for paid software engineering work for now). Why not get better at whiteboarding? Because it's only useful for getting a job in certain types of companies. It's not a useful skill in doing the job. People spend hundreds of hours practicing to answer whiteboard interview questions - more power to them if they actually need the gig really bad. I just don't want to play the game anymore. Fortunately, there are companies (usually small ones) that aren't obsessed with whiteboarding - my last few gigs have been at places like that. Usually the hiring folks are older (as am I) and they remember what hiring and interviewing were like 20+ years ago.
Some sort of peacocking isn't useful for maintaining a good relationship with a mate, but it's usually important for _getting into_ a relationship... The same thing goes with whiteboarding and interviews.
Because every second that I spend on small-batch academic exercises, is a second not spent working on ship code.

Here's how I spent today:

I woke up at 5AM, like I always do, and did my two-mile walk. During the walk, I sorted through today's job. I'm working on a social media app, and I'm setting up the baseline (admin) stuff. I needed to add the capability to convert "standard" users to "manager" users (and vice-versa), and I'll also need to add UI in the app (native Swift iOS/iPadOS/Catalyst app) to manage permissions.

I figured out how I would do it. It was a combination of work on the backend (I needed to add some functionality to the admin user layer), the SDK (I needed to add a couple of methods to funnel the UI requests to the REST API), and the app, itself (I needed to add a button to the user edit screen). The tricky part would be the backend work. I needed to do this in a manner that would not invite any security compromises, and would catch errors. I also wanted to leverage the current structure, as opposed to introducing new structure.

Also, I was a dumbass, and used Git submodules in the backend (it's a "layer cake" model). That makes modification a pain.

I don't write stuff down, if I can help it. After my half-hour walk, I knew what I needed to do, and, by 7AM, I had the basic framework in place on the backend. I couldn't test it until I also had the work done on the SDK, so I started that (it wasn't much code).

Since I wrote the backend a couple of years ago, I also spent time, groping around, re-learning it, and getting my head out of "Swift Mode." The biggest mistake I make, is forgetting to end lines with semicolons.

This is where my extremely disciplined coding standards pay off. 99% of the time, I'm the poor schlub that needs to relearn the code, so I make sure that I structure and document very well.

By 9AM, I had the whole stack in place, and there were a number of bugs. I like to test, so I was able to figure out where they happened. Most were in the backend, so I spent a lot of time with Charles Proxy, examining the exchange. Some of the bugs required a fairly substantial architectural change. That's pretty common, so I write in a layered, modular fashion with lots of hooks. Makes that kind of refactoring go smoothly.

By 5PM, I had it all working, but I need to make the app UI better. It needs a confirmation alert. Otherwise, it's pretty much done.

Tomorrow, I'll add the confirmation, and do a lot more testing. This is fairly critical stuff. I can't afford any security lapses here, and I need to make the UX as smooth as possible. Because of the nature of the work, I need to figure out the best way to provide instantaneous user feedback, while waiting for the server to do its work. I'll hammer that out in tomorrow morning's walk. I still need to do the permissions UI, but I won't get started on that, until I'm satisfied that the privilege swap works 100% (I don't move on, until I'm satisfied that my work is at "beta" level, or better).

And I spent absolutely no time at all, practicing LeetCode.

why is shipping code more important than practicing leetcode though if your goal is to get a FAANG job?

if you're struggling to find even a non-FAANG job but no one wants to work with you - perhaps you aren't as good as you think you are at the things you've mentioned.

not trying to be hostile at all here, just giving you my honest take.

> perhaps you aren't as good as you think you are at the things you've mentioned [...] not trying to be hostile

I am trying to go through every possible interpretation I can think of in which saying something like this to anyone isn't hostile, and I'm coming up empty.

Could you elaborate how it isn't?

It's confrontational, but there's a big difference between that and hostile.

If a person is consistently upset about not getting what they want, but also not willing to change what they are doing, that person needs a breakthrough. "Maybe you're not achieving your goals because you're not as good as you think you are" can be really useful feedback for someone who is stuck like that. I've both received and given that feedback in an athletic context, for example. It's rarely welcome in the moment, but that doesn't mean it is intended to cause harm; quite the opposite, usually.

I don't need a "breakthrough." Accepting the status quo was one of the happiest moments of my life. I really don't want to work with people that don't want to accept me for who I am; which is a person that will deliver extremely good work, for fair, respectful treatment. I'm an outstanding team member (you don't last long at a Japanese corporation, unless you do "team" well). I'm optimistic, energetic, and affable.

I've found people who want to work with me, working towards laudable goals, and I do work that I love. I won't starve to death, and there's the very real possibility that what I'm doing will end well. I'm pretty good at what I do, and what I do, is make stuff that works.

It gives me the luxury of saying "Guv! Why's that chap in the crown starkers?".

Whenever there's a back-and-forth about LeetCode tests, it eventually gets down to "Well, I was hazed, so you get hazed, too."

That sounds like a sensible baseline for selecting engineering staff.

My God. Why would I want a FAANG job? I'm quite aware of the environment. I'd rather bang rusty carpet tacks through my thumb.

I like coding. I want to enjoy what I do. That's the single most important thing in my life. I spent thirty years, dancing to the organ grinder. I spent most of that as a manager, which wasn't fun.

As for how good? Feel free to look for yourself. I am an open book.

I think I'm starting to understand.
:)

Feel free to write me off. You probably wouldn't like working with me.