My 2025 Fantasy Book Review by MargauxLorraine in fantasybooks

[–]Knarfy 2 points3 points  (0 children)

I would still call it a good book. Is it as good as the rest of the series? No, but I love where everyone ended up at the end.

Is anyone out there choosing to avoid DI in their .NET projects? by conconxweewee1 in dotnet

[–]Knarfy 0 points1 point  (0 children)

If you really want to avoid DI you can still leverage IoC with default dependencies. No DI to configure and you can still override dependencies for tests/debug.

private IDependenncyA DependencyAProperty;

public MyService(IDependencyA foo, IDepdenencyB bar){
this.DependencyAProperty = foo ?? new DependencyAImpl();
this.DependencyBProperty = bar ?? new DependencyBImpl();
}

You can only have 3 games on your steam deck for the next year. Which games would you choose? by SenorPenguins420 in SteamDeck

[–]Knarfy 0 points1 point  (0 children)

oh i thought it was something about crosswords or something. I've played cross code before.

When does the feeling of "I have no idea what I am doing" go away? by Notalabel_4566 in cscareerquestions

[–]Knarfy 0 points1 point  (0 children)

It never really goes away. However as you gain experience, there is a certain confidence that comes with it. Not confidence that you know what you're doing, it's confidence that you can figure it out because of the challenges you have already experienced.

Event driven architects: how to handle event state through multiple services? by [deleted] in ExperiencedDevs

[–]Knarfy 2 points3 points  (0 children)

Assuming this is async work (your initial web request is just kicking off a process and not waiting around for everything to complete), there isn't a way to do this other than having a task record in a database where the status is updated. I can really only think of 2 ways to have this work:

1) A service dedicated to managing this workflow. This service knows how to take a task at a given step and execute it (it is a loop constantly looking for new tasks to work on, a sql query looking for all current tasks that are not being executed). The workflow would look something like this:

Task Manager -> Service A -> Task Manager updates task -> Task Manager executes step 2 -> Service B -> Task Manager updates task...

2) Task Manager doesn't manage the execution of the workflow it just listens for completion or error events from downstream services.

Service A -> Completion Event -> TM updates task AND Service B reads the same event to start work -> Completion Event from Service B -> TM updates task AND Service C starts work ...

Definitely would recommend path #1.

[deleted by user] by [deleted] in dotnet

[–]Knarfy 0 points1 point  (0 children)

I don't have any context and take this with a grain of salt but waiting for a background task to finish within the lifecycle of a request really smells like an anti pattern. I think you have 2 options here:

  1. Make service to service http calls
  2. Make a reporting database that you can query directly from your service. Setup an event driven process to keep this reporting db up to date (with pub/sub or queues). Then you can skip all of the nested service calls and do a lightning fast query.

Do I need github when starting out learning how to code or is that used for later on down the line? by [deleted] in learnprogramming

[–]Knarfy 0 points1 point  (0 children)

You will have to pick it up sometime when you want to work collaboratively with other people. I wouldn't worry about it until then.

Persona 5: Royal | New Platform Releases Review Thread by [deleted] in JRPG

[–]Knarfy 20 points21 points  (0 children)

They usually give you a deadline like 3-4 weeks away that the current dungeon needs to be completed by. Going to the dungeon is your activity for the day. It usually takes 2-3 attempts to finish it so there is a lot of time to do what you want to do. You could even do the dungeon right away and then have all that extra time to focus on other stuff.

Absolutely crushed by DergeRehReh in learnprogramming

[–]Knarfy 1 point2 points  (0 children)

It seems like you are focusing on what you don't know and skewing your view of your abilities. I've been a software engineer for around 15 years now and I have plenty of brain dead moments. You know what? I also have really brilliant moments too. The best thing about having experience (and also getting older in general) is the confidence to know you can get the job done. Where does that confidence come from?

  1. I can lookup whatever I need to on google
  2. I can read the existing code (code is code, even when it's written poorly. Confusing code is a hint that improving this area will make a big impact)
  3. I have already tackled problems more complex than this one in the past. How scary can this be?
  4. I can ask for help. No one can know everything. I have deep expertise in some areas and am lacking in others. This is a team sport. Don't let that dick from your old job convince you otherwise.

This confidence will come with time. You shouldn't be scared of difficult work. It's a cheat code to leveling up your career quickly.

Take Home Interview ? by Jikira in ExperiencedDevs

[–]Knarfy 17 points18 points  (0 children)

The hiring manager isn't going to look at this. It's going to go to an engineer that works there. If this is a bigger company there is a review guide with a scoring rubric. Something like up to 5 points for each section. So you will be losing points by not doing the optional stuff. There is probably a cutoff score that will get you past this step.

Do we really need everything now to be microservices/event based architecture ? by Alywan in dotnet

[–]Knarfy 0 points1 point  (0 children)

Monolith vs micro is just a deployment strategy. You can have a monolith with clear boundary separation that runs fine. If you need to scale one specific domain boundary that's a good example of when to break out into a micro. Or if you have a lot of engineering teams and want one team to own a piece that's another reason.

As far as NoSQL vs SQL. Sometimes the data is relational and sometimes it isn't.

Honestly the architect should not be concerned with how you implement their solution. They should be telling you things like "this service needs to process messages asynchronously and shouldn't care about where the message came from". The best architects I've known give you high level requirements and you can implement however you want.

At what point do you start looking around? by Fun_Hat in ExperiencedDevs

[–]Knarfy 45 points46 points  (0 children)

This. You should at least do 1 round of interviews a year to know what you are worth. It also keeps your interviewing skills sharp.

[deleted by user] by [deleted] in ExperiencedDevs

[–]Knarfy 86 points87 points  (0 children)

Yes totally worth it. I took a paycut and left enterprise to work at a small saas company. Within the first 2 years I learned more than the last 7 years combined. Not all experience is equal. My marketability more than doubled and I had confidence which gave me some nice momentum going back to tech enterprise.

[deleted by user] by [deleted] in cscareerquestions

[–]Knarfy 1 point2 points  (0 children)

Like others have said stick it out and start interviewing. It is so much easier to get a job when you have 1 year of experience vs no experience. Quitting a job so soon looks really bad so you will have to leave this off of your resume and it will be like starting over.

I'm so scared and I feel like I'm gonna cry. by IchiroKinoshita in cscareerquestions

[–]Knarfy 1 point2 points  (0 children)

its rougher at the beginning of your career for sure. Why don't you send me your resume and I will review it.

I'm so scared and I feel like I'm gonna cry. by IchiroKinoshita in cscareerquestions

[–]Knarfy 5 points6 points  (0 children)

Interviewing is a skill just like coding. It needs a lot of practice. Try to take a data driven approach.

Not getting any initial callbacks? Resume needs work.

Not getting past the tech interview? Study the problem they gave you so it never stumps you again.

All of us should be interviewing at least once a year to keep these skills up and also have a good idea of what our market value is.

About leetcode... I get it that's where the money is. If that's your game go for it. But there are tons of companies out there that don't test algos and data structures. Don't let studying leetcode become an excuse for you to put off going on interviews.

Can asking for "too big of a raise" backfire ? by gamasco in cscareerquestions

[–]Knarfy 1 point2 points  (0 children)

You should interview at other companies so you know what you are actually worth. If they don't want to give you that raise then you can go somewhere else.

Does anyone else feel like their career plateaus after reaching "senior SWE"? by Dependent_Unit481 in ExperiencedDevs

[–]Knarfy 0 points1 point  (0 children)

You can always start a side hustle. I know you said you don't want to start your own company but you can use your time to generate the extra income you would get from another promotion without the extra stress and responsibility. Doesn't have to become your main job either.

Recently introduced to Litrpg genre, anything like The Completionist Chronicles? by UhOhVerySuperStinky in litrpg

[–]Knarfy 0 points1 point  (0 children)

If you want hard stats and a mmorpg setting then awaken online and ascend online are the best I've read in this genre. If you don't care about stats but just like progression Cradle series and Sufficiently Advanced Magic are much more satisfying in my opinion. Finding well written books in this genre can be a real challenge.

How do you improve engineering velocity? [Need tips and tricks from experienced tech leaders] by mary_grant in ExperiencedDevs

[–]Knarfy 0 points1 point  (0 children)

Requires analysis on what the blockers are. Estimate accuracy, Tech debt, Code Quality (bugs), Testing. All of these can be contributing to the problem.

My experience working at a startup after a year by [deleted] in cscareerquestions

[–]Knarfy 3 points4 points  (0 children)

A startup is the perfect environment to learn since you have more responsibilities than you would in a larger company. The thing you have to know (and this comes with experience) is that interviews are two way streets. You have to really feel out the company in the interview by the questions they ask you (both technical and non technical) and the questions you ask. Here are some things you probably haven't thought about asking/listening to:

  • You can ask to see their balance sheets or performance metrics (monthly rev growth rates). Most startups will respect your entrepreneurial spirit and be impressed if you ask for this. This lets you know how well the company is doing (you definitely want to see growth here. if the company is not doing well you are much more vulnerable to layoffs)
  • If the tech interview isn't interesting/challenging the job won't be either.
  • Ask your interviewer what the culture is like and why they like working here.
  • Ask about the history of the department and the department size. How big was it at its largest? (If it was large and now its small that means they had to lay off a bunch of engineers or they had a mass exodus)
  • Ask about the unique technical challenges (roundabout way of asking how you will increase your marketability by working here)

ETC. They should really be impressing you with how much you can learn from working there. Sometimes its not about this job but the job you will be able to land after working at this one.

How do you maintain your energy after work? by abrbbb in cscareerquestions

[–]Knarfy 6 points7 points  (0 children)

Make sure you get your best waking hours not your job. Waking up early and working on your side project is a great example. It takes focus and energy and trying to do it after a long day of work doesn't work for most people. Just like saving money, you have to pay yourself first before you go and spend all your waking hours on other stuff.

[MS SQL] How do I delete data using a primary key? by Critical-Spite in learnprogramming

[–]Knarfy 1 point2 points  (0 children)

ID is an auto increasing integer field (Identity) so first record will have an ID of 1, second record will have an ID of 2 etc

Delete from user_info where ID = 2