delimiter Free opinions on front-end and surviving the world of big tech. 2024-03-04T00:00:00Z https://delimiter.dev/ delimiter AI, LLMs, and What Is Worth My Attention 2024-03-04T00:00:00Z https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/ <blockquote> <p><em>&quot;True counterculture is always offline.&quot; —<a href="https://daftsocial.com/daftsocial/?id=474">Daftsocial</a></em></p> </blockquote> <p><a href="https://www.tbray.org/ongoing/When/202x/2024/02/25/Money-AI-Bubble">Is AI a bubble?</a> It certainly feels like the bubbles of yore, all of which had in common a viable technology that took center stage (e-commerce, peer-to-peer, Web 2.0, social media, crypto), a number of companies trying to conjure a market into existence, and scores of investors seeking to catch the next wave.</p> <p>Most of these bubbles didn't really <em>pop</em> so much as slowly deflate without causing a industry crash on the scale of the dotcom bust of 2001. Of these, I feel like we collectively dodged an asteroid in crypto, which gave us the courtesy of losing steam before it could be jammed into every facet of daily life. That could have been bad!</p> <p>Which is exactly what AI feels like now. It's got those vibes.</p> <p>But I also feel like there's something <em>there</em> there. I'm interested in the technology, even if don't feel the need to delve into gritty details yet<sup class="footnote-ref"><a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" id="fnref1">[1]</a></sup>. I tend to &quot;lazy-load my learning&quot; and that's worked for me over a 25-year career<sup class="footnote-ref"><a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" id="fnref2">[2]</a></sup> It's always useful to be able to have a conversation about something that's transforming your industry! Or destroying it, maybe!</p> <p>What do I think, anyway? Probably nothing that others haven't already said, but it's nice to write it down:</p> <ul> <li>The <a href="https://en.wikipedia.org/wiki/Natural_language_processing">NLP</a> capabilities are <em>astounding</em> and I agree that no one seems to care very much about this! Ever since I first typed &quot;hello&quot; into my Commodore VIC-20 and got <code>?SYNTAX ERROR?</code> in return I've been wondering if we'll ever really be able to say &quot;Computer! Analyze atmosphere!&quot; with Picardian authority and be understood.</li> <li>Accuracy is going to be key to successful adoption. I think LLMs <em>will</em> get a lot more accurate, but the non-zero chance of hallucination is going to constrain where they can be used safely.</li> <li>Which is why I think there will be an interesting market for APIs that shunt requests away to specialized subsystems. Let the LLM do the talking, not make decisions.</li> <li>Get ready for a lot more very <a href="https://www.wired.com/story/air-canada-chatbot-refund-policy/">public</a> <a href="https://www.businessinsider.com/car-dealership-chevrolet-chatbot-chatgpt-pranks-chevy-2023-12">humiliations</a> as companies race to prematurely integrate AI into their offerings. I hope someone doesn't die as a result.</li> <li>Efforts to integrate tone and facial expression into NLP are probably already underway. There's so much more that goes into human communication.</li> <li>Chatbots are boring and hackable.</li> <li>Seriously, how can you trust tech that can be subverted by <a href="https://simonwillison.net/2022/Sep/16/prompt-injection-solutions/">telling it to ignore its programming?</a></li> <li>None of the above concerns will stop the FOMO. Get ready for more and more companies <a href="https://www.vox.com/technology/24086039/reddit-tumblr-wordpress-whos-selling-your-data-to-train-ai">offering up their (possibly your) data to AI</a> in exchange for income to offset falling advertising revenue. They won't be able to resist. Everyone from Wikipedia to Urban Dictionary to Everything<sup>2</sup> is fighting an internal battle, probably.</li> <li>We should prepare for a future court decision declaring AI web scraping legal, due to some concepts of common public good and &quot;to foster creativity&quot; much like Fair Use but maybe without compulsory licensing like we have in the US with music.</li> <li>I haven't even touched on image generators! Slurping up original art from blogs and webcomics to feed your AI feels like an even grosser ethical violation than text. That said, if these tools are to exist, they are best deployed by the hands of <em>artists.</em></li> </ul> <p>Finally, I wonder how these models will stay relevant? So much cool stuff happens completely offline. I wonder if LLMs will always be a few years behind certain trends because they'll have to wait for someone to write about them.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Here's a <a href="https://arstechnica.com/science/2023/07/a-jargon-free-explanation-of-how-ai-large-language-models-work/">decent &quot;jargon-free&quot; explainer for LLMs</a>. There are many others. <a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" class="footnote-backref">↩︎</a></p> </li> <li id="fn2" class="footnote-item"><p>I mean, I'm a front-end person. Also, I'm kind of bad at math? <a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" class="footnote-backref">↩︎</a></p> </li> </ol> </section> Links: Technical Debt 2024-01-19T00:00:00Z https://delimiter.dev/2024/01/19/links:-technical-debt/ <p><em>Today's prototype is tomorrow's legacy code.</em> - me, probably.</p> <p>Some of these via an intriguing <a href="https://xoxo.zone/@brittag/111784014558218674">Mastodon thread</a>:</p> <p><a href="https://jacobian.org/2021/oct/20/simple-pm-tricks/">Simple Product Management Tricks</a></p> <blockquote> <p>&quot;Timeboxing is powerful because it approaches estimation from a different direction. Instead of 'how long will X take?', timeboxing asks questions like, 'what can we do in two weeks?'&quot;</p> </blockquote> <p><a href="https://apenwarr.ca/log/20230605">Tech debt metaphor maximalism</a>:</p> <blockquote> <p>&quot;Tech debt, in its simplest form, is the time you didn't spend making tasks more efficient. When you think of it that way, it's obvious that zero tech debt is a silly choice.&quot;</p> </blockquote> <p><a href="https://tanzu.vmware.com/content/blog/risk-profile-of-technical-debt">Understanding the risk profile of your technical debt</a></p> <blockquote> <p>&quot;If we think of the time and effort to make changes to the codebase as the interest rate, we align to the notion of risk. If it takes a lot of time, a lot of effort, manual steps, etc., then it's also riskier and more error-prone. Remember: interest rates are an expression of risk.&quot;</p> </blockquote> <p><a href="https://engineering.squarespace.com/blog/2019/three-kinds-of-good-tech-debt">3 Kinds of Good Tech Debt</a></p> <blockquote> <p>&quot;This mental model has helped me avoid spending foolishly and paying in maintenance for a system I couldn’t afford, and it’s given me a way to see opportunities to use tech debt intentionally. Here are a few cases where taking on tech debt helped my projects succeed.&quot;</p> </blockquote> <p><a href="https://kellysutton.com/2017/10/24/quantifying-technical-debt.html">Quantifying Technical Debt</a></p> <blockquote> <p>&quot;Having a discussion about technical debt is a luxury. Being able to talk about technical debt implies success. You cannot immediately blow up the product in question because people are using it and paying for it.&quot;</p> </blockquote> Catching Up With The Web 2024-01-16T00:00:00Z https://delimiter.dev/2024/01/16/catching-up-with-the-web/ <p>It's weird and exciting to be writing again but it certainly feels like my blogging muscles have become weak and flabby from disuse. So think of these early posts here as me doing a lot of planks and crunches before committing to push-ups.</p> <p>I'm probably not going to be writing many tutorials or deep-dives. I'll be deferring that to others with the time and inclination. If there's code here, it'll probably be in service of teaching myself something new and sharing it.</p> <h2 id="you-kids-and-your-toys" tabindex="-1">You Kids And Your Toys <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h2> <p>Have you ever looked a modern toys and felt burning jealousy? When I was young a toy dinosaur was a solid block of molded plastic. If it was multicolored, you were lucky. Today's dinosaur toys walk, roar, are multi-articulated, and some come with <em>battle damage.</em></p> <p>Being inside a Big Tech Company for a few years is a great way to lose sight of what's happening outside the citadel walls. Staying on top of this stuff is part of the job, but when the job focuses primarily on <em>shipping</em> it's common to stick with what you have that's already working. If this is you, don't feel bad. Some of the most senior devs I've worked with aren't leveraging &quot;new&quot; web technologies, including things that have been supported for years in most browsers, for various reasons.</p> <p>I've been playing catch-up and there are a lot of <em>really</em> fun toys to check out.</p> <p>Things I'm excited about:</p> <h3 id="web-components" tabindex="-1">Web components! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Components">Web components</a> have been around for a few years but seem to be having a moment. This is probably the development I'm most excited about. Custom markup that extends existing HTML elements, which can be backed by JavaScript to add additional functionality.</p> <p>I'm <em>so</em> on board with this. I always thought of <a href="https://jquery.com/">jQuery</a> as an excellent tool for <a href="https://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a>, but it wasn't often used that way, to the point where whole applications relied on jQuery to work at all. I've written a lot jQuery and React (like, a <em>lot</em>) and I far prefer the pattern of squeezing as much functionality our of markup and CSS as possible, then adding functionality with JavaScript after the page loads. jQuery made this easy, but it didn't enforce composability or reuse, and you needed to drag a full version of jQuery around.</p> <p>Web components seem an ideal compromise, because they <em>are</em> JS-enhanced markup. Write the base component's minimal functionality with HTML and CSS, then decorate it with vanilla JavaScript and standardized browser APIs. Or you can throw caution overboard and write the whole component as JS, and use the custom element attributes as props. If you can resist the siren call of <code style="white-space: nowrap;">npm install</code> you can pretty much reuse your component anywhere, with zero third-party dependencies!</p> <p>I can't wait to try this out. I have so many ideas.</p> <h3 id="css-advances" tabindex="-1">CSS advances! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p>Where to begin? <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_container_queries">Container queries!</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_nesting">Nesting without SASS!</a> A mature <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout">CSS Grid</a>, with subgrid on the way. Tons of <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes!</a> Including <code><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:has">:has()</a></code> which is damn near magical.</p> <h3 id="non-react-js-frameworks" tabindex="-1">Non-React JS frameworks! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p>There are SO many. <a href="https://vuejs.org">Vue</a>, <a href="https://svelte.dev">Svelte</a>, <a href="https://preactjs.com">Preact</a>, <a href="https://www.solidjs.com/">Solid</a>, <a href="https://astro.build/">Astro</a> and more. Some of these have been around long enough to be mature alternatives to the React ecosystem.</p> <h3 id="javascript-modules" tabindex="-1">JavaScript modules! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules">Native JS dependency management</a> without the toolchain. If you've been using Babel or Webpack for a few years you might not even realize that most Chromium and Webkit browsers support this now.</p> <p>There's more that I could list but these are top-of-mind at the moment.</p> Stop Trying To Get Hired And Start Becoming Someone People Want To Work With 2024-01-04T00:00:00Z https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/ <p>The title of this post is paraphrased dating advice and I believe it's applicable.</p> <p>I wrote the previous post in 2018 in response to a pattern I was seeing in interview loops. Candidates would generally do well, but when it came time for Q&amp;A, they'd ask safe, sometimes deferential questions that were unlikely to reveal anything useful. It seemed like a squandered opportunity to engage with the interviewer as a peer.</p> <p>Nonetheless I received some <em>polite</em> feedback on that original post, indicating that survivor bias and imposter syndrome are still robustly represented in the industry. Which is okay. This stuff is hard.</p> <p>I've had some follow-up thoughts in draft mode for years, and the launch of this new blog seems like an ideal time to address a few concerns. I mean, I've been interviewing software dev candidates<sup class="footnote-ref"><a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" id="fnref1">[1]</a></sup> for a little over two decades, so what do I know?</p> <h2 id="i-don-t-feel-comfortable-asking-these-questions" tabindex="-1">&quot;I don't feel comfortable asking these questions&quot; <a class="header-anchor" href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/">#</a></h2> <p>I think you'd be surprised at what interviewers can and are willing to share.</p> <p>Remember, you're trying to start a conversation, not perform corporate espionage<sup class="footnote-ref"><a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" id="fnref2">[2]</a></sup>. It's perfectly reasonable to want to know if you're going to be spending your time solving problems or putting out fires.</p> <p>If you're worried about non-disclosure, just say that! &quot;I'd like to hear a little bit about your tech stack, if that's permitted,&quot; or &quot;if this topic is confidential, we can talk about something else.&quot; Any experienced interviewer should know where the line is.</p> <p>That said, respect that line. Be interested, not nosy.</p> <p>Oh, and if you're anxious that you'll offend your interviewer by asking these types of questions, let me just say you can't do any worse than candidates who ask softball questions or no questions at all.<sup class="footnote-ref"><a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" id="fnref3">[3]</a></sup></p> <h2 id="i-m-new-how-can-i-ask-these-questions-if-i-haven-t-experienced-them-myself" tabindex="-1">&quot;I'm new. How can I ask these questions if I haven't experienced them myself?&quot; <a class="header-anchor" href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/">#</a></h2> <p>You don't need deep experience to have a conversation between peers, and you don't need to have solved any of these issues yourself. In fact, think twice before offering solutions. They should hire you for that!</p> <p>By flipping the script, you're getting valuable insight into how the team or company operates. Just be sure you're actively listening and look for opportunities to ask follow-up questions. Maybe you've never had a job with an oncall rotation. Great! You're about to hear about what it's like <em>here</em>. Maybe you haven't had to gather requirements on your own. Awesome! You're about to hear how they do that <em>here</em>.</p> <p>You're not doing anything different than your interviewers are by asking <a href="https://en.wikipedia.org/wiki/Situation,_task,_action,_result">STAR-style questions</a>. You're just leaving out that &quot;tell me about a time when—&quot; part.</p> <p>And if your interviewer does ask about your own experience, you can always say something like &quot;I haven't experienced that situation yet myself, so I'm interested how it's done here.&quot;</p> <p>All of that said, you should probably work on having opinions. More on that in future post.</p> <h2 id="i-don-t-think-i-can-keep-a-conversation-going" tabindex="-1">&quot;I don't think I can keep a conversation going&quot; <a class="header-anchor" href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/">#</a></h2> <p>Please don't be mad, but I don't believe you.</p> <p>Why? Because you're in tech, and tech folk LOVE to talk. They have <em>opinions.</em> You've never debated the merits of some language or framework or Linux flavor with your classmates? You've never spent a team lunch discussing how to deal with some gnarly legacy code? Server vs. client-side rendering? &quot;ɡɪf&quot; vs. &quot;jɪf&quot;?</p> <p>One of my teams spent part of an afternoon talking about whether one should ever put comments in their code.</p> <p>You can do this because you've already done this. Take advantage of this energy! Leverage the addictive properties of <em>tech discourse!</em></p> <p>Now you've found some common ground. You're no longer the candidate who crammed on CS fundamentals all weekend vs. the interviewer who hasn't thought about topological sorting since their own interview and is preoccupied with why the server cluster needs restarted every day at noon. Now you're compatriots, fellow travelers — peers, even!</p> <p>By asking questions that imply you're interested in discussing and solving problems, you're signaling that you're not just keen to get a job, but you're someone they should want to work with.</p> <p>And to return to the dating analogy: how do you know when a date is going well? Flowing, engaging <em>conversation</em>.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Mostly front-end, sometimes full-stack. Although it's tough to be only front-end these days, especially if you want any say in things like data contracts and APIs. <a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" class="footnote-backref">↩︎</a></p> </li> <li id="fn2" class="footnote-item"><p>A super-secret stealth-mode startup might balk at answering in detail. But then, they may not have actually built anything significant yet (and if they have, it could be bootstrapped with hot glue and duct tape). <a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" class="footnote-backref">↩︎</a></p> </li> <li id="fn3" class="footnote-item"><p>And if you're around long enough, you're guaranteed to encounter folks that radiate some truly toxic vibes. Better to discover this now before you accept an offer. <a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" class="footnote-backref">↩︎</a></p> </li> </ol> </section> How To Be More Interesting During A Technical Interview 2023-12-21T00:00:00Z https://delimiter.dev/2023/12/21/how-to-be-more-interesting-during-a-technical-interview/ <p>Originally written in 2018, revised for 2023, a year notable for Big Tech layoffs and industry disruption.</p> <hr> <p><em>“Do you have any questions for me before we wrap up?”</em></p> <p>This your chance to make a lasting impression on your interviewer. It’s an opportunity to show your prospective employer you're interested in solving real problems, not just in getting a job. That you care about the humans at the opposite end of the tech stack.</p> <p>It’s also a chance to learn something about how your prospective employer operates. Maybe there’s a pain point you can help address, or a process gap you can help fill. Maybe you’ll see some patterns that indicate how happy — or miserable — you’ll be if you accept an offer.</p> <p>After 20 years of interviewing candidates, the ones I remembered were the ones who tried to engage me in a conversation about things I cared about. Below are some conversation starters I jotted down from memory. Feel free to use them, and create your own.</p> <hr> <p>What’s your worst day like here? How do you manage it?</p> <p>If you could change one thing about your tech stack, what would it be? What’s blocking you from implementing this change?</p> <p>What are some common pain points for your customers? Are you working towards solving them? Why or why not?</p> <p>How do you respond to customer complaints? Do you have a system for customer-reported issues? How has that been working for you?</p> <p>How does your team handle requests for new features? Do you have a process?</p> <p>How do you evaluate new technology for use? What are your criteria for adoption?</p> <p>I see from your source code/press release/company blog that you’ve adopted [a particular technology]. What decisions led you to that adoption? How successful has it been?</p> <p>Tell me about your deployment methodology. Are you able to do continuous deployment? If so, how? If not, what is your release schedule like and what determines it?</p> <p>How does your team handle code reviews? Do you have standards or criteria for reviews?</p> <p>When was the last time your company or team had to migrate to a new tech stack? How did you approach this? Would you do anything differently now?</p> <p>What’s one thing someone would need to know to be successful here?</p>
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="en">
<title>delimiter</title>
<subtitle>Free opinions on front-end and surviving the world of big tech.</subtitle>
<link href="https://delimiter.dev/feed/index.xml" rel="self"/>
<link href="https://delimiter.dev/"/>
<updated>2024-03-04T00:00:00Z</updated>
<id>https://delimiter.dev/</id>
<author>
<name>delimiter</name>
</author>
<entry>
<title>AI, LLMs, and What Is Worth My Attention</title>
<link href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/"/>
<updated>2024-03-04T00:00:00Z</updated>
<id>https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/</id>
<content type="html"><blockquote> <p><em>&quot;True counterculture is always offline.&quot; —<a href="https://daftsocial.com/daftsocial/?id=474">Daftsocial</a></em></p> </blockquote> <p><a href="https://www.tbray.org/ongoing/When/202x/2024/02/25/Money-AI-Bubble">Is AI a bubble?</a> It certainly feels like the bubbles of yore, all of which had in common a viable technology that took center stage (e-commerce, peer-to-peer, Web 2.0, social media, crypto), a number of companies trying to conjure a market into existence, and scores of investors seeking to catch the next wave.</p> <p>Most of these bubbles didn't really <em>pop</em> so much as slowly deflate without causing a industry crash on the scale of the dotcom bust of 2001. Of these, I feel like we collectively dodged an asteroid in crypto, which gave us the courtesy of losing steam before it could be jammed into every facet of daily life. That could have been bad!</p> <p>Which is exactly what AI feels like now. It's got those vibes.</p> <p>But I also feel like there's something <em>there</em> there. I'm interested in the technology, even if don't feel the need to delve into gritty details yet<sup class="footnote-ref"><a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" id="fnref1">[1]</a></sup>. I tend to &quot;lazy-load my learning&quot; and that's worked for me over a 25-year career<sup class="footnote-ref"><a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" id="fnref2">[2]</a></sup> It's always useful to be able to have a conversation about something that's transforming your industry! Or destroying it, maybe!</p> <p>What do I think, anyway? Probably nothing that others haven't already said, but it's nice to write it down:</p> <ul> <li>The <a href="https://en.wikipedia.org/wiki/Natural_language_processing">NLP</a> capabilities are <em>astounding</em> and I agree that no one seems to care very much about this! Ever since I first typed &quot;hello&quot; into my Commodore VIC-20 and got <code>?SYNTAX ERROR?</code> in return I've been wondering if we'll ever really be able to say &quot;Computer! Analyze atmosphere!&quot; with Picardian authority and be understood.</li> <li>Accuracy is going to be key to successful adoption. I think LLMs <em>will</em> get a lot more accurate, but the non-zero chance of hallucination is going to constrain where they can be used safely.</li> <li>Which is why I think there will be an interesting market for APIs that shunt requests away to specialized subsystems. Let the LLM do the talking, not make decisions.</li> <li>Get ready for a lot more very <a href="https://www.wired.com/story/air-canada-chatbot-refund-policy/">public</a> <a href="https://www.businessinsider.com/car-dealership-chevrolet-chatbot-chatgpt-pranks-chevy-2023-12">humiliations</a> as companies race to prematurely integrate AI into their offerings. I hope someone doesn't die as a result.</li> <li>Efforts to integrate tone and facial expression into NLP are probably already underway. There's so much more that goes into human communication.</li> <li>Chatbots are boring and hackable.</li> <li>Seriously, how can you trust tech that can be subverted by <a href="https://simonwillison.net/2022/Sep/16/prompt-injection-solutions/">telling it to ignore its programming?</a></li> <li>None of the above concerns will stop the FOMO. Get ready for more and more companies <a href="https://www.vox.com/technology/24086039/reddit-tumblr-wordpress-whos-selling-your-data-to-train-ai">offering up their (possibly your) data to AI</a> in exchange for income to offset falling advertising revenue. They won't be able to resist. Everyone from Wikipedia to Urban Dictionary to Everything<sup>2</sup> is fighting an internal battle, probably.</li> <li>We should prepare for a future court decision declaring AI web scraping legal, due to some concepts of common public good and &quot;to foster creativity&quot; much like Fair Use but maybe without compulsory licensing like we have in the US with music.</li> <li>I haven't even touched on image generators! Slurping up original art from blogs and webcomics to feed your AI feels like an even grosser ethical violation than text. That said, if these tools are to exist, they are best deployed by the hands of <em>artists.</em></li> </ul> <p>Finally, I wonder how these models will stay relevant? So much cool stuff happens completely offline. I wonder if LLMs will always be a few years behind certain trends because they'll have to wait for someone to write about them.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Here's a <a href="https://arstechnica.com/science/2023/07/a-jargon-free-explanation-of-how-ai-large-language-models-work/">decent &quot;jargon-free&quot; explainer for LLMs</a>. There are many others. <a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" class="footnote-backref">↩︎</a></p> </li> <li id="fn2" class="footnote-item"><p>I mean, I'm a front-end person. Also, I'm kind of bad at math? <a href="https://delimiter.dev/2024/03/04/ai-llms-and-what-is-worth-my-attention/" class="footnote-backref">↩︎</a></p> </li> </ol> </section> </content>
</entry>
<entry>
<title>Links: Technical Debt</title>
<link href="https://delimiter.dev/2024/01/19/links:-technical-debt/"/>
<updated>2024-01-19T00:00:00Z</updated>
<id>https://delimiter.dev/2024/01/19/links:-technical-debt/</id>
<content type="html"><p><em>Today's prototype is tomorrow's legacy code.</em> - me, probably.</p> <p>Some of these via an intriguing <a href="https://xoxo.zone/@brittag/111784014558218674">Mastodon thread</a>:</p> <p><a href="https://jacobian.org/2021/oct/20/simple-pm-tricks/">Simple Product Management Tricks</a></p> <blockquote> <p>&quot;Timeboxing is powerful because it approaches estimation from a different direction. Instead of 'how long will X take?', timeboxing asks questions like, 'what can we do in two weeks?'&quot;</p> </blockquote> <p><a href="https://apenwarr.ca/log/20230605">Tech debt metaphor maximalism</a>:</p> <blockquote> <p>&quot;Tech debt, in its simplest form, is the time you didn't spend making tasks more efficient. When you think of it that way, it's obvious that zero tech debt is a silly choice.&quot;</p> </blockquote> <p><a href="https://tanzu.vmware.com/content/blog/risk-profile-of-technical-debt">Understanding the risk profile of your technical debt</a></p> <blockquote> <p>&quot;If we think of the time and effort to make changes to the codebase as the interest rate, we align to the notion of risk. If it takes a lot of time, a lot of effort, manual steps, etc., then it's also riskier and more error-prone. Remember: interest rates are an expression of risk.&quot;</p> </blockquote> <p><a href="https://engineering.squarespace.com/blog/2019/three-kinds-of-good-tech-debt">3 Kinds of Good Tech Debt</a></p> <blockquote> <p>&quot;This mental model has helped me avoid spending foolishly and paying in maintenance for a system I couldn’t afford, and it’s given me a way to see opportunities to use tech debt intentionally. Here are a few cases where taking on tech debt helped my projects succeed.&quot;</p> </blockquote> <p><a href="https://kellysutton.com/2017/10/24/quantifying-technical-debt.html">Quantifying Technical Debt</a></p> <blockquote> <p>&quot;Having a discussion about technical debt is a luxury. Being able to talk about technical debt implies success. You cannot immediately blow up the product in question because people are using it and paying for it.&quot;</p> </blockquote> </content>
</entry>
<entry>
<title>Catching Up With The Web</title>
<link href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/"/>
<updated>2024-01-16T00:00:00Z</updated>
<id>https://delimiter.dev/2024/01/16/catching-up-with-the-web/</id>
<content type="html"><p>It's weird and exciting to be writing again but it certainly feels like my blogging muscles have become weak and flabby from disuse. So think of these early posts here as me doing a lot of planks and crunches before committing to push-ups.</p> <p>I'm probably not going to be writing many tutorials or deep-dives. I'll be deferring that to others with the time and inclination. If there's code here, it'll probably be in service of teaching myself something new and sharing it.</p> <h2 id="you-kids-and-your-toys" tabindex="-1">You Kids And Your Toys <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h2> <p>Have you ever looked a modern toys and felt burning jealousy? When I was young a toy dinosaur was a solid block of molded plastic. If it was multicolored, you were lucky. Today's dinosaur toys walk, roar, are multi-articulated, and some come with <em>battle damage.</em></p> <p>Being inside a Big Tech Company for a few years is a great way to lose sight of what's happening outside the citadel walls. Staying on top of this stuff is part of the job, but when the job focuses primarily on <em>shipping</em> it's common to stick with what you have that's already working. If this is you, don't feel bad. Some of the most senior devs I've worked with aren't leveraging &quot;new&quot; web technologies, including things that have been supported for years in most browsers, for various reasons.</p> <p>I've been playing catch-up and there are a lot of <em>really</em> fun toys to check out.</p> <p>Things I'm excited about:</p> <h3 id="web-components" tabindex="-1">Web components! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Components">Web components</a> have been around for a few years but seem to be having a moment. This is probably the development I'm most excited about. Custom markup that extends existing HTML elements, which can be backed by JavaScript to add additional functionality.</p> <p>I'm <em>so</em> on board with this. I always thought of <a href="https://jquery.com/">jQuery</a> as an excellent tool for <a href="https://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a>, but it wasn't often used that way, to the point where whole applications relied on jQuery to work at all. I've written a lot jQuery and React (like, a <em>lot</em>) and I far prefer the pattern of squeezing as much functionality our of markup and CSS as possible, then adding functionality with JavaScript after the page loads. jQuery made this easy, but it didn't enforce composability or reuse, and you needed to drag a full version of jQuery around.</p> <p>Web components seem an ideal compromise, because they <em>are</em> JS-enhanced markup. Write the base component's minimal functionality with HTML and CSS, then decorate it with vanilla JavaScript and standardized browser APIs. Or you can throw caution overboard and write the whole component as JS, and use the custom element attributes as props. If you can resist the siren call of <code style="white-space: nowrap;">npm install</code> you can pretty much reuse your component anywhere, with zero third-party dependencies!</p> <p>I can't wait to try this out. I have so many ideas.</p> <h3 id="css-advances" tabindex="-1">CSS advances! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p>Where to begin? <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_container_queries">Container queries!</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_nesting">Nesting without SASS!</a> A mature <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout">CSS Grid</a>, with subgrid on the way. Tons of <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes!</a> Including <code><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:has">:has()</a></code> which is damn near magical.</p> <h3 id="non-react-js-frameworks" tabindex="-1">Non-React JS frameworks! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p>There are SO many. <a href="https://vuejs.org">Vue</a>, <a href="https://svelte.dev">Svelte</a>, <a href="https://preactjs.com">Preact</a>, <a href="https://www.solidjs.com/">Solid</a>, <a href="https://astro.build/">Astro</a> and more. Some of these have been around long enough to be mature alternatives to the React ecosystem.</p> <h3 id="javascript-modules" tabindex="-1">JavaScript modules! <a class="header-anchor" href="https://delimiter.dev/2024/01/16/catching-up-with-the-web/">#</a></h3> <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules">Native JS dependency management</a> without the toolchain. If you've been using Babel or Webpack for a few years you might not even realize that most Chromium and Webkit browsers support this now.</p> <p>There's more that I could list but these are top-of-mind at the moment.</p> </content>
</entry>
<entry>
<title>Stop Trying To Get Hired And Start Becoming Someone People Want To Work With</title>
<link href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/"/>
<updated>2024-01-04T00:00:00Z</updated>
<id>https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/</id>
<content type="html"><p>The title of this post is paraphrased dating advice and I believe it's applicable.</p> <p>I wrote the previous post in 2018 in response to a pattern I was seeing in interview loops. Candidates would generally do well, but when it came time for Q&amp;A, they'd ask safe, sometimes deferential questions that were unlikely to reveal anything useful. It seemed like a squandered opportunity to engage with the interviewer as a peer.</p> <p>Nonetheless I received some <em>polite</em> feedback on that original post, indicating that survivor bias and imposter syndrome are still robustly represented in the industry. Which is okay. This stuff is hard.</p> <p>I've had some follow-up thoughts in draft mode for years, and the launch of this new blog seems like an ideal time to address a few concerns. I mean, I've been interviewing software dev candidates<sup class="footnote-ref"><a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" id="fnref1">[1]</a></sup> for a little over two decades, so what do I know?</p> <h2 id="i-don-t-feel-comfortable-asking-these-questions" tabindex="-1">&quot;I don't feel comfortable asking these questions&quot; <a class="header-anchor" href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/">#</a></h2> <p>I think you'd be surprised at what interviewers can and are willing to share.</p> <p>Remember, you're trying to start a conversation, not perform corporate espionage<sup class="footnote-ref"><a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" id="fnref2">[2]</a></sup>. It's perfectly reasonable to want to know if you're going to be spending your time solving problems or putting out fires.</p> <p>If you're worried about non-disclosure, just say that! &quot;I'd like to hear a little bit about your tech stack, if that's permitted,&quot; or &quot;if this topic is confidential, we can talk about something else.&quot; Any experienced interviewer should know where the line is.</p> <p>That said, respect that line. Be interested, not nosy.</p> <p>Oh, and if you're anxious that you'll offend your interviewer by asking these types of questions, let me just say you can't do any worse than candidates who ask softball questions or no questions at all.<sup class="footnote-ref"><a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" id="fnref3">[3]</a></sup></p> <h2 id="i-m-new-how-can-i-ask-these-questions-if-i-haven-t-experienced-them-myself" tabindex="-1">&quot;I'm new. How can I ask these questions if I haven't experienced them myself?&quot; <a class="header-anchor" href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/">#</a></h2> <p>You don't need deep experience to have a conversation between peers, and you don't need to have solved any of these issues yourself. In fact, think twice before offering solutions. They should hire you for that!</p> <p>By flipping the script, you're getting valuable insight into how the team or company operates. Just be sure you're actively listening and look for opportunities to ask follow-up questions. Maybe you've never had a job with an oncall rotation. Great! You're about to hear about what it's like <em>here</em>. Maybe you haven't had to gather requirements on your own. Awesome! You're about to hear how they do that <em>here</em>.</p> <p>You're not doing anything different than your interviewers are by asking <a href="https://en.wikipedia.org/wiki/Situation,_task,_action,_result">STAR-style questions</a>. You're just leaving out that &quot;tell me about a time when—&quot; part.</p> <p>And if your interviewer does ask about your own experience, you can always say something like &quot;I haven't experienced that situation yet myself, so I'm interested how it's done here.&quot;</p> <p>All of that said, you should probably work on having opinions. More on that in future post.</p> <h2 id="i-don-t-think-i-can-keep-a-conversation-going" tabindex="-1">&quot;I don't think I can keep a conversation going&quot; <a class="header-anchor" href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/">#</a></h2> <p>Please don't be mad, but I don't believe you.</p> <p>Why? Because you're in tech, and tech folk LOVE to talk. They have <em>opinions.</em> You've never debated the merits of some language or framework or Linux flavor with your classmates? You've never spent a team lunch discussing how to deal with some gnarly legacy code? Server vs. client-side rendering? &quot;ɡɪf&quot; vs. &quot;jɪf&quot;?</p> <p>One of my teams spent part of an afternoon talking about whether one should ever put comments in their code.</p> <p>You can do this because you've already done this. Take advantage of this energy! Leverage the addictive properties of <em>tech discourse!</em></p> <p>Now you've found some common ground. You're no longer the candidate who crammed on CS fundamentals all weekend vs. the interviewer who hasn't thought about topological sorting since their own interview and is preoccupied with why the server cluster needs restarted every day at noon. Now you're compatriots, fellow travelers — peers, even!</p> <p>By asking questions that imply you're interested in discussing and solving problems, you're signaling that you're not just keen to get a job, but you're someone they should want to work with.</p> <p>And to return to the dating analogy: how do you know when a date is going well? Flowing, engaging <em>conversation</em>.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Mostly front-end, sometimes full-stack. Although it's tough to be only front-end these days, especially if you want any say in things like data contracts and APIs. <a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" class="footnote-backref">↩︎</a></p> </li> <li id="fn2" class="footnote-item"><p>A super-secret stealth-mode startup might balk at answering in detail. But then, they may not have actually built anything significant yet (and if they have, it could be bootstrapped with hot glue and duct tape). <a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" class="footnote-backref">↩︎</a></p> </li> <li id="fn3" class="footnote-item"><p>And if you're around long enough, you're guaranteed to encounter folks that radiate some truly toxic vibes. Better to discover this now before you accept an offer. <a href="https://delimiter.dev/2024/01/04/stop-trying-to-get-hired-and-start-becoming-someone-people-want-to-work-with/" class="footnote-backref">↩︎</a></p> </li> </ol> </section> </content>
</entry>
<entry>
<title>How To Be More Interesting During A Technical Interview</title>
<link href="https://delimiter.dev/2023/12/21/how-to-be-more-interesting-during-a-technical-interview/"/>
<updated>2023-12-21T00:00:00Z</updated>
<id>https://delimiter.dev/2023/12/21/how-to-be-more-interesting-during-a-technical-interview/</id>
<content type="html"><p>Originally written in 2018, revised for 2023, a year notable for Big Tech layoffs and industry disruption.</p> <hr> <p><em>“Do you have any questions for me before we wrap up?”</em></p> <p>This your chance to make a lasting impression on your interviewer. It’s an opportunity to show your prospective employer you're interested in solving real problems, not just in getting a job. That you care about the humans at the opposite end of the tech stack.</p> <p>It’s also a chance to learn something about how your prospective employer operates. Maybe there’s a pain point you can help address, or a process gap you can help fill. Maybe you’ll see some patterns that indicate how happy — or miserable — you’ll be if you accept an offer.</p> <p>After 20 years of interviewing candidates, the ones I remembered were the ones who tried to engage me in a conversation about things I cared about. Below are some conversation starters I jotted down from memory. Feel free to use them, and create your own.</p> <hr> <p>What’s your worst day like here? How do you manage it?</p> <p>If you could change one thing about your tech stack, what would it be? What’s blocking you from implementing this change?</p> <p>What are some common pain points for your customers? Are you working towards solving them? Why or why not?</p> <p>How do you respond to customer complaints? Do you have a system for customer-reported issues? How has that been working for you?</p> <p>How does your team handle requests for new features? Do you have a process?</p> <p>How do you evaluate new technology for use? What are your criteria for adoption?</p> <p>I see from your source code/press release/company blog that you’ve adopted [a particular technology]. What decisions led you to that adoption? How successful has it been?</p> <p>Tell me about your deployment methodology. Are you able to do continuous deployment? If so, how? If not, what is your release schedule like and what determines it?</p> <p>How does your team handle code reviews? Do you have standards or criteria for reviews?</p> <p>When was the last time your company or team had to migrate to a new tech stack? How did you approach this? Would you do anything differently now?</p> <p>What’s one thing someone would need to know to be successful here?</p> </content>
</entry>
</feed>