<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Leon Adato</title>
    <description>The latest articles on DEV Community by Leon Adato (@leonadato).</description>
    <link>https://dev.to/leonadato</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F830558%2F63535160-bcf9-44d2-9565-f6b2891fd757.jpg</url>
      <title>DEV Community: Leon Adato</title>
      <link>https://dev.to/leonadato</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leonadato"/>
    <language>en</language>
    <item>
      <title>What “Project Hail Mary” Taught Me About Working in Tech (part 1)</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Tue, 10 Nov 2026 03:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/what-project-hail-mary-taught-me-about-working-in-tech-part-1-1lj0</link>
      <guid>https://dev.to/leonadato/what-project-hail-mary-taught-me-about-working-in-tech-part-1-1lj0</guid>
      <description>&lt;h2&gt;
  
  
  Pre-Launch Checklist
&lt;/h2&gt;

&lt;p&gt;What follows are some observations and ideas that are inspired by “Project Hail Mary”, both the book by Andy Weir and the movie it inspired. If you haven’t read/watched them (and I&amp;nbsp;&lt;em&gt;highly&lt;/em&gt;&amp;nbsp;recommend you do!) and you don’t want it spoiled, you should probably stop reading, bookmark this page, and come back later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Countdown
&lt;/h2&gt;

&lt;p&gt;As someone who has worked in I.T for over 30 years, I long ago got comfortable with the idea that part of my job was to be a “lifelong learner” – someone who routinely picks up new skills and information in order to keep working. Most of the time, that learning happens at the shoulder of a colleague, taking a course, watching a video, or reading a blog.&lt;/p&gt;

&lt;p&gt;All of which are deeply technical types of content. There might be a Star Trek reference or two, but otherwise high adventure and thrilling plot twists are in short supply. Which is too bad, because it can all get pretty dry.&lt;/p&gt;

&lt;p&gt;Maybe that’s why, over the years, I’ve looked for (and found) lessons for I.T. practitioners in more popular forms of media – everything from SpiderMan to The Lord of the Rings. No, you probably won’t discover command-line options for kubctl in the midst of the battle at Helm’s Deep, but in the midst of the banter between Gimli and Legolas you just might find an idea or two to better leverage what you know about kubernetes.&lt;/p&gt;

&lt;p&gt;And so, in that same spirit I am sharing some of the I.T lessons I found in the story of Grace and Rocky and their heroic adventure among the stars.&lt;/p&gt;

&lt;h2&gt;
  
  
  Launch
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Never Give Up
&lt;/h3&gt;

&lt;p&gt;If there is one lesson I think IT practitioners can take away from the story of Dr. Ryland Grace (who I’m referring to as “Grace” from this point forward), Rocky and the planets they’re trying to save, it’s that you should NEVER give up. I know that sounds cliche’d and overly simplistic, but it still holds true: In the face of a dying sun, humanity chose to come together and first gather information about the threat, then bring the best and brightest minds to analyze that threat and create a plan that might save everyone. In doing so, false obstacles were removed (like considering a junior high school science teacher to be part of this planet-saving operation). The only thing that mattered was both willingness and competence.&lt;/p&gt;

&lt;p&gt;And that theme continued throughout the story. Despite a series of challenges that would overwhelm many of us, the characters in the story chose to believe there was a solution, and continued acting as if there was one, they just didn’t know it yet.&lt;/p&gt;

&lt;p&gt;In tech, I think the same attitude serves us well. Whether it’s code that won’t compile, or a cluster that won’t build, or an application interface that users find confusing, there is always a solution. Sometimes it’s hidden; sometimes we need to bring in another expert with a different point of view; and sometimes we need to ask whether the problem is even real, or if it’s a manifestation of our own fear or insecurity.&lt;/p&gt;

&lt;p&gt;To elaborate, I want to share an experience from almost 20 years ago:&lt;/p&gt;

&lt;p&gt;I’d gone to a week long technical “boot camp” – a program designed to help teach me the skills I needed to pass a certification test. The week culminated in the actual test, for those who felt they were prepared enough.&lt;/p&gt;

&lt;p&gt;I was in the room with one other student. The exam was proctored, with an observer in the room to both help in case the technology had a problem and also to ensure there was no cheating. As the test progressed, the other student became increasingly more agitated – grumbling, slamming the keyboard, pacing the room, etc. The proctor gave him a little latitude but at a certain point reminded him that there were test rules that had to be observed.&lt;/p&gt;

&lt;p&gt;As the clock ran down, this other person gave up. He said there was no way he was going to pass, and he didn’t want to see his miserable score. He got up and left the room. The proctor went to the testing station and clicked through the remaining questions to force the test to end.&lt;/p&gt;

&lt;p&gt;There were 10 questions left. He missed passing by 3 points. The reality was that he could have just randomly guessed at the answers and probably squeaked by.&lt;/p&gt;

&lt;p&gt;I will admit to having felt the exact same way during certification exams: the absolute certainty that I’d missed every single question, that it was mathematically impossible to pass. In those moments, memory of that other student has kept my butt in the seat and my head in the game. And in almost every situation, I passed by a much wider margin than I had thought possible.&lt;/p&gt;

&lt;p&gt;To come back to “Project Hail Mary”, there are times when – like Grace – we’re braver, more resourceful, more capable than we give ourselves credit for. Keep going. Never give up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Have Someone You Need to Be Brave For
&lt;/h3&gt;

&lt;p&gt;Continuing on that idea of bravery: When it becomes obvious that the mission to Tau Ceti will be a one-way trip, Grace tells mission commander Yáo Li-Jie that he could never do what they’re doing, that he doesn’t have that bravery in him. Yáo replies that Grace just needs someone to be brave for.&lt;/p&gt;

&lt;p&gt;Much has been made of the moment near the end of the story, when Grace turns his ship around to save Rocky, even though it means he will never make it home. And that was brave, and it was because he’d found someone he needed to be brave for. But to be honest, Grace shows innate courage throughout the story – from telling Rocky he’s OK with dying (even though he’s terrified of it); to repeatedly taking risks in order to collect data, complete a task, and even to face and learn to interact with a completely alien entity.&lt;/p&gt;

&lt;p&gt;The lesson for us is this: Working in tech is neither simple nor stable. We are going to be lifelong learners – the tech doesn’t stop changing and therefore neither can we. It demands (or seems to demand) long hours and sudden interruptions. There’s a certain culture of heroic firefighting that permeates the industry, even though many of us have acknowledged how unhealthy it can become.&lt;/p&gt;

&lt;p&gt;For many of us, a career in tech can either burn us out or burn us up. Few are the leaders who keep track of our efforts and say, even in the middle of the work day “You know what? you’ve done enough for one day. Pack it up and hit it again tomorrow when you’re fresh.” That boundary has to come from within ourselves.&lt;/p&gt;

&lt;p&gt;And for many of us the strength to find, set, and hold that boundary comes from whoever “we’re being brave for” – meaning whatever greater goal or relationship we’re working for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Eva Stratt is the quintessential tech leader
&lt;/h3&gt;

&lt;p&gt;Eva Stratt is something of an enigma, both in the book and the movie. She weilds a vast amount of power, seemingly without anxiety or ego. She is single-mindedly driven by the mission to identify the threat to the sun, then to find a solution, then to execute that solution. She’s extremely clear-eyed about what is likely to happen once the existential threat is over, or when the inevitable fallout of the current situation becomes too great to ignore. But until then she is willing to do whatever is needed to save as many people as possible.&lt;/p&gt;

&lt;p&gt;Why do I think that’s similar to a great IT leader? I’ve long said that, to be a good manager of techical folks, one doesn’t need to be the best technician. Instead, it’s important to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; surround yourself with good people.&lt;/li&gt;
&lt;li&gt; tell them the goals of the organization.&lt;/li&gt;
&lt;li&gt; ask them for the best way to achieve those goals.&lt;/li&gt;
&lt;li&gt; BELIEVE WHAT THEY TELL YOU.&lt;/li&gt;
&lt;li&gt; Clear a path for them to do the work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is precisely what Eva Stratt does.&lt;/p&gt;

&lt;p&gt;IT managers who understand (and do) this are the ones that enable their team (and the larger organization) to achieve spectacular results. Obviously no result is guarenteed, but managers who follow this model succeed far more often than those who do otherwise.&lt;/p&gt;

&lt;p&gt;One other thing that Eva does is makes the stakes for both success and failure clear to the team. She doesn’t hide it or sugar coat it. Far from upsetting or distracting the team, doing so provides critical context for their choices. Early in my career I had an experience that demonstrated exactly how important that context could be:&lt;/p&gt;

&lt;p&gt;I was working in a manufacturing facility, and one of the Zebra printers (a case of perfect brand naming for a device that created barcode labels) wasn’t working. I took a look and realized it was going to take me a bit of time to figure out the issue. The problem was that it was coming near the end of my shift, and I needed to get home before my kids got off the bus from school. I told the manager in charge of the production line that I could get to it first thing the next day.&lt;/p&gt;

&lt;p&gt;“That’s absolutely understandable,” he said, sounding completely sincere. “You’ve got to take care of your family. But before you go I just want to make sure you understand the situation so you’re not blindsided: None of the parts were’re making can ship without that barcode. And that’s the only zebra we’ve got. And each board is about $5,000 of profit for us.”&lt;/p&gt;

&lt;p&gt;I looked at the backlog and realized there were close to 100 boards already waiting for labels, and more coming off the line.&lt;/p&gt;

&lt;p&gt;I made a couple of phone calls, re-arranged some things, and stayed on the line until the problem was solved.&lt;/p&gt;

&lt;p&gt;The point isn’t any heroics on my part. It’s that I would have made a bad choice without realizing it until tempers flared and everyone was caught up in the typical cycle of blame, justifications, and attempts to cover respective backsides.&lt;/p&gt;

&lt;p&gt;Eva Stratt does the same thing, over and over throughout the story.&lt;/p&gt;

&lt;p&gt;And the final thing that Eva does that makes her such a great role model is that she takes the time to honestly assess and understand the real strengths of her team – beyond what they say (or believe) about themselves. This, of course, lies at the crux of one of the major twists in the story, in that Eva understands how Grace will rise to the occaision even when he himself is certain he doesn’t have it in him.&lt;/p&gt;

&lt;h3&gt;
  
  
  Our Journey to the Stars Has Only Just Begun
&lt;/h3&gt;

&lt;p&gt;Like science itself, there are many more lessons for IT professionals waiting to be discovered inside “Project Hail Mary”. In the coming posts, I’m going to explore more of them. In the meanwhile, if you have observations or insights of your own, I would love to hear about them in the comments below.&lt;/p&gt;

&lt;p&gt;Until then,&amp;nbsp;&lt;em&gt;ad astra&lt;/em&gt;, hopefully without the&amp;nbsp;&lt;em&gt;per aspera&lt;/em&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How NOT to Answer the Salary Question</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 02 Nov 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/how-not-to-answer-the-salary-question-2hg6</link>
      <guid>https://dev.to/leonadato/how-not-to-answer-the-salary-question-2hg6</guid>
      <description>&lt;p&gt;Before you read a single line more, I will give the usual but still important caveats – this blog is my opinion, based on my experiences. Take it with a big ol’ grain of salt. Then again, you’re welcome to leave your thoughts in the comments below.&lt;/p&gt;

&lt;p&gt;OK, with that out of the way, let me set the stage. A friend who I’ve been helping find a new job recently asked me,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“When an employer asks what’s your desired salary, what’s the best approach?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I could have sworn I’d covered this point before now. I’ve certainly talked&amp;nbsp;&lt;a href="https://adatosystems.com/category/career/" rel="noopener noreferrer"&gt;at length&lt;/a&gt;&amp;nbsp;about job hunting. I came close to today’s topic when I blogged about&amp;nbsp;&lt;a href="https://adatosystems.com/2023/12/11/what-i-learned-about-salary-negotiation-from-kym-possible/" rel="noopener noreferrer"&gt;salary negotiations&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But, for as many times as I’ve discussed this verbally, it’s never made it to the printed page. So here we go:&lt;/p&gt;

&lt;p&gt;There will come a point in a job interview where someone is going to ask about the salary.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  if you are smart, that person won’t be you.&lt;/li&gt;
&lt;li&gt;  if it’s a good interview, the other party won’t ask until close to the end of the process&lt;/li&gt;
&lt;li&gt;  if it’s like 90% of the interviews I’ve ever had, it will be far, FAR too early.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which is why I’m writing this blog. Because along with not ASKING the question, you should put off answering this question for as long as possible.&lt;/p&gt;

&lt;p&gt;Now I recognize that absolutes – especially in the context of job interviews – are a function of privilege. Someone without the societal leverage that gender, age, ancestry confers; as well as those of visibility, connections, certifications/degrees, or accolades within the industry will have less freedom to make demands (or refuse them). So I’m going to work hard in the space below to offer both explanations and options. Explanations for why a particular strategy or choice is better overall; and options for how a person with less privilege might still be able to execute that strategy.&lt;/p&gt;

&lt;h2&gt;
  
  
  RULE #1: If they haven’t offered you the job, it’s not time to talk about salary.
&lt;/h2&gt;

&lt;p&gt;Talking about salary early in the process is distracting and unhelpful. While there might (MIGHT!) be some validity in the old excuse that “If we aren’t in the same ballpark, we’re wasting each other’s time”, the truth is that a job is far more than a dollar amount. And that goes for BOTH sides of the hiring desk.&lt;/p&gt;

&lt;p&gt;For the candidate, salary is important, but probably not more important than other aspects like the location, other benefits, or, I dunno, THE ACTUAL JOB RESPONSIBILITIES.&lt;/p&gt;

&lt;p&gt;I mean, for the love of pants, how can you talk about salary if you haven’t found out whether “donate a kidney” is or isn’t one of the job requirements. Because that kind of thing is going to have a significant impact on my negotiations.&lt;/p&gt;

&lt;p&gt;Meanwhile, for the employer, salary is important, but probably not more important than knowing whether the candidate can actually do the job, or get along with their manager, or believes in the mission of the company.&lt;/p&gt;

&lt;p&gt;That explains WHY (in my (not so humble) opinion) it’s not helpful to talk about salary. But let’s move to HOW one can avoid that questions. Or at least give enough of an answer that the other party is satisfied enough to continue the conversation:&lt;/p&gt;

&lt;h3&gt;
  
  
  “RESPONSE #1: I’m looking for a salary that’s within the industry-standard range for this type of role.”
&lt;/h3&gt;

&lt;p&gt;This is the answer I’ve had the most success with. It’s the one that is both honest and also leaves room to actually negotiate later.&lt;/p&gt;

&lt;p&gt;It also forces the employer into a position that helps you: They&amp;nbsp;&lt;strong&gt;certainly&lt;/strong&gt;&amp;nbsp;won’t say “We won’t pay the industry standard”, and they&amp;nbsp;&lt;strong&gt;probably&lt;/strong&gt;&amp;nbsp;won’t ask you “What is that range?”&lt;/p&gt;

&lt;p&gt;However, you need to be prepared. You need to have done the research to understand what the standard salary range is for this role in your area of the world, and you need to have multiple sources confirming that range. Because every once in a while I’ve had a company that gives me a range that is way out of line, and then it’s helpful to be able to say “According to x, y, and z sources, this is the range. Where are you getting your numbers from?”&lt;/p&gt;

&lt;p&gt;The value of this strategy is that it pulls you out of a direct confrontation on how much you feel you are worth versus how much they feel they should pay. Instead you are talking about sources of data and what the data show. At the end of the day, the company might dig in their heels and say “Well despite all of that this is still the range we’re paying.” but you’ve established yourself who is reasonable and works from the data at hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  RESPONSE #2: It’s difficult to give salary requirements when I don’t know anything about the BENEFITS yet.
&lt;/h3&gt;

&lt;p&gt;If asked for details, you can point out that without understanding all the things that affect your bottom line, it’s difficult (or impossible) to provide a number. Specific elements that affect your salary calculation include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  insurance coverage

&lt;ul&gt;
&lt;li&gt;  and the monthly premium deducted from your paycheck&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  vacation days&lt;/li&gt;
&lt;li&gt;  bonuses (whether they are company-wide or individual)&lt;/li&gt;
&lt;li&gt;  stock options and RSUs&lt;/li&gt;
&lt;li&gt;  The amount and frequency of cost of living increases&lt;/li&gt;
&lt;li&gt;  The standard amount for yearly raises&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point in all this is that – while the company is focused on the salary – most employees are far more concerned about our take-home pay, which is affected by all the factors I list above (and more).&lt;/p&gt;

&lt;p&gt;Example: I worked at one company that offered me a lower starting salary but also covered 100% of my insurance costs. There was no deduction from my paycheck. So even though my salary was lower, my net-pay was significantly higher than other jobs.&lt;/p&gt;

&lt;h3&gt;
  
  
  RESPONSE #3: It’s difficult to give salary requirements when I don’t know anything about the JOB yet.
&lt;/h3&gt;

&lt;p&gt;This builds on the previous answer, but focuses on the net labor/responsibility rather than the net dollar amount. It also returns to the “industry-standard range for this role” concept.&lt;/p&gt;

&lt;p&gt;Senior developer work deserves senior developer pay, irrespective of the job description. Meanwhile, we’re all too familiar with postings that are clearly “3 jobs in a trench coat” (something I explore in my&amp;nbsp;&lt;a href="https://adatosystems.com/2024/01/09/job-descriptions-and-other-works-of-fiction/" rel="noopener noreferrer"&gt;blog about job descriptions&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Beyond the job responsibilities itself, there’s the aspects of everything from team dynamics to management structure to whether this role has existed in the company before or if you will be creating everything from the output to the processes and procedures yourself.&lt;/p&gt;

&lt;p&gt;The point you are making with this response is that you can’t put a number of a job until you know what the job is – how much risk and effort it will entail. That’s as true for IT practitioners as it is for plumbers, doctors, or car mechanics.&lt;/p&gt;

&lt;p&gt;This is also a helpful response if the company asks for your salary history. You need to stress that past salaries aren’t relevant because the tasks, level of responsibility, etc. could be completely different.&lt;/p&gt;

&lt;h2&gt;
  
  
  RESPONSE #4: Let’s focus on the job, because you might not even want me for the role!
&lt;/h2&gt;

&lt;p&gt;If you’ feel comfortable, you can add “…and I don’t know enough about the job to know if it’s something I’m interested in either.”&lt;/p&gt;

&lt;p&gt;The goal here is to re-direct the conversation to the topics that are important to get out of the way BEFORE a salary is the relevant point.&lt;/p&gt;

&lt;p&gt;Otherwise time is being wasted discussing a theoretical number before both sides agree that there’s a fit for the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  RULE #2: The one who gives a number first loses.
&lt;/h2&gt;

&lt;p&gt;Despite this fact, HR reps, recruiters, and headhunters will all try to get you to give a number. They might even try to reassure by saying, “We just want to level set. Nothing is set in stone.”&lt;/p&gt;

&lt;p&gt;Let me be clear: As sure as there will be another Sharknado movie, they will ABSOLUTELY throw that number back in your face if you change it.&lt;/p&gt;

&lt;p&gt;I’d suggest you continue to return to the “salary range” strategy, because if you give a number, they are going to hold you to that number. If they continue to press, you can put it back on them by asking “What salary did you have in mind?”&lt;/p&gt;

&lt;p&gt;Most times the recruiter gets the point and moves on.&lt;/p&gt;

&lt;h2&gt;
  
  
  RULE #3: It’s not privilege, it’s self-preservation
&lt;/h2&gt;

&lt;p&gt;As I mentioned at the start, I recognize that some of my experiences come from a place of privilege. I’m a cis-gender, heterosexual, middle aged white dude with 37 years experience in the tech industry. I basically have all the privilege a human body can hold.&lt;/p&gt;

&lt;p&gt;That said, I’d like to propose that what I’m suggesting in this blog is more than just a function of that privilege. It’s also based on my experiences with having NOT given these answers.&lt;/p&gt;

&lt;p&gt;When I failed to stand up for myself, I ended up not only making less money, I found myself in jobs I didn’t want, working for organizations who took advantage of me, and in situations where I ultimately had to get out and ended up in a worse spot than when I’d started.&lt;/p&gt;

&lt;p&gt;I recognize that everyone’s experiences and life pressures are different. Never the less, I’d like to share some of my observations here. Take them for what they’re worth to you.&lt;/p&gt;

&lt;p&gt;If the salary is a sticking point, it’s a red flag. It indicates that your cost to them is the single most important element of your employment. That is not likely to change once you start the job. They will continually look for ways to increase your output while reducing your compensation.&lt;/p&gt;

&lt;p&gt;If they are so miopically focused on salary that they would pass on a candidate with the skills and experience to do the job, then that’s a huge tell on their part.&lt;/p&gt;

&lt;p&gt;Many of the recruiters I’ve spoken to who can’t get past the salary have been hiding the fact that there isn’t really a job in the first place. Or that YOU are the product – meaning they are collecting a database of people to sell to other organizations, rather than having a database of jobs and working to match people to them.&lt;/p&gt;

&lt;p&gt;A variation of this is when they don’t know what they want, so they interview a whole mess of different people hoping “they’ll know it when they see it.” The problem is that the “it” they are looking for is “the right price”, not the “the right candidate.”&lt;/p&gt;

&lt;p&gt;Some recruiters are able to move forward in the conversation, but they choose not to because this is a power trip for them.&lt;/p&gt;

&lt;p&gt;In all of the above scenarios, the likelihood of succeeding in that role, for that company, is low.&lt;/p&gt;

&lt;h2&gt;
  
  
  RULE #4: Take Care of Yourself
&lt;/h2&gt;

&lt;p&gt;If you’re in a position where you can’t be picky, don’t be picky. Take the job. But my advice in that case is to keep looking, because this has a high likelihood of being a bad fit.&lt;/p&gt;

&lt;p&gt;In addition, start thinking now about how you’ll explain this in the future. Let’s say you take the job, and keep looking. What are you going to say to the next interviewer when they ask why you’re looking to leave? I’ve&amp;nbsp;&lt;a href="https://adatosystems.com/2024/10/14/the-one-interview-question-that-lost-you-the-job/" rel="noopener noreferrer"&gt;already written&lt;/a&gt;&amp;nbsp;about how this, more than any other question, could lose you the job. Be prepared.&lt;/p&gt;

&lt;h2&gt;
  
  
  RULE #5: If It’s Not Going to Work, Have Fun
&lt;/h2&gt;

&lt;p&gt;Let’s say you’re in a lose-lose situation. They aren’t going to move past the salary conversation, and you know with absolute certainty that you aren’t going to take the job.&lt;/p&gt;

&lt;p&gt;In that moment, recognize that you truly have nothing to lose. Use this moment for research. What happens if you fully stand up for yourself? What happens if you push back?&lt;/p&gt;

&lt;p&gt;In that case, I’d like to provide one of my favorite snarky responses,&amp;nbsp;&lt;a href="https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/how-software-developers-can-negotiate-better-salaries-with-josh-doody/" rel="noopener noreferrer"&gt;straight from my friend Corey Quinn&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  RESPONSE #5: I’m looking for $80 million and a company helicopter.
&lt;/h3&gt;

&lt;h2&gt;
  
  
  In Summary:
&lt;/h2&gt;

&lt;p&gt;The correct answer my friend’s original question&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“When an employer asks what’s your desired salary, what’s the best approach?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is (IM(ns)HO)&lt;/p&gt;

&lt;p&gt;“By saying as little as you can possibly manage early in the conversation; pushing the discussion of money until after you’ve demonstrated your potential value to the company. If you have to answer, give a range not a number, and back that range up with sources. Once a job offer is made (or imminent), the company should be the one to make the first move. All of this is done with the over-arching guideline of doing so without ruining your prospects of getting the job.”&lt;/p&gt;

&lt;p&gt;EDITS:&lt;br&gt;&lt;br&gt;
Deepest thanks to everyone (including the entire HackerNews crew!) for much insightful feedback. In the space below I’m going to keep a log of edits based on feedback. And I plan a follow-up to this blog as well.&lt;/p&gt;




&lt;p&gt;2/17/26 – changed summary from:&lt;/p&gt;

&lt;p&gt;The correct answer to the question&lt;br&gt;&lt;br&gt;
“When an employer asks what’s your desired salary, what’s the best approach?”&lt;br&gt;&lt;br&gt;
is&lt;br&gt;&lt;br&gt;
“As little as you can possibly manage, without ruining your prospects of getting the job.”&lt;/p&gt;

</description>
      <category>career</category>
      <category>interview</category>
    </item>
    <item>
      <title>Zmanim-WP: Shabbat</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 26 Oct 2026 04:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/zmanim-wp-shabbat-9pn</link>
      <guid>https://dev.to/leonadato/zmanim-wp-shabbat-9pn</guid>
      <description>&lt;p&gt;&lt;em&gt;If you’ve been following this blog, you’ll know that I’ve been working on my&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/" rel="noopener noreferrer"&gt;Zmanim-WP plugin for WordPress&lt;/a&gt;&amp;nbsp;for a while now.&amp;nbsp;&lt;a href="https://adatosystems.com/category/zmanim/" rel="noopener noreferrer"&gt;This blog series&lt;/a&gt;&amp;nbsp;is designed to help you dig deeper into the plugin and understand what it does, how it works, and whether it’s right for your needs.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;In the first 5 parts of this series, I more or less worked through the parts of the day, from early morning until late night.&lt;/p&gt;

&lt;p&gt;In this section I’m going to focus on one of the most obvious use-cases for my Zmanim-WP WordPress plugin: Shabbat. Specifically, we’re going to look at the shortcodes for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Candle lighting ([zman_candles]) – This will display the time for lighting candles on Friday eventing.&lt;/li&gt;
&lt;li&gt;  The Parsha ([zman_parsha]) – Displays the name of the Torah portion read that week.&lt;/li&gt;
&lt;li&gt;  Yom Tov and Special Shabbatot ([zman_yomtov]) – If Shabbat falls on or during a holiday, this will display the name of the holiday. Additionally, if it’s a Shabbat with a special name (Shabbat Zachor, Shabbat Shekalim, etc), that will be displayed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As with the other shortcodes in this series, these can be used as-is, or with the options described in&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/05/zmanim-wp-getting-started/" rel="noopener noreferrer"&gt;the first post of the series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  [zman_candles date="saturday"]&lt;/li&gt;
&lt;li&gt;  [zman_candles date="saturday" dateformat="g:i:s a"]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition both [zman_parsha] and [zman_yomtov] will take the&amp;nbsp;&lt;code&gt;lang=&lt;/code&gt;&amp;nbsp;option, so that the output can display in English or Hebrew.&lt;/p&gt;

&lt;h2&gt;
  
  
  It’s a Matter of Opinion… kind of
&lt;/h2&gt;

&lt;p&gt;None of the shortcodes require you to choose a Rabbinic opinion (shita) per say. But Candle lighting does allow you to insert your personal (or organizational) opinion of sorts. While it’s generally understood that candle lighting is 18 minutes before shkia (sunset) on Friday, some organizations will print a different time for various reasons. Therefore on the Zmanim-WP “Standard Times” page, you have the ability to change that number from the default.&lt;/p&gt;

&lt;h2&gt;
  
  
  No Rest For the Weary
&lt;/h2&gt;

&lt;p&gt;After covering Shabbat, what else might there be? It turns out, I coded the Zmanim-WP plugin with a few more tricks up it’s sleeve. In the next installment, I’m going to cover “early” Shabbat settings.&lt;/p&gt;

&lt;p&gt;See you next time.&lt;/p&gt;

</description>
      <category>plugin</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Zmanin-WP: Common Codes, part 3</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 19 Oct 2026 04:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/zmanin-wp-common-codes-part-3-5740</link>
      <guid>https://dev.to/leonadato/zmanin-wp-common-codes-part-3-5740</guid>
      <description>&lt;p&gt;If you’ve been following this blog, you’ll know that I’ve been working on my&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/" rel="noopener noreferrer"&gt;Zmanim-WP plugin for WordPress&lt;/a&gt;&amp;nbsp;for a while now.&amp;nbsp;&lt;a href="https://adatosystems.com/category/zmanim/" rel="noopener noreferrer"&gt;This blog series&lt;/a&gt;&amp;nbsp;is designed to help you dig deeper into the plugin and understand what it does, how it works, and whether it’s right for your needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  “Dancing in the Dark”
&lt;/h2&gt;

&lt;p&gt;If&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/12/zmanin-wp-common-codes-part-1/" rel="noopener noreferrer"&gt;part 1&lt;/a&gt;&amp;nbsp;was focused on the zmanim for the start of the day; and&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/19/zmanin-wp-common-codes-part-2/" rel="noopener noreferrer"&gt;part 2&lt;/a&gt;&amp;nbsp;looked afternoon times, it stands to reason that today we’ll check out the shortcodes that help calculate the end of the day.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Start of Bain HaShmashot ([zman_bain]) – The time between sunset (“shkia”, in halachic terms) and night (“tzait hakochavim”) is sort of a halachic no-man’s-land, and therefore a lot of things that can only be done during the day (or at night) are no longer permitted. For this reason you need to know when this time is to avoid accidentally crossing a line.&lt;/li&gt;
&lt;li&gt;  Tzait HaKochavim ([zman_tzait]) – The time when 3 stars are visible in the sky, signifying the arrival of “night time”&lt;/li&gt;
&lt;li&gt;  sunset ([zman_sunset]) – Nautical sunset, also called “shkia”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above three are still “regular” zmanim – things that one might expect to see on a sheet of times. The last two (for this week) are “special” zmanim that I’ve included in the plugin because they are so darn useful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  earlyshkia ([zman_earlyshkia]) – The earliest shkia for that week (see more on this below).&lt;/li&gt;
&lt;li&gt;  lateshkia ([zman_lateshkia]) – The latest shkia for that week (see more on this below).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ll elaborate on these more in their own specific section.&lt;/p&gt;

&lt;p&gt;Same as the other posts, these shortcodes can be used as-is, or with the options described in&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/05/zmanim-wp-getting-started/" rel="noopener noreferrer"&gt;the first post of the series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  [zman_bain date="saturday"]&lt;/li&gt;
&lt;li&gt;  [zman_tzait date="saturday" dateformat="g:i:s a"]&lt;/li&gt;
&lt;li&gt;  [zman_sunset offset=-20]&lt;/li&gt;
&lt;li&gt;  [zman_earlyshkia dateformat="g:i a"]&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Matter of Opinion
&lt;/h2&gt;

&lt;p&gt;Bain HaShmashot and Tzait haKochavim require you to select a shita – a Rabbinic opinion – for it’s calculation. I plan to elaborate on each of these items in another series, but some details can be found on the&amp;nbsp;&lt;a href="https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getBainHashmashosRT13Point24Degrees()" rel="noopener noreferrer"&gt;KosherJava documentation site: https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getBainHashmashosRT13Point24Degrees()&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Start of Bain HaShmashot ([zman_bain]) –
“bainHashmashosRT13Point24Degrees”,
“bainHashmashosRT58Point5Minutes”,
“bainHashmashosRT13Point5MinutesBefore7Point083Degrees”,
“bainHashmashosRT2Stars”,
“bainHashmashosYereim18Minutes”,
“bainHashmashosYereim3Point05Degrees”,
“bainHashmashosYereim16Point875Minutes”,
“bainHashmashosYereim2Point8Degrees”,
“bainHashmashosYereim13Point5Minutes”,
“bainHashmashosYereim2Point1Degrees”&lt;/li&gt;
&lt;li&gt;  Tzait HaKochavim ([zman_tzait]) –
“tzais72”,
“tzaisGeonim3Point7Degrees”,
“tzaisGeonim3Point8Degrees”,
“tzaisGeonim5Point95Degrees”,
“tzaisGeonim3Point65Degrees”,
“tzaisGeonim3Point676Degrees”,
“tzaisGeonim4Point61Degrees”,
“tzaisGeonim4Point37Degrees”,
“tzaisGeonim5Point88Degrees”,
“tzaisGeonim4Point8Degrees”,
“tzaisGeonim6Point45Degrees”,
“tzaisGeonim7Point083Degrees”,
“tzaisGeonim7Point67Degrees”,
“tzaisGeonim8Point5Degrees”,
“tzaisGeonim9Point3Degrees”,
“tzaisGeonim9Point75Degrees”,
“tzais60”,
“tzaisAteretTorah”,
“tzais72Zmanis”,
“tzais90Zmanis”,
“tzais96Zmanis”,
“tzais90”,
“tzais120”,
“tzais120Zmanis”,
“tzais16Point1Degrees”,
“tzais26Degrees”,
“tzais18Degrees”,
“tzais19Point8Degrees”,
“tzais96”,
“tzaisBaalHatanya”,
“tzais50”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meanwhile, Sunset ([zman_sunset]), earlyshkia ([zman_earlyshkia]), and lateshkia ([zman_lateshkia]) don’t require any additional considerations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Early and Late?
&lt;/h2&gt;

&lt;p&gt;It’s not uncommon to want to set a time – for afternoon prayers, as an example – to be x minutes before sunset. The problem is that this time moves throughout the week – as much as a minute or even 2 per day!&lt;/p&gt;

&lt;p&gt;To make things more complicated, part of the year the earliest time will be on (or closer to Sunday; at a different time of the year it will be on (or closer to) Thursday.&lt;/p&gt;

&lt;p&gt;Shuls end up in a situation where they either have different times through the week (which is both confusing to the congregation and leads to many showing up late), OR they hedge their bets and set a time that’s leisurely at the start of the week but becomes faster and faster as the time for sunset gets shorter.&lt;/p&gt;

&lt;p&gt;To alleviate this, I created two shortcodes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  earlyshkia ([zman_earlyshkia]) will look at all the sunset times from Sunday through Thursday, and return the earliest one.&lt;/li&gt;
&lt;li&gt;  lateshkia ([zman_lateshkia]) will, as the name implies, look at all the sunset times from Sunday through Thursday and return the latest one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on your synagogue’s needs, you might need one or the other. And it’s important to note that both shortcodes also use the&amp;nbsp;&lt;code&gt;offset=&lt;/code&gt;&amp;nbsp;option. This allows you to set a service time that’s a set number of minutes before (or after) the earliest (or latest) sunset of the week.&lt;/p&gt;

&lt;p&gt;As I said in the last post, I know that this can feel like a lot. Use the codes that make sense, with the options that you need. If you have questions, you know where to find me.&lt;/p&gt;

&lt;p&gt;Until next time!&lt;/p&gt;

</description>
      <category>plugin</category>
      <category>softwaredevelopment</category>
      <category>webdev</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Zmanin-WP: Common Codes, part 2</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 12 Oct 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/zmanin-wp-common-codes-part-2-2ilf</link>
      <guid>https://dev.to/leonadato/zmanin-wp-common-codes-part-2-2ilf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe2hcsm0hxj4yujl4s93s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe2hcsm0hxj4yujl4s93s.png" alt="alarm clock with hebrew letters on the face" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve been following this blog, you’ll know that I’ve been working on my&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/" rel="noopener noreferrer"&gt;Zmanim-WP plugin for WordPress&lt;/a&gt;&amp;nbsp;for a while now.&amp;nbsp;&lt;a href="https://adatosystems.com/category/zmanim/" rel="noopener noreferrer"&gt;This blog series&lt;/a&gt;&amp;nbsp;is designed to help you dig deeper into the plugin and understand what it does, how it works, and whether it’s right for your needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  “Sunny Afternoon” – The Kinks
&lt;/h2&gt;

&lt;p&gt;The&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/12/zmanin-wp-common-codes-part-1/" rel="noopener noreferrer"&gt;last post&lt;/a&gt;&amp;nbsp;covered the zmanim for the morning hours so, logically, this one is going to focus on halachic times for the afternoon. As a reminder, the focus of this series of blogs is HOW to use each shortcode. I’m open to digging into the WHAT (and even the WHY) if you want. Let me know in the comments. For today, we’ll be looking at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Chatzot ([zman_chatzot]) – Solar noon, the point halfway through the available sunlight for that day.&lt;/li&gt;
&lt;li&gt;  Mincha Gedolah ([zman_gedola]) – The earliest time to pray Mincha (afternoon) prayers. This comes a half hour after mid-day (chatzot). But of course, “a half hour” is somewhat complicated.&lt;/li&gt;
&lt;li&gt;  Mincha Ketana ([zman_ketana]) – Some hold it’s better to wait further into the day for afternoon prayers. Mincha ketana happens at the last 2 1/2 hours before sunset.&lt;/li&gt;
&lt;li&gt;  Plag haMincha ([zman_plag]) – This time occurs halfway between Mincha Ketana and sunset and is yet another time some hold as preferable for afternoon prayers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As with the shortcodes in&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/12/zmanin-wp-common-codes-part-1/" rel="noopener noreferrer"&gt;part 1&lt;/a&gt;, they can be used as-is, or with the options I described in&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/05/zmanim-wp-getting-started/" rel="noopener noreferrer"&gt;the first post of the series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  [zman_chatzot date="saturday"]&lt;/li&gt;
&lt;li&gt;  [zman_gedola date="saturday" dateformat="g:i:s a"]&lt;/li&gt;
&lt;li&gt;  [zman_ketana offset=-20]&lt;/li&gt;
&lt;li&gt;  [zman_plag dateformat="g:i a"]&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Matter of Opinion
&lt;/h2&gt;

&lt;p&gt;Each of these shortcodes requires you to select a shita – a rabbinic opinion – for its calculation. I plan to elaborate on each of these items in another series, but some details can be found on the&amp;nbsp;&lt;a href="https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getAlos60()" rel="noopener noreferrer"&gt;KosherJava documentation site: https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getAlos60()&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the shitot for the shortcodes we’re looking at in this post:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Chatzot

&lt;ul&gt;
&lt;li&gt;  chatzosAsHalfDay&lt;/li&gt;
&lt;li&gt;  fixedLocalChatzos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Mincha Gedolah

&lt;ul&gt;
&lt;li&gt;  minchaGedola&lt;/li&gt;
&lt;li&gt;  minchaGedola30Minutes&lt;/li&gt;
&lt;li&gt;  minchaGedola72Minutes&lt;/li&gt;
&lt;li&gt;  minchaGedola16Point1Degrees&lt;/li&gt;
&lt;li&gt;  minchaGedolaAhavatShalom&lt;/li&gt;
&lt;li&gt;  minchaGedolaGreaterThan30&lt;/li&gt;
&lt;li&gt;  minchaGedolaAteretTorah&lt;/li&gt;
&lt;li&gt;  minchaGedolaBaalHatanya&lt;/li&gt;
&lt;li&gt;  minchaGedolaBaalHatanyaGreaterThan30&lt;/li&gt;
&lt;li&gt;  minchaGedolaGRAFixedLocalChatzos30Minutes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Mincha Ketana

&lt;ul&gt;
&lt;li&gt;  minchaKetana&lt;/li&gt;
&lt;li&gt;  minchaKetana16Point1Degrees&lt;/li&gt;
&lt;li&gt;  minchaKetanaAhavatShalom&lt;/li&gt;
&lt;li&gt;  minchaKetana72Minutes&lt;/li&gt;
&lt;li&gt;  minchaKetanaAteretTorah&lt;/li&gt;
&lt;li&gt;  minchaKetanaBaalHatanya&lt;/li&gt;
&lt;li&gt;  minchaKetanaGRAFixedLocalChatzosToSunset&lt;/li&gt;
&lt;li&gt;  samuchLeMinchaKetanaGRA&lt;/li&gt;
&lt;li&gt;  samuchLeMinchaKetana16Point1Degrees&lt;/li&gt;
&lt;li&gt;  samuchLeMinchaKetana72Minutes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Plag haMincha

&lt;ul&gt;
&lt;li&gt;  plagHamincha&lt;/li&gt;
&lt;li&gt;  plagHamincha120MinutesZmanis&lt;/li&gt;
&lt;li&gt;  plagHamincha120Minutes&lt;/li&gt;
&lt;li&gt;  plagHamincha60Minutes&lt;/li&gt;
&lt;li&gt;  plagHamincha72Minutes&lt;/li&gt;
&lt;li&gt;  plagHamincha90Minutes&lt;/li&gt;
&lt;li&gt;  plagHamincha96Minutes&lt;/li&gt;
&lt;li&gt;  plagHamincha96MinutesZmanis&lt;/li&gt;
&lt;li&gt;  plagHamincha90MinutesZmanis&lt;/li&gt;
&lt;li&gt;  plagHamincha72MinutesZmanis&lt;/li&gt;
&lt;li&gt;  plagHamincha16Point1Degrees&lt;/li&gt;
&lt;li&gt;  plagHamincha19Point8Degrees&lt;/li&gt;
&lt;li&gt;  plagHamincha26Degrees&lt;/li&gt;
&lt;li&gt;  plagHamincha18Degrees&lt;/li&gt;
&lt;li&gt;  plagAlosToSunset&lt;/li&gt;
&lt;li&gt;  plagAlos16Point1ToTzaisGeonim7Point083Degrees&lt;/li&gt;
&lt;li&gt;  plagAhavatShalom&lt;/li&gt;
&lt;li&gt;  plagHaminchaAteretTorah&lt;/li&gt;
&lt;li&gt;  plagHaminchaBaalHatanya&lt;/li&gt;
&lt;li&gt;  plagHaminchaGRAFixedLocalChatzosToSunset&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know that this can feel like a lot. A good rule to go by is that, if you don’t have a reason to choose otherwise, selecting the default won’t get you into too much trouble.&lt;/p&gt;

&lt;p&gt;Until next time!&lt;/p&gt;

</description>
      <category>php</category>
      <category>plugin</category>
      <category>software</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Zmanin-WP: Common Codes, part 1</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 05 Oct 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/-zmanin-wp-common-codes-part-1-2nb4</link>
      <guid>https://dev.to/leonadato/-zmanin-wp-common-codes-part-1-2nb4</guid>
      <description>&lt;p&gt;If you’ve been following this blog, you’ll know that I’ve been working on my&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/" rel="noopener noreferrer"&gt;Zmanim-WP plugin for WordPress&lt;/a&gt;&amp;nbsp;for a while now.&amp;nbsp;&lt;a href="https://adatosystems.com/category/zmanim/" rel="noopener noreferrer"&gt;This blog series&lt;/a&gt;&amp;nbsp;is designed to help you dig deeper into the plugin and understand what it does, how it works, and whether it’s right for your needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  “…And There Was Morning…”
&lt;/h2&gt;

&lt;p&gt;There are a four shortcodes that help calculate times related to the start of the day.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Sunrise&lt;/li&gt;
&lt;li&gt;  Alot hashachar&lt;/li&gt;
&lt;li&gt;  Sof Zman Kria Shema&lt;/li&gt;
&lt;li&gt;  Sof Zman Tefilah&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve discussed some of these times&amp;nbsp;&lt;a href="https://adatosystems.com/2025/04/14/time-data-series-written-in-our-stars/" rel="noopener noreferrer"&gt;in other parts of this series&lt;/a&gt;&amp;nbsp;and I want to keep the focus of these blogs on HOW to use each shortcode. Feel free to let me know in the comments if you want a more explicit tutorial on each of these (and upcoming) times and when they are used.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Sunrise ([zman_sunrise])- this is, as the name implies, the time the sun rises. I covered the shortcode extensively in&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/05/zmanim-wp-getting-started/" rel="noopener noreferrer"&gt;the previous blog post&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  Alot hashachar ([zman_alot]) – before “sunrise” (when the disk of the sun appears over the horizon) is “dawn”. This is a somewhat murky concept, but it basically relates to the time the first light of the sun can be seen coming over the horizon.&lt;/li&gt;
&lt;li&gt;  Sof Zman Kria Shema ([zman_shema]) – the latest time one can say the Shema prayer.&lt;/li&gt;
&lt;li&gt;  Sof Zman Tefilah ([[zman_tefilah]]) – the latest time one can say morning (shacharit) prayers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To these I’m going to add one more: The date itself ([zman_zmandate]).&lt;/p&gt;

&lt;p&gt;Each of those shortcodes can be used as-is, or with the options I described in&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/05/zmanim-wp-getting-started/" rel="noopener noreferrer"&gt;the previous blog post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  [zman_sunrise date="saturday"]&lt;/li&gt;
&lt;li&gt;  [zman_shema date="saturday" dateformat="g:i:s a"]&lt;/li&gt;
&lt;li&gt;  [zman_alot offset=-20]&lt;/li&gt;
&lt;li&gt;  [[zman_tefilah dateformat=”g:i a”]]&lt;/li&gt;
&lt;li&gt;  [zman_zmandate]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But, of course, there’s more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Special Options
&lt;/h2&gt;

&lt;p&gt;In addition to the standard options, there are special options that only apply to certan shortcodes. Today, I’m going to look at just one:&lt;/p&gt;

&lt;h3&gt;
  
  
  lang
&lt;/h3&gt;

&lt;p&gt;This let’s you control whether information displays in English (the default) or Hebrew. It works for the following shortcodes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Rosh Chodesh ([zman_chodesh])&lt;/li&gt;
&lt;li&gt;  the Molad ([zman_molad])&lt;/li&gt;
&lt;li&gt;  the Parsha ([zman_parsha]).&lt;/li&gt;
&lt;li&gt;  Shabbat Mevorchim ([zman_mevorchim])&lt;/li&gt;
&lt;li&gt;  the date ([zman_zmandate])&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the date ([zman_zmandate]) you can also specify “transliterated” (or “translit” or even “trans”) to give an English-ified version of the Hebrew date.&lt;/p&gt;

&lt;p&gt;So, while&amp;nbsp;&lt;code&gt;[[zman_date lang="hebrew"]]&lt;/code&gt;&amp;nbsp;would give you:&lt;br&gt;&lt;br&gt;
י״ד טבת תשפ״ו&lt;/p&gt;

&lt;p&gt;[&lt;code&gt;[zman_date lang="transliterated"]]&lt;/code&gt;&amp;nbsp;would render as:&lt;br&gt;&lt;br&gt;
14 Tevet, 5786&lt;/p&gt;

&lt;h2&gt;
  
  
  A Matter of Opinion
&lt;/h2&gt;

&lt;p&gt;Unlike my&amp;nbsp;&lt;a href="https://adatosystems.com/2026/01/05/zmanim-wp-getting-started/" rel="noopener noreferrer"&gt;last blog on the plugin&lt;/a&gt;, where I dug into the options, in this case the complexity comes from the initial setup:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i0.wp.com/adatosystems.com/wp-content/uploads/2026/01/image.png?ssl=1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftd0461amfyuykhrz9wwk.png" width="640" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the standard time options give you the chance to select the Rabbinic opinion (“shitah”) used for it’s calculations. For example, Alot hashachar could use any one of the following opinions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  alos72&lt;/li&gt;
&lt;li&gt;  alos60&lt;/li&gt;
&lt;li&gt;  alos72Zmanis&lt;/li&gt;
&lt;li&gt;  alos96&lt;/li&gt;
&lt;li&gt;  alos90Zmanis&lt;/li&gt;
&lt;li&gt;  alos96Zmanis&lt;/li&gt;
&lt;li&gt;  alos90&lt;/li&gt;
&lt;li&gt;  alos120&lt;/li&gt;
&lt;li&gt;  alos120Zmanis&lt;/li&gt;
&lt;li&gt;  alos26Degrees&lt;/li&gt;
&lt;li&gt;  alos18Degrees&lt;/li&gt;
&lt;li&gt;  alos19Degrees&lt;/li&gt;
&lt;li&gt;  alos19Point8Degrees&lt;/li&gt;
&lt;li&gt;  alos16Point1Degrees&lt;/li&gt;
&lt;li&gt;  alosBaalHatanya&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What each of these items mean, and what circumstances they should be used in, is the topic for another day (and probably another 5 blog posts). Until then, you can get some details on the&amp;nbsp;&lt;a href="https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getAlos60()" rel="noopener noreferrer"&gt;KosherJava documentation site: https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getAlos60()&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the shitot for each of the shortcodes we’re covering today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Alot hashachar ([zman_alot])

&lt;ul&gt;
&lt;li&gt;  alos72&lt;/li&gt;
&lt;li&gt;  alos60&lt;/li&gt;
&lt;li&gt;  alos72Zmanis&lt;/li&gt;
&lt;li&gt;  alos96&lt;/li&gt;
&lt;li&gt;  alos90Zmanis&lt;/li&gt;
&lt;li&gt;  alos96Zmanis&lt;/li&gt;
&lt;li&gt;  alos90&lt;/li&gt;
&lt;li&gt;  alos120&lt;/li&gt;
&lt;li&gt;  alos120Zmanis&lt;/li&gt;
&lt;li&gt;  alos26Degrees&lt;/li&gt;
&lt;li&gt;  alos18Degrees&lt;/li&gt;
&lt;li&gt;  alos19Degrees&lt;/li&gt;
&lt;li&gt;  alos19Point8Degrees&lt;/li&gt;
&lt;li&gt;  alos16Point1Degrees&lt;/li&gt;
&lt;li&gt;  alosBaalHatanya&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Sof Zman Kria Shema ([zman_shema])
“sofZmanShmaMGA

&lt;ul&gt;
&lt;li&gt;  sofZmanShmaGra&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA19Point8Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA16Point1Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA18Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA72Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA72MinutesZmanis&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA90Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA90MinutesZmanis&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA96Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA96MinutesZmanis&lt;/li&gt;
&lt;li&gt;  sofZmanShma3HoursBeforeChatzos&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA120Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanShmaAlos16Point1ToSunset&lt;/li&gt;
&lt;li&gt;  sofZmanShmaAlos16Point1ToTzaisGeonim7Point083Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanShmaKolEliyahu&lt;/li&gt;
&lt;li&gt;  sofZmanShmaAteretTorah&lt;/li&gt;
&lt;li&gt;  sofZmanShmaFixedLocal&lt;/li&gt;
&lt;li&gt;  sofZmanShmaBaalHatanya&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA18DegreesToFixedLocalChatzos&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA16Point1DegreesToFixedLocalChatzos&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA90MinutesToFixedLocalChatzos&lt;/li&gt;
&lt;li&gt;  sofZmanShmaMGA72MinutesToFixedLocalChatzos&lt;/li&gt;
&lt;li&gt;  sofZmanShmaGRASunriseToFixedLocalChatzos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Sof Zman Tefilah ([[zman_tefilah]])

&lt;ul&gt;
&lt;li&gt;  sofZmanTfilaMGA&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaGra&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA19Point8Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA16Point1Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA18Degrees&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA72Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA72MinutesZmanis&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA90Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA90MinutesZmanis&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA96Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA96MinutesZmanis&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaMGA120Minutes&lt;/li&gt;
&lt;li&gt;  sofZmanTfila2HoursBeforeChatzos&lt;/li&gt;
&lt;li&gt;  sofZmanTfilahAteretTorah&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaFixedLocal&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaBaalHatanya&lt;/li&gt;
&lt;li&gt;  sofZmanTfilaGRASunriseToFixedLocalChatzos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My goal here is not to overwhelm you. Rather, I want to emphasize that, for each of the different shortcodes, you should look over, consider, and select the opinion that best fits your needs.&lt;/p&gt;

&lt;p&gt;Until next time!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Zmanim-WP: Getting Started</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/zmanim-wp-getting-started-1cmm</link>
      <guid>https://dev.to/leonadato/zmanim-wp-getting-started-1cmm</guid>
      <description>&lt;p&gt;If you’ve been following this blog, you’ll know that I’ve been working on my&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/" rel="noopener noreferrer"&gt;Zmanim-WP plugin for WordPress&lt;/a&gt;&amp;nbsp;for a while now.&lt;/p&gt;

&lt;p&gt;If you haven’t, you can check out everything written so far using&amp;nbsp;&lt;a href="https://adatosystems.com/category/zmanim/" rel="noopener noreferrer"&gt;this link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And, while the&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/#description" rel="noopener noreferrer"&gt;docs&lt;/a&gt;&amp;nbsp;will give you a high level overview, I realized that some folks might want a more detailed set of instructions. That’s what this blog series is going to be about – showing off each aspect or feature of the plugin with details on how to use it.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll just take a look at a couple of the features that are both simple and, at the same time, also allow you to explore a lot of options that are common across the plugin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sunrise, Sunset
&lt;/h2&gt;

&lt;p&gt;More than a&amp;nbsp;&lt;a href="https://www.youtube.com/watch?v=nLLEBAQLZ3Q" rel="noopener noreferrer"&gt;catchy lyric from a popular 1963 Broadway musical&lt;/a&gt;, sunrise and sunset form the basis of almost every other time calculation. So it makes sense to start with those two commands. The most basic usage is the shortcode itself:&lt;/p&gt;

&lt;p&gt;‘[zman_sunrise]‘&lt;br&gt;&lt;br&gt;
or&lt;br&gt;&lt;br&gt;
‘[zman_sunset]‘&lt;/p&gt;

&lt;p&gt;When added to a page, post, widget, newsletter, (etc), this will display the time of those events on the date it is viewed for the location you indicated on the main options page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i0.wp.com/adatosystems.com/wp-content/uploads/2026/01/sunrise-sunset-usage.png?ssl=1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j3m9wx7shceh8itfjfe.png" width="471" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Location, Location, Location
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;…this will display the time of those events on the date it is viewed for the location you indicated on the main options page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let’s break down some of the parts of that sentence:&lt;/p&gt;

&lt;h3&gt;
  
  
  “on the date it is viewed”
&lt;/h3&gt;

&lt;p&gt;The Zmanim-WP plugin works in realtime. If you put ‘[zman_sunrise]‘ on a WordPress page and look at that page on a Monday, you’ll get sunrise for Monday. If you go back and look at it on Tuesday, you’ll get sunrise for that Tuesday.&lt;/p&gt;

&lt;p&gt;At least by default. There are ways to be more specific, and we’ll get to that shortly.&lt;/p&gt;

&lt;h3&gt;
  
  
  “for the location you indicated on the main options page”
&lt;/h3&gt;

&lt;p&gt;Before the Zmanim-WP plugin will work at all, you have to fill out the fields on the Main Options page. These include your location (the latitude and longitude) as well as the time zone. There are other options on that page, but for any time calculation to work, you need to these items in place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i0.wp.com/adatosystems.com/wp-content/uploads/2026/01/Screenshot-From-2025-12-31-16-31-35.png?ssl=1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8epmmjxb804b8hc13wpr.png" width="640" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Shortcode Options
&lt;/h2&gt;

&lt;p&gt;In addition to the shortcode itself, Zmanim-WP supports options that let you change everything from the display language to the date shown and beyond.&lt;/p&gt;

&lt;p&gt;The parameters which are available across all (or at least most) Zmanim WP shortcodes are:&lt;/p&gt;

&lt;h3&gt;
  
  
  date
&lt;/h3&gt;

&lt;p&gt;This lets you set a date other than “whatever date it is when I look at it. Valid options include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  today – This shows the zman for the current date (when the page / post is being viewed). Yes, it’s the default action and you don’t actually NEED to include this. But I added it into the program for the sake of completeness.&lt;/li&gt;
&lt;li&gt;  tomorrow: This will show the time for the day after the current date.&lt;/li&gt;
&lt;li&gt;  sunday, monday, tuesday, etc: This will give the time for the next upcoming weekday of that name. So if it’s Tuesday and you used&amp;nbsp;&lt;code&gt;[6:03 am&lt;/code&gt;]&amp;nbsp;then you’ll get sunrise for the NEXT Monday, not the one that just passed.&lt;/li&gt;
&lt;li&gt;  (an actual date): Any reasonable date format (2023-01-20, Jan 20, 2023, 1/20/23, etc.) will show the time for that specific date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&amp;nbsp;&lt;code&gt;[6:00 am&lt;/code&gt;]&lt;br&gt;&lt;br&gt;
Example:&amp;nbsp;&lt;code&gt;[7:47 am&lt;/code&gt;]&lt;/p&gt;

&lt;h3&gt;
  
  
  offset
&lt;/h3&gt;

&lt;p&gt;This lets you get a time plus or minus the number of minutes (including fractions – i.e. 10.5) you specify. This can be useful if, for example, weekday Mincha starts at 20 minutes before sunset each day.&lt;/p&gt;

&lt;p&gt;Example: [zman_sunset offset=-10]&lt;br&gt;&lt;br&gt;
Example: [zman_sunset offset=20]&lt;br&gt;&lt;br&gt;
Example: [zman_sunset offset=+20]&lt;/p&gt;

&lt;h3&gt;
  
  
  dateformat
&lt;/h3&gt;

&lt;p&gt;Sometimes you want the date to show DAY mm/dd (i.e. “Mon 3/15”). Sometimes you want it to show as yyyy-dd-mm (i.e. “2025-03-15”). Or you want the time to show as hh:mm:ss am/pm (i.e. “09:15:22 am”). The “dateformat” option lets you specify what the output should look like, using the standard PHP date/time formatting codes. Use this link to see all your options:&amp;nbsp;&lt;a href="https://www.php.net/manual/en/datetime.format.php" rel="noopener noreferrer"&gt;https://www.php.net/manual/en/datetime.format.php&lt;/a&gt;&amp;nbsp;and this tutorial for more information:&amp;nbsp;&lt;a href="https://www.tutorialrepublic.com/php-tutorial/php-date-and-time.php" rel="noopener noreferrer"&gt;https://www.tutorialrepublic.com/php-tutorial/php-date-and-time.php&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Example: [zman_sunrise dateformat="m/d/Y h:i:s a"]&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it all together
&lt;/h2&gt;

&lt;p&gt;When used in combination, these options allow a significant level of control.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  [zman_sunset date="friday"] – gives sunset for the upcoming Friday&lt;/li&gt;
&lt;li&gt;  [zman_sunset offset=+45 date="saturday"] This will give the time that is 45 minutes after sunset on the upcoming Saturday&lt;/li&gt;
&lt;li&gt;  [zman_sunset offset=+72 dateformat="m/d/Y h:i:s a"] this would give the time 72 minutes after sunset, in the format of month/day/year hour:minute:second am/pm.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  We’ve only just started getting started
&lt;/h2&gt;

&lt;p&gt;Sunrise and Sunset are only the first two of a long list of shortcodes available in the&amp;nbsp;&lt;a href="https://wordpress.org/plugins/zmanim-wp/" rel="noopener noreferrer"&gt;Zmanim-WP plugin for WordPress&lt;/a&gt;. I’m going to continue to explore them in the coming weeks.&lt;/p&gt;

&lt;p&gt;If you have questions about the plugin or anything I’ve shared, feel free to reach out in the comments and ask!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>showdev</category>
      <category>tutorial</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>…And Sometimes the Bear Gets You</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 21 Sep 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/and-sometimes-the-bear-gets-you-3l3o</link>
      <guid>https://dev.to/leonadato/and-sometimes-the-bear-gets-you-3l3o</guid>
      <description>&lt;p&gt;I got scammed.&lt;/p&gt;

&lt;p&gt;This isn’t a story about how “…once upon a time, I got scammed.” It wasn’t a younger, less experienced, more trusting me.&lt;/p&gt;

&lt;p&gt;No. The person who got scammed was the “now-me”. The one who was just a few hours younger than the one who’s writing this blog.&lt;/p&gt;

&lt;p&gt;True to the title of this post, it was one of those moments where impulse control (not enough) and desire (too much) conspired to blind me to multiple moments that should have been big flashing caution signs.&lt;/p&gt;

&lt;p&gt;I’m writing this because sometimes&amp;nbsp;&lt;a href="https://adatosystems.com/2017/02/22/showing-your-scars/" rel="noopener noreferrer"&gt;showing your scars&lt;/a&gt;&amp;nbsp;is the quickest and easiest way to help others avoid making the same mistake. I’m also writing this because it can (and does) happen to every one. When I filed the police report, the office said “I work in this department, and&amp;nbsp;&lt;em&gt;&lt;strong&gt;I’ve&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;gotten scammed.”&lt;/p&gt;

&lt;p&gt;So point #1 of this blog is: If it’s happened to you, I hope this gives you comfort knowing you’re not alone.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;“Get to the point, Leon. What happened?”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’m starting a new job (which is a story for another day) and got a stipend for home-office improvements. I’ve wanted a Sony zv-e10 for&amp;nbsp;&lt;a href="https://adatosystems.com/articles/#videos" rel="noopener noreferrer"&gt;all the video work I’ve been doing&lt;/a&gt;. So last week I started scanning the bargain sites just to see if I could find a deal. One of the sites I checked Craigslist.&lt;/p&gt;

&lt;p&gt;Now before I go further, this isn’t a slam on Craigslist at all. It’s a nice site that has a place in the internet ecosystem that I’ve used to both buy and sell in the past. I’m only mentioning it because it’s NOT the same as eBay or Amazon marketplace or some of the other more sophisticated sites. It’s effectively the local newspaper’s “For Sale/Trade” section. And I’m here to tell you it should ONLY be used when you can meet up IRL. Because as soon as you consider shipping the item, the guardrails are gone and fraud quickly enters the picture.&lt;/p&gt;

&lt;h1&gt;
  
  
  AskMeHowIKnow.
&lt;/h1&gt;

&lt;p&gt;To make a long story short, I found a bargain that was too good to be true; agreed to buy with too little skeptical consideration; and paid too quickly with too few protections. It was only after the money was out of my account and the person on the other side started trying to squeeze me for more cash that I stopped and considered what had happened.&lt;/p&gt;

&lt;p&gt;If I’m being brutally honest, it hurt. I broke out in a cold sweat driven by sheer disbelief. In the moment when it dawned on me that I – a person who’s been terminally online since before “online” was even a thing – had been had, my emotions were no more sophisticated or insightful than a rank novice.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You don’t rise to the occasion, you sink to the level of your training.”&lt;br&gt;&lt;br&gt;
– Archilochus&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While I basically live online; and use sites (including Craigslist) to buy and sell; and know that the risk of scams is ever-present; despite all of that, it became clear that I’d never trained or prepared to ACTUALLY be on the receiving end of one.&lt;/p&gt;

&lt;p&gt;If you ignore or forget everything else in this blog, please remember this point: If you don’t spend time thinking through how a scam would realistically play out in your situation – if you don’t work through your potential actions, re-actions, and contingencies – then you’ll fall to your most basic reactions. Which are, in most cases (and certainly in my case), neither pretty nor particularly sophisticated.&lt;/p&gt;

&lt;p&gt;The thing that I found most insidious and surprising was my own desire make the scam not happen by willfully ignoring that it had happened. I wanted so very much NOT to be the victim of a scam that I let myself continue the conversation long past the point where I should have blocked and moved on. Thankfully I didn’t let that desire drive me to throw good money after bad, but I need to be clear with you that if it wasn’t for a few lucky glitches in the payment system – which slowed me down just enough for reason to overtake shame, I might have let the situation continue in the vain hope that it would somehow turn itself around.&lt;/p&gt;

&lt;p&gt;With the goal of informing folks who haven’t been through this, here are a few of the warning signs I could have (and should have) paid closer attention to.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  I only communicated with this person via text. Once there was an agreement to buy, I should have called to verify the number was answered by a human. When I finally DID call the number, it went to a completely different state than the area code indicated, and nobody answered.&lt;/li&gt;
&lt;li&gt;  When I asked the person to call me (very late in this process, after I was all but certain I was being scammed) the scammer insisted the call wasn’t going through.&lt;/li&gt;
&lt;li&gt;  The scammer sent me screenshots of shipping costs, but I didn’t double-check them from my side. It turns out they were digitally manipulated.&lt;/li&gt;
&lt;li&gt;  To pay, I was given an email that was clearly a randomized hotmail account: &lt;a href="https://dev.to/cdn-cgi/l/email-protection"&gt;[email&amp;nbsp;protected]&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  My initial attempt to pay failed, and resulted in my account being locked until I called the provider. That doesn’t happen by accident, I tripped one of their systems that warned of potential fraud. But again, I&amp;nbsp;&lt;em&gt;really&lt;/em&gt;&amp;nbsp;wanted that camera, so I willfully ignored it.&lt;/li&gt;
&lt;li&gt;  To pay for shipping, I was given a different person, with a different email: &lt;a href="https://dev.to/cdn-cgi/l/email-protection"&gt;[email&amp;nbsp;protected]&lt;/a&gt; – this payment failed completely. So they gave me another email to try: &lt;a href="https://dev.to/cdn-cgi/l/email-protection"&gt;[email&amp;nbsp;protected]&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By this point, I’d gotten over my initial denial and was certain this was a scam. The correct action at this point is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Document everything&lt;/li&gt;
&lt;li&gt;  Contact local law enforcement and file a report.&lt;/li&gt;
&lt;li&gt;  File a report with ReportFraud.ftc.gov&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Filing those reports is going to feel like pouring salt in a wound (at least I know it did for me). It’s also going to feel pointless because the scammers are more than likely NOT within the same jurisdiction. Hell, they’re probably not in the same country. BUT… you never know if there isn’t an active operation in progress, and your information adds data points. So my advice is to breathe through the discomfort and file those reports.&lt;/p&gt;

&lt;p&gt;I’m still mad that this happened to me – that I allowed it to happen and actively participated in it – but I also recognize I was lucky to lose relatively little. While it was an expensive lesson, it’s nevertheless a lesson I won’t forget any time soon. And it’s an experience I’m willing to share in order to help others avoid it.&lt;/p&gt;

&lt;p&gt;Finally, as I (somewhat ruefully) joked with the officer who took my report, this isn’t the largest amount I’ve spent while doing research for a blog. So if nothing else, I got a good story out of it for a bargain price.&lt;/p&gt;

</description>
      <category>crime</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>AI CURMUDGEON: AI is a backhoe</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 14 Sep 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/ai-curmudgeon-ai-is-a-backhoe-1amc</link>
      <guid>https://dev.to/leonadato/ai-curmudgeon-ai-is-a-backhoe-1amc</guid>
      <description>&lt;p&gt;It’s been a couple of years since May 23, 2023, when I&amp;nbsp;&lt;a href="https://adatosystems.com/2023/05/23/what-chatgpt-needs-is-context/" rel="noopener noreferrer"&gt;posted my first rant about AI in general&lt;/a&gt;&amp;nbsp;and ChatGPT (properly pronounced “chat-jippity”) in particular.&lt;/p&gt;

&lt;p&gt;In that blog, I compared AI to a calculator:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In the hands of a novice, a scientific calculator is far more likely to be used to spell out “fart” than it is to find the proof to Fermat’s theorem. (Use hex mode, put in “46415254”. How I know this is a story for a different day.) Like the calculator, the spreadsheet, and the internet, AI-driven LLM tools are likely to change HOW we do our work, but not the fact that humans will still be the ones doing the work in the first place.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today I want to offer another perspective, inspired by a LinkedIn post (you can find it&amp;nbsp;&lt;a href="https://www.linkedin.com/posts/dmangot_i-love-this-sooooo-much-a-long-time-ago-activity-7308140267524526080-fHBC" rel="noopener noreferrer"&gt;here&lt;/a&gt;) by the inimitable&amp;nbsp;&lt;a href="https://www.linkedin.com/in/dmangot/" rel="noopener noreferrer"&gt;Dave Mangot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;He started by referencing someone who experienced the consequences of their poor choices, when it came to “vibe coding” with an AI:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i0.wp.com/adatosystems.com/wp-content/uploads/2025/09/image.png?ssl=1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn9hsoiavdx0k2ox0pjjd.png" width="640" height="763"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then Dave followed up with this story:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A long time ago I started at a new job and everyone was logging to the Unix hosts as “root”. I asked a friend of mine if I was just out of the loop and this was an ok thing now. He replied “You know what we call people that do that? Amateurs”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dave continued with his own observation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Despite what all the AI vendors tell you, it’s not there yet and no one really knows when it will be. I’ve spend the last few days coding with an AI Assistant and it’s great! I love it. Never going back.&lt;/p&gt;

&lt;p&gt;But it also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  wanted to put the DB password in plaintext in the code&lt;/li&gt;
&lt;li&gt;  wanted to hardcode the DB config in the code&lt;/li&gt;
&lt;li&gt;  told me the wrong module name for&amp;nbsp;&lt;code&gt;requirements.txt&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know enough to instruct the Assistant otherwise so it’s fine. &amp;gt;Building a kit car (prototype) you ordered through the post does not mean you are ready to join an F1 team. Maybe someday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So as I pondered all of this, another analogy occurred to me:&lt;/p&gt;

&lt;h2&gt;
  
  
  The shovel vs the backhoe
&lt;/h2&gt;

&lt;p&gt;Both a shovel and a backhoe do the same job – they dig holes. The backhoe is certainly faster and more powerful, but in the hands of a novice a shovel can only cause a relatively small amount of trouble, while a backhoe can cause much bigger headaches (both literally and figuratively).&lt;/p&gt;

&lt;p&gt;While both could, conceivably dig up a rock, or the sprinkler system, or the main internet feed to your business, the backhoe is much more likely to do so before the operator is aware of what’s happening.&lt;/p&gt;

&lt;p&gt;Just to be clear, my point isn’t that automated tools are inherently bad. My point is that, IN THE HANDS OF AN INEXPERIENCED PERSON, an automated tool is much more likely to cause trouble and damage instead of doing good.&lt;/p&gt;

&lt;p&gt;This is due to the fact that the automated tool (whether the construction or computing kind) requires experience and expertise to be effective. It’s a labor-saving device only insofar as the operator understands the labor to be done.&lt;/p&gt;

&lt;p&gt;In the intervening 2 years since my original AI post, I have heard from many colleagues who’ve used AI tools to great effect. But I’ve seen far more randos who think they can hop up in the cab of the shiny AI-driven excavator and dig a foundation in an afternoon, who only end up causing destruction and confusion.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>llm</category>
    </item>
    <item>
      <title>Software migration: Pain vs Risk</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 07 Sep 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/software-migration-pain-vs-risk-2nih</link>
      <guid>https://dev.to/leonadato/software-migration-pain-vs-risk-2nih</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;“And the day came when the risk to remain tight in a bud was more painful than the risk it took to blossom.” – Anais Nin&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Over the course of my career, I’ve experienced my fair share of software upgrades, migrations, and replacements. Some have gone smoothly. Many have not. But none of them could be described as “easy”. The reason none were is is because, to paraphrase a famous sword-swinging Spaniard, “…that word doesn’t mean what you (non-IT people) think it means.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i0.wp.com/adatosystems.com/wp-content/uploads/2025/10/the-princess-bride-inigo-montoya.gif?ssl=1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0j9khs7fv9s2oarxgs6d.gif" alt="Inigoy Montoya, from the movie " width="300" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In tech, and especially on the subject of system migrations, “easy” connotes “without significant unexpected issues”. It rarely – possibly NEVER – means “without effort.”&lt;/p&gt;

&lt;p&gt;Nevertheless, the suggestion to upgrade (or migrate, or replace) is often thrown around by certain folks (usually business leaders and vendor sales) without a trace of understanding of what that truly entails. As a boots-on-the-ground IT practitioner, hearing it used in this way is nothing short of infuriating.&lt;/p&gt;

&lt;p&gt;Upgrades are such a monumental task that teams will go to almost any length to avoid them unless absolutely necessary. “Almost any length?” you ask. &lt;a href="https://www.linkedin.com/posts/informationtechleader_techleadership-itoperations-privateequity-activity-7377371893940707328-syIa" rel="noopener noreferrer"&gt;A recent LinkedIn post&lt;/a&gt;* illustrates just how bad it has to be for a customer to consider migrating:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;* I recognize readers might read this particular post and read into it a certain venting of grievances on my part, as a former SolarWinds employee. I want to be clear (and I spell it out below) that this is not the case because MANY vendors are making changes to pricing, causing MANY customer to feel similarly to the original poster. This post is just the most recent one to have crossed my timeline.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SolarWinds, a major player in the technology infrastructure monitoring space, is attempting to force our company into a three-year deal that represents a 543% price increase from our 2023 costs. To put this in perspective. they’re charging 5.6 times the inflation rate. […] I’m now being asked to pay more to monitor our company’s infrastructure than I pay to support that infrastructure itself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If there is a lesson in this that avoids both showcasing the pain of others (in this case, Mr. DeMersseman) or pointing fingers at any specific vendor (because SolarWinds isn’t the only culprit here by a long shot), it’s that customers – despite the lack of meaningful updates or new capabilities; despite the jacked-up pricing and removal of flexibility; despite almost open hostility from the vendor C-suites – despite all of that and more,&amp;nbsp; &lt;em&gt;&lt;strong&gt;STILL haven’t migrated to another tool.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Why? Why would they do that? Because migrating is HARD. In this blog I want to outline just how much risk there is in “blossoming” (as a reference to the quote at the top of this post, by which I mean “migrating to something new”). So much that customers are willing to tolerate this level of pain to remain “tightly within the bud” of the current monitoring solution. I want to outline exactly what you* are asking of your team, when you are being courted by a new software vendor who is promising they can do everything the incumbent solution does (and more, and better) if only you’d switch to their solution. Making matters worse, you* are probably laboring under the belief that “we have too many tools already” (which is, to be honest, probably not entirely wrong.) and so you’ll only consider “…putting a brick in if we can also take a brick (or 2, or 3) out.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;* I’m assuming that YOU, dear reader, are part of the decision makers who buy the software. If you’re not, then I’m writing this to be shared with said decision makers. You’re welcome.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let’s break down exactly what a software migration looks like – at least in my experience and in my not-so-humble opinion.&lt;/p&gt;

&lt;p&gt;First, let’s be clear: I’m talking about the experience of an boots-on-the-ground IT practitioner who has found a tool that does something both important and essential. So much so that they’re willing to attempt the “business justification two-step”.&lt;/p&gt;

&lt;p&gt;Imagine being that regular IT pro walking into a room of executives asking questions like the ones Keith Townsend (&lt;a href="https://thectoadvisor.com/" rel="noopener noreferrer"&gt;CTO Advisor&lt;/a&gt;) describes in&amp;nbsp;&lt;a href="https://www.linkedin.com/posts/kltownsend_inside-a-tpyical-the-buyer-room-you-activity-7346242100516016131-u4qB/" rel="noopener noreferrer"&gt;this LinkedIn post&lt;/a&gt;. &lt;strong&gt;It’s not fun&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tech people hate (and therefore usually suck at) speaking in terms of the business, so these types of meetings usually devolve into the IT person passionately citing technical stats until the executive shuts them down or caves. For the sake of argument, let’s pretend they cave (spoiler: they never do).&lt;/p&gt;

&lt;p&gt;I’ll also remind readers that “I’m adopting a new tool” isn’t seen by most managers as a hall pass to get out of doing your regular job (which is typically 3-jobs-in-a-trench-coat that consumes 50+ hours a week).&lt;/p&gt;

&lt;p&gt;The ADDITIONAL work on top of the normal work includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Creating the forms for a largely un-necessary RFP.&lt;/li&gt;
&lt;li&gt;  Working with companies who don’t have a free tier to get a free trial going without making it sound like buying is a sure thing.&lt;/li&gt;
&lt;li&gt;  Apologizing to the CFO when an over-enthusiastic salesperson skips 2 or 3 levels and calls them directly to see if they can “push” the sale through.

&lt;ul&gt;
&lt;li&gt;  Yes, that happens. 2 different monitoring solution vendors have done it to me.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Begging for cash and scrounging spare parts to build a lab because nobody will (justifiably) let you test in production.&lt;/li&gt;
&lt;li&gt;  Setting up the lab yourself. Even the people who would benefit from the new tool usually can’t help because – SURPRISE – they are doing 3-jobs-in-a-trenchcoat too.&lt;/li&gt;
&lt;li&gt;  Doing the RFP – installing and configuring software for at least 3 companies plus the incumbent and doing detailed comparisons in an attempt to get an apples-to-apples understanding.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But, ok, that’s ANY migration. So let’s wave our magic wand again say we get past the WEEKS (if not months) of effort. AND we’ll wave our wands yet again to ignore the weeks of back and forth with purchasing, who won’t understand what the tool does and nor they think the company needs it because it’s “just another piece of software.”&lt;/p&gt;

&lt;p&gt;Congratulations! You’re magically past those ulcer-inducing stages. NOW you – the beleaguered IT person – are on the hook to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Inventory all the systems that will be part of the pilot program.&lt;/li&gt;
&lt;li&gt;  Set up a QA environment for the new software, against the QA environment of the new application.&lt;/li&gt;
&lt;li&gt;  Explain to the vendor that you actually need TWO copies of the software, not one, and no you don’t have budget to pay for it twice, you need a free copy because it’s just QA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once again, we’ll pretend the vendor just say “duhhhh okay!” (spoiler: they rarely say that). Next on the list is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Install and configure the new vendor’s software.&lt;/li&gt;
&lt;li&gt;  Add the QA environment systems into the environment.&lt;/li&gt;
&lt;li&gt;  Manage and monitor the test, showing results to the application owners to prove your new software won’t destroy their app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you’ve passed those items, the work is not done. You now have to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Set up the new vendor’s software in the production system.&lt;/li&gt;
&lt;li&gt;  Add (not migrate) the application(s) to the new system.&lt;/li&gt;
&lt;li&gt;  Run the new system in parallel with the old one for a number of weeks, reporting comparative results to everyone up to the CFO’s&amp;nbsp;&lt;a href="https://www.youtube.com/watch?v=riqXhieWU3M" rel="noopener noreferrer"&gt;father’s, brother’s, nephew’s, cousin’s, former roommate&lt;/a&gt;&amp;nbsp;about how it’s going.&lt;/li&gt;
&lt;li&gt;  After that period, you can start to turn off (not delete, just turn off) the old vendor’s software. Note that your company is still PAYING for the old software, so exactly ZERO savings have been achieved. Try explaining THAT to the CFO.&lt;/li&gt;
&lt;li&gt;  During all of this, you are also responsible for re-creating all of the tests, alerts, reports, and dashboards in the old system that people now “&lt;em&gt;&lt;strong&gt;desperately need&lt;/strong&gt;&lt;/em&gt;” (even though they haven’t touched them in 2 years.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scroll back and review all those bullets one more time. Ask yourself what it would take to make you want to do that &lt;strong&gt;&lt;em&gt;on top of your existing work&lt;/em&gt;&lt;/strong&gt;. Most IT folks&amp;nbsp;go through that kind of experience ONCE, often because they don’t realize what they’re in for. After that, most learn their lesson and stop asking about (or for) new tools because very little would be worth all (or any) of that.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“But Leon, companies DO aquire new tools. All the time. How do you explain THAT?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Final spoiler: We wait for something to explode. We wait for a system we know is unstable to experience a surface-of-the-sun hot nuclear melt down. Because at that point, all the hurdles and bullshit clear away. The executives who were so picky before are now screaming bloody murder. They’ll do ANYTHING, agree to ANYTHING, to make sure that EXACT PRECISE problem never happens again,&lt;/p&gt;

&lt;p&gt;Then and only then can a tool be adopted quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm7dqg651pq6ovuojrcut.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm7dqg651pq6ovuojrcut.gif" alt="motherly woman sternly saying " width="500" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is why we can’t have nice things. Or at least, this is why IT folks don’t jump up and down with joy when you suggest they migrate to a new monitoring tool, despite their frustration with the current one.&lt;/p&gt;

&lt;p&gt;So don’t be surprised when they don’t.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>software</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Cribl: Telemetry Gatherers</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 31 Aug 2026 17:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/cribl-telemetry-gatherers-1lgf</link>
      <guid>https://dev.to/leonadato/cribl-telemetry-gatherers-1lgf</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;(CriblCon is a month away, so I wanted to share a post - NOT about Cribl, or telemetry, or tech - but rather about the ways we IT folks sometimes find to combine whimsy and IT)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F2rgSob6GAar09yAGiyTeyR%252F4a54b0220af89e06821bb8ebf705f96b%252Fbf704431-62bc-49be-b239-39472fb80ee2.png%26w%3D3840%26q%3D75" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F2rgSob6GAar09yAGiyTeyR%252F4a54b0220af89e06821bb8ebf705f96b%252Fbf704431-62bc-49be-b239-39472fb80ee2.png%26w%3D3840%26q%3D75" alt="Cribl: Telemetry Gatherers - img 1" width="1503" height="743"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honestly, it started off as a silly, wild-assed idea.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;"Wouldn't it be funny if we made some Magic the Gathering cards that use Cribl products as spells, and maybe some of the problems our users have as monsters! We could give them out for a laugh in the booth. “&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem - if you can really call it a problem - is that everyone at Cribl is really proud of our geeky heritage, and that includes MTG. We couldn't just joke about that idea. We had to jump in with both feet, burning our evening hours creating an ENTIRE FSCKING PLAY-ABLE SET. With boosters. And specialty cards. And counters. And… stuff.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;From that initial silly wild-ass idea, things just snowballed. We quickly realized Cribl products (and not JUST products - other aspects of the Cribl solution) weren't spells. They were artifacts! Lands! Enchantments! We had to come up with mechanics for pipelines and replay. And we needed to create artwork for the cards.&lt;/p&gt;

&lt;p&gt;SO. MUCH. ARTWORK.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F5hXrT4M9FYpDQQ6bZIhr8z%252F8d48b81238e90a448f6ccc26bc3a86b8%252Fimage1.png%26w%3D640%26q%3D75" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F5hXrT4M9FYpDQQ6bZIhr8z%252F8d48b81238e90a448f6ccc26bc3a86b8%252Fimage1.png%26w%3D640%26q%3D75" alt="Cribl: Telemetry Gatherers - card 1" width="250" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To speed things up, Justin des Lauriers (once of our engineers, of course) created a whole-ass Gemini "gem" that would streamline creating card mechanics from a simple prompt.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;And of course, once we had them, we had to playtest them. A lot. In multiple sessions that ran long into the night. Because we care. About authenticity. About game balance. But mostly, we care about maintaining the highest level of geek credibility we can have, and if it means forgoing sleep or proper hygiene, so be it!&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;We had a metric crap-tonne (that is a very technical measurement, by the way) of fun.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252FJORZkxzlVvNzpyGChzidz%252F595679759c37e477d6eb7c041d32fd65%252F8aea72f2-556f-4c30-8f09-f5d5fe3ba769.png%26w%3D3840%26q%3D75" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252FJORZkxzlVvNzpyGChzidz%252F595679759c37e477d6eb7c041d32fd65%252F8aea72f2-556f-4c30-8f09-f5d5fe3ba769.png%26w%3D3840%26q%3D75" alt="Cribl: Telemetry Gatherers - img 2" width="1503" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But as we played, we realized these cards could also teach people how Cribl did.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;It might not be as good as Cribl University (OK, it definitely isn’t. Check them out at &lt;a href="https://cribl.io/university/" rel="noopener noreferrer"&gt;https://cribl.io/university/&lt;/a&gt;) but if you want to get some concepts in your bones in a fun and off-beat way, you could do a lot worse.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F7waLSAEmvkMUWZKMg96qbV%252Fb97c80416dddcb0c25aed70c7d187a8f%252Fimage8.png%26w%3D640%26q%3D75" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F7waLSAEmvkMUWZKMg96qbV%252Fb97c80416dddcb0c25aed70c7d187a8f%252Fimage8.png%26w%3D640%26q%3D75" alt="Cribl: Telemetry Gatherers - card 2" width="250" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This should come as no surprise to anyone who has taught professionally (massive props to all the teachers out there!). It’s been clear for a long time that we all - adults as well as kids - learn better and retain information longer when it’s presented and experienced as a form of “play”. We sing the ABC song to memorize the alphabet. We have blocks, legos, and erector sets to learn spacial skills. We play dodgeball to learn to avoid flying wrenches.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;And now we can tell our loved ones that we have to play Magic the Gathering in order to build our skills in Cribl and uplevel our career. Which will earn us a raise. With which we can buy more MTG cards. It’s the circle of life, but for nerds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F3xShDF44HKfv2T12nPl2wk%252F4c83c21b273189771a06b24a37632f3c%252FUntitled_design__1_.png%26w%3D3840%26q%3D75" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcribl.io%2F_next%2Fimage%2F%3Furl%3Dhttps%253A%252F%252Fimages.ctfassets.net%252Fxnqwd8kotbaj%252F3xShDF44HKfv2T12nPl2wk%252F4c83c21b273189771a06b24a37632f3c%252FUntitled_design__1_.png%26w%3D3840%26q%3D75" alt="Cribl: Telemetry Gatherers - img 3" width="1200" height="911"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My point in all of this is two fold:&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You absolutely positively need Cribl’s Magic the Gathering card additions in your deck.&amp;nbsp;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having these cards indisputably proves your credibility as an IT practitioner, a Cribl expert, and a geek.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where can you find them?
&lt;/h2&gt;

&lt;p&gt;We’ll be handing them out &lt;a href="https://cribl.io/events/" rel="noopener noreferrer"&gt;at conferences&lt;/a&gt;, &lt;a href="https://info.cribl.io/RM-FEV-FY27-CriblConnect_LP-Registration/" rel="noopener noreferrer"&gt;CriblConnects&lt;/a&gt;, and of course &lt;a href="https://criblcon.cribl.io/" rel="noopener noreferrer"&gt;CRIBLCONNNNNNNN&lt;/a&gt;! We will be looking for even more ways to share the MTG joy with the world in upcoming weeks and months.&lt;/p&gt;

</description>
      <category>magicthegathering</category>
      <category>conferences</category>
      <category>fun</category>
    </item>
    <item>
      <title>Monitoring versu… I mean AND Observability</title>
      <dc:creator>Leon Adato</dc:creator>
      <pubDate>Mon, 31 Aug 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/leonadato/monitoring-versu-i-mean-and-observability-1831</link>
      <guid>https://dev.to/leonadato/monitoring-versu-i-mean-and-observability-1831</guid>
      <description>&lt;p&gt;Chapter 3 of the&amp;nbsp;&lt;a href="https://www.oreilly.com/" rel="noopener noreferrer"&gt;O’Reilly&lt;/a&gt;&amp;nbsp;book I’m co-authoring with&amp;nbsp;&lt;a href="https://kentik.com/" rel="noopener noreferrer"&gt;Kentik&lt;/a&gt;&amp;nbsp;CEO&amp;nbsp;&lt;a href="https://www.linkedin.com/in/avifreedman/" rel="noopener noreferrer"&gt;Avi Freedman&lt;/a&gt;&amp;nbsp;is out today (you can download it here: &lt;a href="https://www.kentik.com/go/ebook/oreilly-guide-to-modern-networking-telemetry/" rel="noopener noreferrer"&gt;https://www.kentik.com/go/ebook/oreilly-guide-to-modern-networking-telemetry/&lt;/a&gt; and I wanted to share a bit that didn’t make it through the editing process, because even with the eBook edition, space (and reader attention) isn’t infinite.&lt;/p&gt;

&lt;p&gt;Nevertheless, I thought the longer version was worth a look, for some of the points it made.&lt;/p&gt;

&lt;p&gt;In the book, we wrote:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In blog articles you’ll see the phrase “reason about”, as in “its more data than one person can reason about”, which is a fancy way of saying “keep it all in your head enough to be able to find patterns”. I mention this because one differentiations between “observability” from “monitoring” is not just the sheer volume of data, but also the disparity of that day that makes it difficult, if not impossible, to reason about it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But here’s the longer version that we had to cut down:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In order to really appreciate how Machine Learning (ML) and AI can improve observability, it’s necessary to (briefly) differentiate between it (meaning: “observability”) and “monitoring”.&lt;/p&gt;

&lt;p&gt;Monitoring is mostly concerned with “known unknowns”, by which I mean the things we know COULD potentially fail, but we don’t know WHEN. It’s comparatively trivial to understand what data needs to be collected, reported, and alerted on because we know where to look. Monitoring isn’t concerned with how unique the data is (i.e. “cardinality”) – whether we’re talking about an individual data point or a collection/grouping/slice of that data. And because of the two previous points (known unknowns and cardinality), correlation is usually manual – meaning humans who understand the combination of elements that indicate something is wrong are needed to craft the trigger for an alert or other action.&lt;/p&gt;

&lt;p&gt;Observability, on the other hand, is more biased toward “unknown unknowns” – we don’t know what could go wrong and we also have no idea when that failure might occur. That ties into observability’s focus on “high cardinality” data – when specific data points or various permutations have never (or rarely) been observed. To achieve this, massive amounts of data need to be collected, normalized, parsed, and pivoted to find those unique combinations. And because of those two things (unknown unknowns and cardinality), correlation cannot be trusted to a human. There is simply too much data, and too many possible combinations of that data, to “reason about” it (to use phrase popularized by Charity Majors and Liz Fong-Jones).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a comparison I make often when I’m giving conference talks – NOT because I think I have the One True Definition (far from it) but rather because I want folks to have the proper context.&lt;/p&gt;

&lt;p&gt;One additional point I make on both sides is “signals” – the data elements used to determine if the object of monitoring is healthy or not.&lt;/p&gt;

&lt;p&gt;In “traditional” monitoring, signals are domain-specific. The data points that tell you a network device is not performing well are measurably different from those that indicate a database is unhappy. Or a block of code. Or even a wifi environment.&lt;/p&gt;

&lt;p&gt;Meanwhile the philosophy of observability tries to standardize on the&amp;nbsp;&lt;a href="https://sre.google/sre-book/monitoring-distributed-systems/#xref_monitoring_golden-signals" rel="noopener noreferrer"&gt;“Four Golden Signals”&lt;/a&gt;&amp;nbsp;as established in the&amp;nbsp;&lt;a href="https://sre.google/sre-book/introduction/" rel="noopener noreferrer"&gt;SRE Handbook&lt;/a&gt;&amp;nbsp;– namely Latency, Traffice, Errors, and Saturation.&lt;/p&gt;

&lt;p&gt;To be clear: the title of this blog is a misnomer. It’s not (and never was) “versus”. Monitoring and Observability should be seen as a BOTH-AND rather than EITHER-OR proposition.&lt;/p&gt;

&lt;p&gt;With all that said, here’s a screenshot of the slide I use in my presentations, which lays it out (without the talk track). I hope you find it useful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i0.wp.com/adatosystems.com/wp-content/uploads/2025/09/Screenshot-From-2025-09-29-12-46-46.png?ssl=1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffefx23yubv6yu0qmndos.png" width="640" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>infrastructure</category>
      <category>monitoring</category>
      <category>sre</category>
    </item>
  </channel>
</rss>
