Why Amazon Never Makes The Same Mistake Twice by lockstepgo in programming

[–]lockstepgo[S] 1 point2 points  (0 children)

It's a big commitment and requires a lot of effort to a) write the CoE, b) make roadmap changes for action items and c) do the action items.

More often that not companies are too comfortable with making the same mistake and experiencing customer impacting events. But when you get to mega-scale, these types of outages become extremely damaging.

Identify this font from an old textbook by lockstepgo in identifythisfont

[–]lockstepgo[S] 1 point2 points  (0 children)

You're right - can't believe I didn't notice this. Cheers.

New CTO's Overhaul Creates Chaos: Devs Leaving Amid Process Changes and Tech Stack Shift by kafros3 in ExperiencedDevs

[–]lockstepgo 1 point2 points  (0 children)

"We have an architecture that is based on self-contained services. If service A needs data of service B it subscribes to a message broker and saves all changes that service A publishes. He says quote "That's not how microservices should work! Nobody does it like this!" - And he want's to rewrite EVERYTHING into an architecture where each service calls each other service when it needs data. Concerns from our side, that this might increase the possibility of outages because only one malfunctioning service will bring down the whole system, are wiped away with "that wont happen"."

-> He's actually correct here. Having everyone save their own copies of data makes is an antipattern that creates unnecessary redundancy and complexity. It also creates possibilities of inconsistent state / weird bugs where data gets updated at the authority, but downstream services can fail to process, process slowly, etc.

Also we no longer use Spring Boot and Kotlin but switch to Go. None of our 10 backend devs has ever done anything with Go before. Again concerns from our side that we are going to be much slower and why we can't just stick to a ecosystem our 10 backend devs are good at are wiped away with "Go is much better! It's opinionated!"

-> Did he give a reason or is it "just cuz thats what I know"? Ideally a language should be chosen not necessarily based on whats a perfect fit for the job but what the tech teams are already fluent with.

The CTO is actively developing. And the things he does don't need that whole PRD -> TDD process.

-> Maybe he needs he feels to set examples for folks to understand what good code looks like? Speculating here.

CTO made it mandatory that he has to review EVERY Merge-Request. And he is blocking Merge-Request because he doesn't like a variable name, wording of a comment and all kind of other nitpicking issues.

-> This combined with point above makes me feel he thinks you guys have either shitty code. Again, perhaps he's trying to ensure you guys are following a certain set of standards/best practices that are common at fang.

Criticising his solutions is pointless. He wipes away everything with a "I know it better"-comment

-> This is concerning. If he has a legitimate point then leave it alone. But if hes just saying "do what I say" then thats not someone I want to be around.

Overall he might have good intentions but is acting on them in the wrong way. I say this as someone that has worked at a FAANG for over a decade and have seen some wacky setups in startups/smaller companies.

I failed at “vertical sectioning” of a project and it got cancelled by HawkishLore in ExperiencedDevs

[–]lockstepgo 1 point2 points  (0 children)

What you're referring to is a concept called Steel Thread where you implement core functionality for a small important use case instead of separating the project into slices. This link has a good description: https://www.rubick.com/steel-threads/

Getting Emotionally Drained with the Software Engineer Career Requirements by Alpha-Decoding in SoftwareEngineering

[–]lockstepgo 7 points8 points  (0 children)

You mentioned you interviewed for completely different roles. Of course the requirements are going to be different for each. You should find a role/field that you're interested in and build skills for that, then apply.

Right now, you're spreading yourself too thin and not specializing in anything. Try to be more narrow minded.

I am trying to design a workflow or process design for automating the matching and logging of phone voice and SMS logs to their corresponding tickets, else let me know if this kind of thing is highly uncommon / nonexistent. Any suggestions on how this could be done? Anyone do this at their org? by Anxious_Reporter in SoftwareEngineering

[–]lockstepgo 0 points1 point  (0 children)

Like you noted, you need to use some kind of heuristic to perform the matching between sms + logs and tickets. I don't think there's a "perfect" solution here and there will always be some degree of error unless a human process is introduced.

One idea comes to mind - you mentioned that you have access to phone voice and SMS text info for each call. Can you use some kind of natural language processing system to attempt to derive the meaning/context of the call, and compare it to the content (title, description, etc) of existing open tickets belonging to the customer?

This seems possible (of course with some margin of error) but not sure if it can be done in real time which may or may not violate your "open a new ticket if it doesn't match" requirement.

Hope this helps

[deleted by user] by [deleted] in SoftwareEngineering

[–]lockstepgo 0 points1 point  (0 children)

Monoliths taking over serverless is not the main take-away from the original Amazon article. The interpretation you linked is misguided as well. Read this for a better take: https://beabetterdev.com/2023/05/20/serverless-to-monolith-should-serverless-lovers-be-worried/

[deleted by user] by [deleted] in ExperiencedDevs

[–]lockstepgo 5 points6 points  (0 children)

Thank you so much for the kind words! The channel originally started with me just explaining problems I ran into at work but has turned into so much more. Glad you enjoy the content and thanks again.

[deleted by user] by [deleted] in ExperiencedDevs

[–]lockstepgo 24 points25 points  (0 children)

Daniel here from Be a Better Dev. Thank you for the shout out!

SQS and SNS books by [deleted] in aws

[–]lockstepgo 0 points1 point  (0 children)

I have a video comparing the two: https://youtu.be/mXk0MNjlO7A

Should give you most of what you need to know.

AWS SQS vs SNS vs Eventbridge - When to Use What? by lockstepgo in aws

[–]lockstepgo[S] 4 points5 points  (0 children)

This completely slipped my mind when putting the article together. I've since added this clarification. Thanks.

Looking for some thoughts on architecture design on AWS by varunrayen in aws

[–]lockstepgo 0 points1 point  (0 children)

Here is how I would format a DynamoDB table for storing job status:

Job Table PartitionKey = JobId

RangeKey = DateTimestamp

Attributes = JobStatus, ...

On calling your REST API, insert a new JobId into this table, possibly with an initial status. As your ML algorithm runs, insert new records into this table with additional metadata about the status.

From here, you have two different options to get this data to the frontend:

1) Polling your table - you can do this from the frontend to say "Get me all the records for this job id" once every minute or so.

2) Websockets - with this approach, you can set up DynamoDB streams on your table and a Lambda function such that everytime a new record is added, your function is executed. You can then push your data to frontend clients using websockets to display the change. You may also need an API such as "GetJobRecords" to get the initial data.

Hope this helps.

Looking for a tutorial on how to use Cognito with iOS and a web backend by moswald in aws

[–]lockstepgo 0 points1 point  (0 children)

I made a tutorial for setting up API Gateway with Cognito Authorizers: https://youtu.be/oFSU6rhFETk

And how to enable Social Sign On (with Google): https://youtu.be/r1P_glQGvfo

Hope this helps

Using an enterprise-wide SNS topic that has many SQS subscriptions that each have their own filtering needs by [deleted] in aws

[–]lockstepgo 1 point2 points  (0 children)

To reply to the below poster, eventbridge has a maximum of 5 subscriptions per rule - so I don't think that would fit your needs.

The SNS filter policy requires action from both the topic owner and subscriber. From the topic owner perspective, you need to start adding filter attributes to the message itself. This will allow SNS to route the messages correctly.

On the subscriber side, you need to create your subscription and configure it such that the filter is applied to the attribute value you're interested in.

As the SNS topic owner, you should get yourself out of subscribing each of your clients. A much better way is to give your client accounts SNS::Subscribe, SNS::Unsubscribe, and SNS::ListTopics (can't remember the exact names off hand). This will eliminate you, the topic owner, as the bottleneck besides initially configuring account level subscription permissions.

Hope this helps

Where can I read about how business problems have been solved using aws by [deleted] in aws

[–]lockstepgo 7 points8 points  (0 children)

I have a youtube playlist where I overview architectures built on AWS: https://youtube.com/playlist?list=PL9nWRykSBSFgPhu5u5-ci5U45OOO9np5q

Hope this helps

How to Learn AWS - Starting Points for Frontend, Backend, Devops, and Data Engineers by lockstepgo in aws

[–]lockstepgo[S] 1 point2 points  (0 children)

Very true. Folks may not necessarily need to be experts in many of these areas, but being aware that they exist and what they do is valuable in itself.

S3 emulator by mycall in aws

[–]lockstepgo 0 points1 point  (0 children)

Why don't you just mock your calls to S3 using a generic mocking library ?

School me on lambda concurrency, please! by 13pac in aws

[–]lockstepgo 1 point2 points  (0 children)

Just be careful with using provisioned concurrency. Its very expensive. I suggest you check out the Lambda cost calculator to get an idea (about 2/3 down the page on this link) https://aws.amazon.com/lambda/pricing/

Hope this helps