• 7 Posts
  • 172 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle


  • Unfortunately for those who have those values, not all paid positions involve acting on those values.

    Random brain dump incoming…

    Most businesses pay money to solve problems so they can make more money. You can solve their problems - but not in the way that you may be thinking.

    This is a generalisation that is not strictly true, but I say it to illustrate a different way of thinking: Businesses do not undertake penetration testing because they want more secure software. They do pentesting so they can stay in business in the face of compliance and bad actors.

    To find a job, you want to start learning what people pay for. People pay contractors to come in and fix things, then leave again (politically easier, sometimes cheaper). People pay sotfware developers to develop features (to sell more stuff).

    Start looking up job titles and see which ones interest you (DevOps, frontend dev, backend dev, embedded…). Don’t get too stuck on the titles themselves. It’s just to narrow down what kinds of business problems you find interesting.

    Other random questions:

    • What specific projects are you interested in?
    • What types of problems do you like solving?
    • Do you like digging in and finding those tricky bugs that have been bothering people for years?
    • Do you like trying out new frameworks which let you think about the system differently?
    • Would you rather implement a database or GUI toolbox?

    Once you’re deep in the belly of the beast, you’ll find ways to exercise those values. It’s hard to know in advance what this will look like.


  • Ah yes! That is a great trick that kept me going doing software dev professionally.

    Instead of trying to get the system I was working with to interact correctly with some shit enterprise system, I would find common protocols (or related protocols) and implement that well. Then I would discover more specifically where the shit enterprise system was behaving badly, and point to something politically neutral (like an IETF RFC) to help get us out of a rut.

    It made debugging so much easier. Those specifications and open-source implementations have had much more engineering talent put in them than what I was usually dealing with.











  • Oh there is absolutely zero disappointment.

    Years ago I wanted to learn how OpenBSD worked. Some people said to me “ah you want to get into programming at OS level? I was a bit disappointed with Go. But don’t learn C, learn Rust; Rust is the future there”. So as a total novice I looked at all 3 on the page. My impressions were: Go looks easy, C looks a bit harder, Rust looks… way too advanced for a beginner like me.

    Later when I heard of Zig I started reading and it looked a bit more like what I expected a “future C” to look like.

    I wish I had more time and skills to do work in C, Rust and Zig. I’m a Go programmer by trade.






  • Inform and throttle. Think about how your own computer works. If storage reaches its max capacity, you get a signal back saying “filesystem full” (or whatever), not “internal storage error”. If the CPU gets busy, it doesn’t crash; things start slowing down, queued up, prioritised (and many other complicated mechanisms I’m not across!).

    You could borrow those ideas, come up with a way to implement the behaviour in your systems, then present them to whoever could allocate the time & money.

    Another approach is try to get a small, resource-constrained version of the system running and hammer it by loading heaps of data like those customers do. How does it behave? What are the fatal errors and what can we deal with later?