ytt lets you embed logic via a python-subset (starlark) and also provides "overlays" as a "replace/insert" mechanism. and all valid ytt files are valid yaml files, so they can be passed-through other yaml parsing stages.
739 karma · joined November 9, 2013
ytt lets you embed logic via a python-subset (starlark) and also provides "overlays" as a "replace/insert" mechanism. and all valid ytt files are valid yaml files, so they can be passed-through other yaml parsing stages.
I'm not disagreeing with you re. what I'd rather see us move towards, but there's a whole lot of existing money and power entrenched in the idea that having money is a great way to continue having money.
Example: I'm currently working on a project led by someone that many people at the company know. Today he shared a sketched out proposal for a problem that's been on our team's plate, and I didn't immediately like it. I started asking him questions to poke holes in his proposal over slack but he had counterarguments ready for everything, and eventually I sort of gave up and said, "ok I guess I just don't quite understand the problem."
His response was to suggest a synchronous video chat, which he started by thanking me for challenging his design. This meant I went from feeling like I was probably dumb and just asking things he'd already through to feeling like I was helping in the design process, even if I couldn't see the problem as clearly.
In the end he convinced me that all my questions had answers and my only counter-proposal would be just as much work and more "surprising" (less intuitive?) within the domain, but I didn't feel argued-down. I felt like my challenges were appreciated, which makes me more likely to raise other challenges again in the future, which reduces the odds that he'll feel like he's working alone.
just an anecdote, but I've worked with high-achievers who had varying ways of welcoming or shutting down input, enabling or crippling the teams around them. I see this suggestion a few places in this thread: if you identify as someone with a relentless drive to improve, then maybe it's time to work on your communication styles and patterns.
The triplets described in this paper seem to build on the "standard" 2P effect.
> there is still a moment, just a moment, to say good bye and I love you
and why not? Maybe sometimes there is. and maybe the value of that is more for the living than the dead, but imo the point was that there's an argument they can still hear you. Will they remember it later? That's kind of a non-sequitor question if they're in the midst of dying.
Or if you think back to your earliest contacts with technology, whether someone gave you a book, told you the name of some tech to learn, helped you get access to a computer, etc., I think all of us who are working in tech have had the good fortune to have access to technology and resources that helped us train ourselves but I can imagine having had substantially less access earlier in my life and the deficit that could've left. So I think I've been overall very fortunate, and that's part of what's meant by the word "privilege."
A few individual components that try to bring back the ease of rapid/easy deploys include: Flux, Tilt, Argo, kapp-controller.
They all have slightly different priorities and make different compromises, but anyways just to assure you there's quite a few people trying to build and sell the layer you're describing.
It's like any other collection of people, except maybe what's hard to remember if you're in tech is that in public bureaucracies there's no high pay, inherently "interesting problems," or prestige factor attracting the bright and ambitious; just job security and pensions attracting the risk averse and allowing anyone toxic who makes it in to remain.
The district my wife left had double digits percentage turnover in their senior administrative roles during the pandemic - that would be enough to keep most organizations from operating to their full potential.
Additionally, they really don't get to make their own decisions - not only is there a chain of command but there's a surprising number of things that have to wait for school board approval and quite a few sets of regulations to navigate. I've been in regulated tech like medical device, and my perception is that what the school admins deal with is a whole other level.
While agreeing with everyone that "raisin d'oatmeal" is genius, and while also agreeing that it's clear that the US has basically failed at running public schools, please don't claim the administrators are somehow the sole agents of this. Like many things in this country it's born of a complicated web of political power being wielded in both good and bad faith by people with varying opinions of what would be best across many decades and scales.
Here's some free marketing, I am not affiliated with any of these co.s: The best tool I've used for multiple users was CoScreen, because it shows everyone's cursors and allows simultaneous sharing of windows from multiple coworkers. So per that point in the OP that the major benefit is "trivia" knowledge, if you have one coworker who can quickly solve subproblem X from their terminal, and another who can quickly solve subproblem Y from their terminal, both terminals can be shared simultaneously and everyone can gain that context.
In my limited sampling, Stripe and VMWare stand out as big companies you've probably heard of where the coding challenge felt closer to "help us verify you've been writing software professionally for a while" and further from "prove you could still pass an advanced undergraduate exam on data structures and algorithms". I'm sure both those co.s are large enough that your experience may vary, but it made me hopeful that our long dark winter of perpetually drilling intermediate to advanced algorithms coursework is ending.
I'd be willing to pay $5/month for a beta version, if I were using windows. Or alternatively, if someone is watching, I'd be willing to pay $5 for a trial of a mac version :) Respect it's quite a bit of work to support a second OS and window manager and you have to start somewhere - Hope it goes well and makes its way over to Mac soon!
As such I think OP has a point: are these co.s really trying to hire engineers with sufficient competency in multiple domains, and if so is it reasonable to get incrementally better compensation for each domain one has strong competency in?
Personally I find I still frequently write pretty atrocious code on the first draft, and it's only by stepping back from the problem after demonstrating to myself I understand it well enough to solve it at all that I can begin to write a more graceful solution. But deadlines and reality being what they are, I think the majority of us are embarrassed by our past code a majority of the time.
So don't be too hard on yourself, but also frankly don't worry about shoe-horning yourself into "A Career" either. They're kind of a recent invention and the whole concept might need a few more iterations. You could spend a few years as a Product Manager, an Engineering Manager, a Highschool Teacher, or a Business Analyst, leveraging your past experience to gain competency in a new niche.
I want to emphasize of self-awareness you have is commendable and not universally present: If you can realistically assess your own current skill level and then apply yourself to improving, you could be an above average software engineer before you know it. And right now it seems like so so many companies just can't get enough software engineers, so it's a pretty safe place to practice learning how to learn while also earning a decent income.
I think "catalogers" as I'm thinking of them are by nature not quite pioneers, since the fundamental move of cataloging is to describe and categorize what already exists, but might often be settlers, in the sense that a good career move for a cataloger is to be the first to apply a new process to gain insight into new distinctions or categories. In that sense I would see GoF themselves acting as "settlers" in their Design Patterns book, which I tend to view as a catalog project.
However books like "Refactoring", and "Working effectively With Legacy Code" also turn into partial cataloging projects, but those might overlap more with "town planner" in that they're really leveraging some mature technologies and looking for system-level economic savings of readability/changeability/maintainability.
So I guess I'd continue to argue that it's a "mindset" as much as "a type of person"; "Working Effectively With Legacy Code" isn't _only_ a catalog, but there's parts of it that come from a catalog mindset.
Regardless, I hadn't seen the above mapping you linked and I appreciate it!
To me a lot of the tension comes from the "endless september" nature of software, that over the last 20 years we just keep absorbing more and more new-ish folks who come in with vastly varying levels of formal and informal education.
I'm tempted to describe one mindset as "catalogers" in contrast to other mindsets that might be called "explorers", "consensus builders", "hackers", "do-ers", etc. (not a complete list nor entirely disjoint categories -- i'm a lousy cataloger!)
I think part of this endless Design Patterns discussion is that some, myself included, would like to push back when "design patterns" starts to become "a standard and nearly exhaustive catalog that the whole field uses with uniform meanings."
We had to buy a windows laptop, both because of cost and because of strong "I'm a PC person" preference of a few board members. Sometimes we use it 1-2x per week, but sometimes a few weeks go by and we don't use it for anything, so I've absolutely hit this case where the last time I had the machine open, it wasn't concerned with updating itself, but it now, after being off for weeks, feels that I am delinquent in updating.
I curse that machine every single time it hijacks my setup time to install updates. I feel so frustrated, and so powerless. I would so dearly love an option that says "I will stay late after this event. I promise, you can install this update in 3-4 hours, just as soon as all the time critical live stuff is done."
Anyway it's the curse of success, right? I guarantee I'm not the only one with this kind of story, but I guarantee that all of us together are a tiny fraction of a percent of all Windows users.
Still in all, I'd gladly have paid the cost difference for a macbook air that I could trust not to start updating itself shortly before it's going to be relied on for a public event. But I guess the worst case now would be a mac running Big Sur but set to auto-update, cause then you really _could_ be out of operation for 30+ minutes.
(and obligatory - gosh, it has to have been a year since I dealt with this. Everything fades with time but I can still feel that helpless panic.)
Anyway sharing here just to note that while thankfully it was a CI issue and not a production issue, it did convince me that "test locally on your own machine" tooling still had some subtle gaps vs. what was happening in "the cloud."
Just like learning to read large C++ codebases, there's clearly a learning curve because a simple idea that would be a one-liner in a high level language is going to be 5-15 lines.
Go also makes the "learn to read" learning curve even steeper when folks pick up and propagate the core team's propensity for single letter variables. I feel like one of the understated benefits of ruby/python/similar languages being relatively readable is that folks are inclined to keep them readable. Whereas when you feel like you're one step away from specifying the register and how hot the welding torch should be to toggle the bits, you're somehow more likely to write `c.T.Client.Send(v)`.
IMO if we accept that most of our work is maintenance & modification of existing code, and most of the work in those tasks is understanding what's already been written, it follows immediately that code that's easy to read has high business value. I know it's too soon in my learning curve, but I'm really hoping I find the patterns that make Go easy to read soon. (and a little tangentially but the descriptive power of a variable name should be proportional to its scope - so imo anything exported or that I might see across multiple files is an awfully strong contender for a multi-word descriptive name.)
But in learning how to befriend this "difficult" cat I really had to set aside all of my own agendas and ideas, and I learned something very generalizable about how to learn.
What it came down to, per the article, was that everyone in the co. respected that the engineering team was capable of delivering results and solving problems.
But i think per your question about JIRA, it gives you autonomy if: - anyone on the team can add a ticket - the team is trusted to make small changes in scope or spec to tickets in response to things they encounter as they work - there is little to no ceremony around accepting tickets as done - the team is trusted to check their own work first, and then collaborate with QA / stakeholders / etc. on releases
1. after code review etc. a change is merged to master 2. the CI tests are automatically run 3. IFF the tests pass the change is auto-deployed to staging 4. promoting a deploy to production is a push-button or a CLI command 5. adding 3rd party services such as New Relic / DataDog / Papertrail / Bugsnag is a push button or single CLI command 6. even things like upgrading to a new version of Postgres is distilled down to a few CLI commands
I think Heroku is not alone in providing this level of ease, but that's what I've been using.
I would argue that there is not a "gap" but there is actually "a thing that you can totally have if you're willing to pay more money and give up some customization or control," which makes it roughly analogous to the iPhone.
Most people in most places are basically friendly. However. Even just being recognize you as 'other' can get old, like being asked "where are you from" or riding the bus in Chicago and having to answer questions about my ethnicity from whoever was feeling tipsy enough to ask them.
Here's one story of folks being un-friendly: I was at a public event, basically a version of a county fair with my wife's family somewhere in the rural midwest. There's a stage with small-name bands performing, food vendors, and a small carnival-ride section. As the sun sets we lose track of her parents, and as we're looking for them I also got separated from my wife. I felt like the crowd was also slowly changing and like I was starting to attract attention in the form of unfriendly looks. I find my wife and try to express this, but her face clearly says it's all in my head and why am I talking about anything other than how we can find her parents. Just then a physically imposed man walks up, plants himself firmly in front of me, and asks in the least friendly way possible, "how's it going brother?" I answer him in unaccented neutral native-born american english (don't remember what i said, but likely something like "good how you doin"), and my wife is like, "ok you're right, we have to find my parents and leave."
So just to be clear - I can't know what might have been, but I strongly suspect that having grown up here and being a native speaker made that evening simpler. And again, I'm someone who many people look at and just process as "white" so I can easily take my experiences as a shallow sample from the tip of the iceberg.
And that kind of "unfriendly" experience is something that happens more often if i leave coastal metropolitan areas.
https://support.garmin.com/en-US/?faq=2yEgS0Pax53UDqUH7q4WC6