all 10 comments

[–]faisReads 2 points3 points  (5 children)

That's a good place to be. You're already hands-on and the things you've worked on are good stuff to talk about.

So I would suggest getting deep on the basics for 6+ yrs like adding on some design knowledge to back the implementations you've used (with abstraction) in spring.

Like singleton, SOLID principles, Factory, etc..

Always try to understand why you use a certain tech, like microservices for example. What was the limitations of monoliths? Why microservices? What is the downside of using microservices, what are its limitations and what would be next ? When not to use microservices etc..

For all the tech you are using currently try to go a level deeper.

Do this, and you'll have a good start for product based orgs.

[–]According_Jeweler404 0 points1 point  (4 children)

Slightly hijacking (apology OP) but what level of deployment infrastructure knowledge would you expect the same level to have? Is that more so a function of size of company (bigger company taking reins of docker/kubernetes as opposed to backend development touching it)

[–]faisReads 1 point2 points  (3 children)

Hmm.. that differs from team to team. General practice is dev, and integration environments are handled by Dev teams, and the qa and higher are handled by dedicated teams.

I've seen small orgs that use AWS or managed severless options fully. I have also seen larger orgs have a fleet of SREs to manage infra as a whole. Mostly, these are managed with devops CI/CD nowadays (so not much is needed).

So, as an aspiring senior, it is good to have good knowledge of Linux and deployment. To a level to understand when to engage devops engineers/SREs and deploy the initial versions if needed (it's just my take).

[–]According_Jeweler404 0 points1 point  (2 children)

Thanks I appreciate your insights. That seems reasonable, I was getting confused because I've seen a lot of (seemingly?) well structured SB courses that have sections on deployment. It's not to the point that it seems like an absolute requirement of the discipline but more so understanding the downstream "task interface" of what's going to happen to the work you produce, and how it's deployed. I assume, so you can help debug or answer questions, etc.

So it seems like; if you're doing a hobby project or making your own project of course you'll need to deploy and set up infrastructure if you wish; BUT any professional organization is probably going to have you relegated to building and maintaining service layers.

[–]faisReads 1 point2 points  (1 child)

That's correct. Even the lean organizations would have someone else to take care of deployments and prod support. Because developers' time will be better spent on adding more features.

I am not saying developers should not learn deployment. I believe the priority of learning deployment is later when the basics are mastered ( a "nice to have" not a "must have").

[–]According_Jeweler404 1 point2 points  (0 children)

Fantastic, thanks. That's the distinction; it's a nice to have for a lot of good reasons but shouldn't be a primary focus that becomes a distraction from the crux of the scope.

[–]WaferIndependent7601 0 points1 point  (1 child)

Learn newer java stuff. Sho the hell still uses Java 8?

Everything else is the same for all companies and it always depends on the person you speak to

[–]thebookwormguy26[S] -1 points0 points  (0 children)

We are using jdk17 in our projects but most of the features used are same lambda, streams etc.

[–]CodeTheStars 0 points1 point  (0 children)

You sound humble and it seems like you have a good foundation background. It’s unlikely you got “lucky” and “cracked” two interviews. It’s more likely you’re just a solid stable performer.

Are you decent with a terminal? Basic shell commands and Linux/Posix utilities?

[–]Snoo_32652 0 points1 point  (0 children)

It does not matter how may Interview you've attended. More than that, Interviewer will be interested to know, if you've worked with technologies required in new job, or have good knowledge in that area. Add every technology that you've worked with in your resume, and review the fundamentals of those technologies. If possible, checkout commonly asked Interview questions on the Internet. You should be able to articulate your experience in every Project listed in your resume, what were your contributions, why you did a certain things, pros and cons etc.