<?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: Jan S.</title>
    <description>The latest articles on DEV Community by Jan S. (@jan_inteldo).</description>
    <link>https://dev.to/jan_inteldo</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%2F4041434%2Ffd621cf6-5b67-484b-873e-b73b7b140562.png</url>
      <title>DEV Community: Jan S.</title>
      <link>https://dev.to/jan_inteldo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jan_inteldo"/>
    <language>en</language>
    <item>
      <title>I Thought Research Was About Finding Answers. I Was Wrong.</title>
      <dc:creator>Jan S.</dc:creator>
      <pubDate>Mon, 31 Aug 2026 15:30:00 +0000</pubDate>
      <link>https://dev.to/jan_inteldo/i-thought-research-was-about-finding-answers-i-was-wrong-4dkh</link>
      <guid>https://dev.to/jan_inteldo/i-thought-research-was-about-finding-answers-i-was-wrong-4dkh</guid>
      <description>&lt;p&gt;I've been working on a product where a surprisingly large part of the work comes down to answering questions. &lt;/p&gt;

&lt;p&gt;At the beginning, I thought the difficult part would be getting the data. Connect the different sources, make sure the numbers are available, figure out how to pull everything together, and then the rest should be relatively straightforward.&lt;/p&gt;

&lt;p&gt;That assumption didn't last very long.&lt;/p&gt;

&lt;p&gt;The more I worked on it, the more I noticed something that felt slightly backwards. Getting an answer wasn't necessarily the end of the research. A lot of the time, getting the answer was what created the next problem.&lt;/p&gt;

&lt;p&gt;And for a while, I thought that meant I wasn't doing the research properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The way I originally thought research worked
&lt;/h2&gt;

&lt;p&gt;My mental model was pretty simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question → Data → Answer → Done&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It makes sense for a lot of basic questions.&lt;/p&gt;

&lt;p&gt;How much revenue did we make?&lt;/p&gt;

&lt;p&gt;How many users signed up?&lt;/p&gt;

&lt;p&gt;Which page gets the most traffic?&lt;/p&gt;

&lt;p&gt;You look something up, get the number, and move on.&lt;/p&gt;

&lt;p&gt;But most of the questions that actually matter aren't really like that. &lt;/p&gt;

&lt;p&gt;Take something simple like this: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why did signups drop this week?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You look at the data and discover that traffic dropped.&lt;/p&gt;

&lt;p&gt;Great. You have an answer.&lt;/p&gt;

&lt;p&gt;Except now you have another questions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why did traffic drop?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You investigate that and find that most of the decline came from organic traffic. &lt;/p&gt;

&lt;p&gt;Okay&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why did organic traffic drop?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe a few pages lost rankings.&lt;/p&gt;

&lt;p&gt;Then you start asking why those pages lost rankings.&lt;/p&gt;

&lt;p&gt;Was there a technical change? Did the content change? Did search demand changes? Did competitors improve? Was there an indexing problem?&lt;/p&gt;

&lt;p&gt;At this point, you've gone several questions away from where you started. &lt;/p&gt;

&lt;p&gt;The strange part is that the original answer wasn't useless. It was actually what helped you get to the better question.&lt;/p&gt;

&lt;h2&gt;
  
  
  I used to think this meant the research was failing
&lt;/h2&gt;

&lt;p&gt;This was probably the biggest mistake in how I thought about research.&lt;/p&gt;

&lt;p&gt;If I asked a question and the answer immediately created another question, I felt like I hadn't really solved anything.&lt;/p&gt;

&lt;p&gt;I was expecting a clean ending.&lt;/p&gt;

&lt;p&gt;What I've started realizing is that real investigation usually doesn't work that way.&lt;/p&gt;

&lt;p&gt;It's much closer to debugging.&lt;/p&gt;

&lt;p&gt;When something is wrong in a codebase, you don't always know what the bug is before you start looking. You make an assumption, check something, find evidence that supports or disproves it, and then change your approach.&lt;/p&gt;

&lt;p&gt;Sometimes the best result from debugging is discovering that the thing you thought was broken isn't actually the problem.&lt;/p&gt;

&lt;p&gt;The same thing happens with business questions.&lt;/p&gt;

&lt;p&gt;You might think you're investigating a conversion problem and discover that the conversion tracking changed.&lt;/p&gt;

&lt;p&gt;You might think traffic is down because of SEO and discover that the bigger issue is a change in how the traffic is being measured.&lt;/p&gt;

&lt;p&gt;You might think customers aren't using a feature because they don't want it, and then discover they couldn't figure out how to use it.&lt;/p&gt;

&lt;p&gt;Those aren't failures.&lt;/p&gt;

&lt;p&gt;They're corrections to the question.&lt;/p&gt;

&lt;h2&gt;
  
  
  More data didn't solve the problem either
&lt;/h2&gt;

&lt;p&gt;This was another assumption I had.&lt;/p&gt;

&lt;p&gt;If the problem is that you don't know what's happening, having access to more information should make things easier.&lt;/p&gt;

&lt;p&gt;Sometimes it does.&lt;/p&gt;

&lt;p&gt;Sometimes it makes things worse.&lt;/p&gt;

&lt;p&gt;You can have analytics, payment data, product events, search data, customer feedback, spreadsheets, dashboards, and a dozen browser tabs open and still not know what you should actually do next.&lt;/p&gt;

&lt;p&gt;I think I was confusing &lt;strong&gt;having information&lt;/strong&gt; with &lt;strong&gt;making progress&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They're not the same thing.&lt;/p&gt;

&lt;p&gt;A dashboard can tell you that something changed.&lt;/p&gt;

&lt;p&gt;It doesn't necessarily tell you which explanation is worth investigating.&lt;/p&gt;

&lt;p&gt;And having five different sources of data doesn't automatically help if you're not sure whether they're telling you the same story.&lt;/p&gt;

&lt;p&gt;That was probably one of the more frustrating things to realize while working on this.&lt;/p&gt;

&lt;p&gt;I didn't necessarily need more information.&lt;/p&gt;

&lt;p&gt;I needed the information I already had to help narrow down what I should look at next.&lt;/p&gt;

&lt;h2&gt;
  
  
  The answer can be useful even when it isn't the answer you wanted
&lt;/h2&gt;

&lt;p&gt;This has changed the way I look at research.&lt;/p&gt;

&lt;p&gt;I used to think a successful investigation was one where I got the answer I was looking for.&lt;/p&gt;

&lt;p&gt;Now I think there are several ways an answer can be useful.&lt;/p&gt;

&lt;p&gt;It can confirm what you already suspected.&lt;/p&gt;

&lt;p&gt;It can rule something out.&lt;/p&gt;

&lt;p&gt;It can reveal something you weren't expecting.&lt;/p&gt;

&lt;p&gt;Or it can completely change the question.&lt;/p&gt;

&lt;p&gt;The last one might actually be the most valuable.&lt;/p&gt;

&lt;p&gt;If I start with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why did revenue fall?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and discover that revenue didn't actually fall, but the reporting changed, that's a useful result.&lt;/p&gt;

&lt;p&gt;I didn't solve the original problem.&lt;/p&gt;

&lt;p&gt;I discovered that the original problem wasn't real.&lt;/p&gt;

&lt;p&gt;That saves a lot of time.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'm starting to think about questions differently
&lt;/h2&gt;

&lt;p&gt;I've also noticed this changing the way I approach problems before I even start looking at the data.&lt;/p&gt;

&lt;p&gt;Instead of only asking: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What's the answer? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm trying to think about: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What would I do differently depending on the answer?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That small change makes the investigation feel different.&lt;/p&gt;

&lt;p&gt;If the answer could change the next thing I investigate, then it's probably worth digging into.&lt;/p&gt;

&lt;p&gt;And sometimes the most useful question isn't the one that gives you the most information.&lt;/p&gt;

&lt;p&gt;It's the one that eliminates the most possibilities.&lt;/p&gt;

&lt;p&gt;I don't have this figured out completely. I'm still learning where that line is, and I'm sure I'll keep getting it wrong.&lt;/p&gt;

&lt;p&gt;But I no longer see a new question appearing after an answer as a sign that the research failed.&lt;/p&gt;

&lt;p&gt;Sometimes it means the research finally got somewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm taking away from this
&lt;/h2&gt;

&lt;p&gt;The biggest change for me is that I don't think of research as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Find the answer and finish.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think of it more as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask → investigate → learn something → adjust the question → investigate again.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That sounds obvious when I write it down, but it wasn't how I was thinking about it when we started building.&lt;/p&gt;

&lt;p&gt;And maybe that's the part I find most interesting.&lt;/p&gt;

&lt;p&gt;A good answer doesn't always close the investigation.&lt;/p&gt;

&lt;p&gt;Sometimes it tells you what you should have been asking in the first place.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building Against Real APIs Is Nothing Like Reading the Docs</title>
      <dc:creator>Jan S.</dc:creator>
      <pubDate>Mon, 03 Aug 2026 08:30:12 +0000</pubDate>
      <link>https://dev.to/jan_inteldo/building-against-real-apis-is-nothing-like-reading-the-docs-23g9</link>
      <guid>https://dev.to/jan_inteldo/building-against-real-apis-is-nothing-like-reading-the-docs-23g9</guid>
      <description>&lt;p&gt;A few months ago, I started spending a lot more time working with different APIs.&lt;/p&gt;

&lt;p&gt;At first, I thought authentication would be the hardest part. Once OAuth was working and I could successfully make requests, I assumed everything else would mostly be connecting the dots.&lt;/p&gt;

&lt;p&gt;It didn't take long to realize I was wrong.&lt;/p&gt;

&lt;p&gt;The real challenge wasn't getting data. It was figuring out what that data actually meant.&lt;/p&gt;

&lt;h2&gt;
  
  
  The docs only show the happy path
&lt;/h2&gt;

&lt;p&gt;API documentation is usually great at helping you get started.&lt;/p&gt;

&lt;p&gt;You learn how to authenticate, which endpoint to call, and what a successful response looks like. Five minutes later, you're making your first request and everything feels pretty straightforward.&lt;/p&gt;

&lt;p&gt;Production is a different story.&lt;/p&gt;

&lt;p&gt;One API returns timestamps in UTC. Another uses your account's local timezone. Some return an empty array when there's no data, others return &lt;code&gt;null&lt;/code&gt;, and a few simply leave the field out entirely.&lt;/p&gt;

&lt;p&gt;None of those things are difficult by themselves.&lt;/p&gt;

&lt;p&gt;The challenge is that every API is a little different, and those small differences slowly pile up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The same event can mean different things
&lt;/h2&gt;

&lt;p&gt;One thing that surprised me was how differently platforms describe the same event.&lt;/p&gt;

&lt;p&gt;Let's say someone asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How many customers signed up yesterday?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It sounds like there should be one answer.&lt;/p&gt;

&lt;p&gt;But depending on which platform you're looking at, "signed up" might mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;created an account&lt;/li&gt;
&lt;li&gt;started a free trial&lt;/li&gt;
&lt;li&gt;verified an email&lt;/li&gt;
&lt;li&gt;completed a payment&lt;/li&gt;
&lt;li&gt;became an active customer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of those definitions are wrong.&lt;/p&gt;

&lt;p&gt;They're just measuring different moments.&lt;/p&gt;

&lt;p&gt;That was probably the biggest mindset shift for me. Before combining data, you have to understand what each system is actually measuring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expect inconsistencies
&lt;/h2&gt;

&lt;p&gt;After working with more integrations, I've stopped expecting APIs to behave the same way.&lt;/p&gt;

&lt;p&gt;Different pagination styles.&lt;/p&gt;

&lt;p&gt;Different rate limits.&lt;/p&gt;

&lt;p&gt;Different error responses.&lt;/p&gt;

&lt;p&gt;Different field names.&lt;/p&gt;

&lt;p&gt;Sometimes even different behavior between endpoints from the same provider.&lt;/p&gt;

&lt;p&gt;At first those inconsistencies felt frustrating.&lt;/p&gt;

&lt;p&gt;Now I almost expect them.&lt;/p&gt;

&lt;p&gt;Instead of assuming every response will match the documentation, I try to build integrations that can handle missing fields, unexpected values, and the occasional edge case.&lt;/p&gt;

&lt;p&gt;It's usually those small details that save you hours of debugging later.&lt;/p&gt;

&lt;h2&gt;
  
  
  The biggest lesson I've learned
&lt;/h2&gt;

&lt;p&gt;If there's one thing I'll carry into future projects, it's this:&lt;/p&gt;

&lt;p&gt;Treat every external API as a system you don't control.&lt;/p&gt;

&lt;p&gt;The documentation gets you connected.&lt;/p&gt;

&lt;p&gt;The real work starts after the first successful request.&lt;/p&gt;

&lt;p&gt;That's where you begin learning how the API behaves in the real world, and that's where most of the interesting engineering problems show up.&lt;/p&gt;

&lt;p&gt;I'm still learning this myself, but it's already changed how I approach integrations.&lt;/p&gt;

&lt;p&gt;I'd be interested to hear what unexpected API quirks you've run into. I'm sure there are plenty I haven't discovered yet.`&lt;/p&gt;

</description>
      <category>api</category>
      <category>webdev</category>
      <category>backend</category>
    </item>
  </channel>
</rss>
