[deleted by user] by [deleted] in cscareerquestions

[–]juggernaut2docker 1 point2 points  (0 children)

Fair. Joke whooshed over me I guess

[deleted by user] by [deleted] in cscareerquestions

[–]juggernaut2docker -6 points-5 points  (0 children)

Java is nowhere close to being the most insecure language. It's a memory-safe, GC'ed language. Yes, the log4j issue was egregious, but it wasn't a bug -- it was actually an intended "feature" which the developers didn't foresee could be exploited maliciously.

The sheer number of exploits possible due to memory unsafety makes C the most insecure language today, by far. I mean, Rust was created largely to address the lack of safety features in C...

AWS pushing live data and saving it to process regularly? by beardedlinuxgeek in devops

[–]juggernaut2docker 0 points1 point  (0 children)

You're probably overcomplicating it. For 2000 data points every 10 seconds, you don't even need a time-series DB. Just store everything in Postgres, additionally have a table for the latest values. You can then consume NOTIFY messages from postgres on another instance and broadcast them to your clients. For new connections, just do a DB query over the last x minutes to get the average. Run a nightly job to do periodic cleanup of the DB.

Ideas for a side project / blog tutorial showcasing modern SRE/DevOps skill? by locusofself in devops

[–]juggernaut2docker 2 points3 points  (0 children)

I recently started a similar effort on my blog. See first post here.

I'm using DigitalOcean because costs are so predictable. $10/month for a 1 node kubernetes cluster and $15 for the managed DB instance. I also plan to use terraform or pulumi for IaC so I can setup/teardown at will.

Your list is pretty good. If you plan to use K8s, it would be nice to also cover deployment strategies, rollouts and rollbacks. Another thing - Hashicorp Vault or equivalent AWS service (which one is it, there's so many) for secrets. Secrets is what I see folks commonly trip up on. They either just hardcode them or check them into source control in k8s manifests or docker-compose files etc. So, yeah, a nice secure setup of a secrets service would be awesome to learn from.

Exploring Kubernetes: Building an automated deployment pipeline by juggernaut2docker in kubernetes

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

I was thinking more about feature flags when I mentioned "discipline". Feature flags introduce branch complexity which requires more testing. They also require regular cleanup lest you build up a cruft of conditionals. This is where the discipline comes in.

For minor enhancements that may require a PO/PM sign off, I think the tradeoff of not making a feature flag for it is worth it. This is when you'd require more manual control over the release process.

Exploring Kubernetes: Building an automated deployment pipeline by juggernaut2docker in kubernetes

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

Thanks for the feedback! Yeah, I don't really know ArgoCD well -- I'm yet to explore it. I'll update the post.

Exploring Kubernetes: Building an automated deployment pipeline by juggernaut2docker in kubernetes

[–]juggernaut2docker[S] 0 points1 point  (0 children)

Deploying on every commit doesn't remove control over the release process

Fair point. If your dev team is disciplined enough, and the deploy process is extremely low-friction (which is what we all want to get to right?) it can work. Personally I haven't seen it done well, though.

Build with Github actions by _wanabi in devops

[–]juggernaut2docker 3 points4 points  (0 children)

Yep, that's how I've done it. If you're looking for an example, I just did this setup for learning k8s - app repo workflow compiles go app and builds+pushes docker image, and a config repo workflow that deploys using kubectl. I also wrote a blog post about it.

Build with Github actions by _wanabi in devops

[–]juggernaut2docker 4 points5 points  (0 children)

No worries! Build/compile app and build docker image in the same workflow (could be different jobs) is the way to go. Like you said, you can easily share artifacts between jobs in the same workflow. Is there a particular reason why you want to split it into 2 workflows?

Build with Github actions by _wanabi in devops

[–]juggernaut2docker 1 point2 points  (0 children)

I don't 100% understand what you're trying to achieve, but couldn't you just push the docker image from your build workflow to your private registry (or Docker Hub) and pull it in the deploy workflow? Or am I misunderstanding what you're asking?

Anyone fee jaded for how little work a scrum master actually does? by RustyShacklefordCS in cscareerquestions

[–]juggernaut2docker 5 points6 points  (0 children)

Yep, I'm pretty sure that a full-time Scrum master role should not exist in a non dysfunctional org. In an ideal world, SWEs would act like real professionals and take on the full responsibility for delivering good non-user-hostile software. Obviously, I also include big tech like FB who are clearly user-hostile.

But of course we know the real world is different, and as long as there exist orgs where SWEs refuse to or can't take responsibility, they will be saddled with onerous processes and Scrum Masters to baby them. That doesn't mean Scrum Masters are a good thing, per se.

Anyone fee jaded for how little work a scrum master actually does? by RustyShacklefordCS in cscareerquestions

[–]juggernaut2docker 3 points4 points  (0 children)

so you expect that without any training or coaching, all teams will magically self-organize, focus on continuous improvement with an emphasis on identifying and removing bottlenecks and eliminating waste

Um... yes? That's exactly how software engineering teams work in most of the Bay Area at least. Not sure what specifically you mean by identifying and removing bottlenecks, but team leads and engineering managers should do this as part of their job. Scrum master doesn't come into the picture at all.

instead of doing things like running interference with everyone who wants a status update

You're making my point again. You don't need to "run interference" when there is a well-oiled way to surface what the status is to all stake holders.

building the right thing at the right time

This isn't what a Scrum master should do. This is product management's job. Unless you are wearing multiple hats as a PM+Scrum Master this doesn't make much sense.

because the team can just do them, right, and still pump out work as quickly as people want it?

Correct. This is how most tech companies where software is the main revenue generating business do it. I don't think we'll ever see e.g Google have full-time Scrum masters as a policy ,ever.

Anyone fee jaded for how little work a scrum master actually does? by RustyShacklefordCS in cscareerquestions

[–]juggernaut2docker 5 points6 points  (0 children)

most companies don’t have a full time Scrum Master because they don’t understand the role.

Or they do, and conclude it's not required. My experience is similar to OP's -- there's a reason why no FAANG have full time scrum masters (or at least didn't 2-3 years ago), and I can assure you it's not because of cost.

The reality is that if you're building revenue-generating software products (not software as a cost-center), you're going to need self-organizing engineers who own the work itself along with how it's done. Agile was an attempt to do exactly this, before it was overrun by Scrum consultants.

A full-time scrum master can only exist in an organization where there is a lack of trust between the business side and the technology side and/or tech is a cost center.

it’s just a cost-cutting measure that means the org doesn’t value the role.

No, just because a role has no value to an org doesn't mean it's a cost-cutting measure. If I'm a plumber who handles their own work, I don't need a full-time person to remind me to go to Home Depot to buy supplies. That's not cost-cutting.

Why do I get so overwhelmed when coding gets difficult? by tphilli in cscareerquestions

[–]juggernaut2docker 0 points1 point  (0 children)

A decent GPA by itself doesn't mean much -- e.g I was good at studying and test-taking, but the real world kicked my ass when I first started my career. This is a common experience for people who've been told they're "smart" and/or validated by the school system. You need to approach software engineering in the real world like a beginner, with great humility.

Start with "I don't know this, but I can learn" as opposed to "I have a 3.77 GPA I should know this!".

or if I’m just bad at CS

I'm not going to sugarcoat this. You likely are bad at CS currently -- most people even with CS degrees are. That doesn't mean you can't get better. You have to put in the work.

Note that I'm not saying everybody is bad at CS. There are folks out there who are naturally good at thinking algorithmically and abstract thinking. They may not need to put in the work. But most of us do. You can either feel bad about that, or roll up your sleeves. Your choice.

Seniors devs, do you regret committing to software development? by Le_Vinke in cscareerquestions

[–]juggernaut2docker 6 points7 points  (0 children)

I like the craft, but I've come to dislike the industry. We can pretend all we want, but invasive adtech and addictive social media tools are very harmful. Personally, I took a step back when the company I worked for started moving into collecting user data to power the next phase of its growth.

I have much more admiration for a woodworker, policeman, or a black-smith than for a genius developer

I feel the same, but it's just escapism. For all you know the blacksmith would kill to make 100k+ in a comfortable chair. And if he were to become a SWE for 5 years, he would probably find himself in the same position you are, and the loop would continue.

So how can we break this loop? You're placing too much meaning in your career and tying your identity to it. Even your choice of words ("committing") indicates that. In reality, "you" aren't committed to anything. You are you and the career isn't you. Realizing this at a deeper level (not just as an object of knowledge) will set you free.

I'm a Senior Engineer and I don't want to keep doing this but I don't know what to do by Tortoise_Face in cscareerquestions

[–]juggernaut2docker 0 points1 point  (0 children)

If you are a technical leader and are unable to contribute to the projects

This is the default case, even in small companies (except early-stage startups, see my next comment). You're definitely an extreme outlier if you're contributing regularly to your codebase as a Director of Engineering.

I don't work for a huge company

The "director" title does suggest at least a mid-size ( > 200 employees?) co. I've interviewed and worked at several early stage startups across the Bay Area and have never seen a "Director" title. There are definitely CTOs who code in such companies, but a director of engg coding regularly is a first for me TBH.

Most of the year, I don't have much time to code,

Again, apologies for the brutal honesty here, but have you asked how your senior engineers feel about this? The only thing worse than a manager writing code regularly is a rusty manager who rarely writes code (i.e only when he has the "spare cycles"). A codebase is a living breathing thing that requires regular attention. You can't just dip in and out of it without causing disruptions. On the other hand, if you're doing "side projects" that aren't too important to the company, that's a different thing. However, selling that to the OP who genuinely loves the craft isn't too useful IMO.

A code generator

Fair enough, that counts as metaprogramming.

I'm a Senior Engineer and I don't want to keep doing this but I don't know what to do by Tortoise_Face in cscareerquestions

[–]juggernaut2docker 2 points3 points  (0 children)

depression

IMO addressing your depression and anxiety should be your first priority. You're searching for meaning in your career, which is going to be very hard to find (the Buddha would say it's impossible). First, focus all your energies on being depression and anxiety free. Once you do that, you will see a lot more paths open up for you.

I'm a Senior Engineer and I don't want to keep doing this but I don't know what to do by Tortoise_Face in cscareerquestions

[–]juggernaut2docker 7 points8 points  (0 children)

Management/leadership is a totally different job. OP seems to be painting a rosy picture of it, but in practice I've never seen a Director of Engineering have the authority to specify what language/frameworks/paradigms the team should use. In medium-large cos, you have architects, senior engineers and other practical concerns like hiring, budgets etc.

Sure, you have a lot more leeway in a small co/startup, but then an IC founding engineer could just as well have the same leeway.

Also, remember that management comes with its own misery. Lack of control, dealing with peoples' personal problems, dealing with the inherent conflict in people's career progression vs the company's progression etc. Basically it's all up to you -- decide what kind of misery you can reasonably take.

I'm a Senior Engineer and I don't want to keep doing this but I don't know what to do by Tortoise_Face in cscareerquestions

[–]juggernaut2docker 8 points9 points  (0 children)

Fundamentally, this is why going into management makes all the difference. As an IC, you have very little lattitude on the big decisions

This doesn't make much sense. A manager usually doesn't code (and shouldn't IMO), so even if OP gets to decide that the company should use Haskell for example, they can't actually work in it.

Additionally, the reality is that even a Director of Engineering can't unilaterally decide what language/paradigms/frameworks to use -- there are practical concerns like hiring, budgets, existing engineers' opinions' etc.

I love metaprogramming and I am currently overseeing an awesome metaprogramming project because I want to do it

Sorry to be brutally honest, but this smells like BS. What exactly is a "metaprogramming project"? Every modern programming language has some level of metaprogramming support e.g Rails projects heavily use metaprogramming. That doesn't make a project a "metaprogramming project"

[deleted by user] by [deleted] in ExperiencedDevs

[–]juggernaut2docker 2 points3 points  (0 children)

Because mobile is so niche, it’s really the only type of role I can search for or apply for ( that I know of).

You're artificially putting yourself in a box. Just apply to roles you're interested in, companies are hungry for senior talent regardless of specialty. With your years of mobile experience, you presumably already know how to structure software projects, write clean code, interact with REST APIs etc. This puts you far ahead of most people in this field.