|
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. |
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.