<?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: Pablo Oliva</title>
    <description>The latest articles on DEV Community by Pablo Oliva (@pablooliva).</description>
    <link>https://dev.to/pablooliva</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F167775%2Fd78794f2-2115-47fc-8891-3632c5c47a6f.jpeg</url>
      <title>DEV Community: Pablo Oliva</title>
      <link>https://dev.to/pablooliva</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pablooliva"/>
    <language>en</language>
    <item>
      <title>A Frontend Dev's Guide for Learning AI</title>
      <dc:creator>Pablo Oliva</dc:creator>
      <pubDate>Mon, 24 Mar 2025 22:11:32 +0000</pubDate>
      <link>https://dev.to/pablooliva/a-frontend-devs-guide-to-playing-with-and-learning-ai-14gh</link>
      <guid>https://dev.to/pablooliva/a-frontend-devs-guide-to-playing-with-and-learning-ai-14gh</guid>
      <description>&lt;p&gt;AI, and more specifically LLMs, have me really pumped. I am more excited today than I was when I first started working with SPAs and feeling the potential that client-side development opened up for us web developers. For me, the excitement comes from being able to leverage very powerful tools to build cool, effective and useful stuff. For the last one and a half years I have buried myself in AI as much as possible, because AI now gives us developers so much more power to build.&lt;/p&gt;

&lt;p&gt;It is not only challenging trying to get up to speed in this new domain, but even more so trying to stay current with the euphoric level of development and constant changes happening.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build a Foundation
&lt;/h2&gt;

&lt;p&gt;Dive deep and keep swimming! It can be intimidating, even for someone who has plenty of development experience, to jump into the realm of [insert whatever aspect of AI that you find challenging here].&lt;/p&gt;

&lt;h3&gt;
  
  
  Get Started
&lt;/h3&gt;

&lt;p&gt;These are some of the resources that helped me get started.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@jamesbriggs" rel="noopener noreferrer"&gt;https://www.youtube.com/@jamesbriggs&lt;/a&gt; - has plenty of "starter" tutorials&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@LangChain" rel="noopener noreferrer"&gt;https://www.youtube.com/@LangChain&lt;/a&gt; - a popular library and tooling for building AI apps, they connect very well with developers and make everything super accessible&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.deeplearning.ai/" rel="noopener noreferrer"&gt;https://www.deeplearning.ai/&lt;/a&gt; - founded by the great Andrew Ng (I have so much gratitude for this man), there are free courses on a wide range of AI/LLM topics&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.coursera.org/learn/ai-for-everyone" rel="noopener noreferrer"&gt;https://www.coursera.org/learn/ai-for-everyone&lt;/a&gt; - also by Andrew Ng, and I think the title is self-explanatory&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.coursera.org/specializations/ai-for-good" rel="noopener noreferrer"&gt;https://www.coursera.org/specializations/ai-for-good&lt;/a&gt; - goes into a more complete lifecycle for building an AI application&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Keep Building
&lt;/h3&gt;

&lt;p&gt;These resources help you go deeper.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://huggingface.co/learn/nlp-course/" rel="noopener noreferrer"&gt;https://huggingface.co/learn/nlp-course/&lt;/a&gt; - I would agree with the suggestion found on the landing page that you not start with this course, but only after gaining some basic understanding from the courses by DeepLearning.AI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@AndrejKarpathy" rel="noopener noreferrer"&gt;https://www.youtube.com/@AndrejKarpathy&lt;/a&gt; - if you still do not know who Andrej is, you will soon know and come to appreciate him&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@3blue1brown" rel="noopener noreferrer"&gt;https://www.youtube.com/@3blue1brown&lt;/a&gt; - masterfully produced learning material&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.dailydoseofds.com/" rel="noopener noreferrer"&gt;https://www.dailydoseofds.com/&lt;/a&gt; - a newsletter with tutorials that go a bit deeper, sometimes in multi-part series&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.deeplearning.ai/the-batch/" rel="noopener noreferrer"&gt;https://www.deeplearning.ai/the-batch/&lt;/a&gt; - a newsletter by Andrew Ng&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Staying Current
&lt;/h2&gt;

&lt;p&gt;These resources help me stay current with the constant churn of changes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@WesRoth" rel="noopener noreferrer"&gt;https://www.youtube.com/@WesRoth&lt;/a&gt; - for an overview of advancements in the AI space, covers tools, research papers, and general goings-on in the industry&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@AZisk" rel="noopener noreferrer"&gt;https://www.youtube.com/@AZisk&lt;/a&gt; - hardware&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@NetworkChuck" rel="noopener noreferrer"&gt;https://www.youtube.com/@NetworkChuck&lt;/a&gt; - software and tools, mostly open source stuff you can run locally&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.latent.space/podcast" rel="noopener noreferrer"&gt;https://www.latent.space/podcast&lt;/a&gt; - the one podcast I make sure not to miss&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://newsletter.danielmiessler.com/" rel="noopener noreferrer"&gt;https://newsletter.danielmiessler.com/&lt;/a&gt; - his newsletter covers security and AI, creator of &lt;a href="https://github.com/danielmiessler/fabric" rel="noopener noreferrer"&gt;https://github.com/danielmiessler/fabric&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://simonwillison.net/" rel="noopener noreferrer"&gt;https://simonwillison.net/&lt;/a&gt; - well known in AI circles, creator of &lt;a href="https://github.com/simonw/llm" rel="noopener noreferrer"&gt;https://github.com/simonw/llm&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bensbites.com/" rel="noopener noreferrer"&gt;https://bensbites.com/&lt;/a&gt; - a newsletter that shares new tools and community projects&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Get Your Hands Dirty
&lt;/h2&gt;

&lt;p&gt;Install and play with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;https://ollama.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.openwebui.com/" rel="noopener noreferrer"&gt;https://docs.openwebui.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/danielmiessler/fabric" rel="noopener noreferrer"&gt;https://github.com/danielmiessler/fabric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/simonw/llm" rel="noopener noreferrer"&gt;https://github.com/simonw/llm&lt;/a&gt; - read the section on "files-to-prompt" &lt;a href="https://simonwillison.net/2025/Feb/14/" rel="noopener noreferrer"&gt;https://simonwillison.net/2025/Feb/14/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Starter Project
&lt;/h3&gt;

&lt;p&gt;Create an enterprise level RAG application, and I do not mean just copy and paste from any of the number of tutorials online, I mean set something up for hundreds of potential users, for a variety of different documents, documents that are image heavy, running off of a vector DB with your own chunking strategy properly implemented. Use Open WebUI (&lt;a href="https://docs.openwebui.com/" rel="noopener noreferrer"&gt;https://docs.openwebui.com/&lt;/a&gt;) as the "UI" and then use a "function" or "pipeline" to integrate your RAG implementation. Consider using Azure Cloud infrastructure, I think you get 3 months free for new accounts, so that you can scale up the availability of GPU intensive computation and avoid having to pay for a GPU-enabled VPS. I learned a lot implementing at my day job what I at first thought was something for amateurs. There are a lot of hurdles that you will need to jump through here, and you will learn a lot in the process.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>rag</category>
    </item>
    <item>
      <title>Search for Answers like a Pro</title>
      <dc:creator>Pablo Oliva</dc:creator>
      <pubDate>Mon, 10 Oct 2022 21:00:06 +0000</pubDate>
      <link>https://dev.to/pablooliva/search-for-answers-like-a-pro-bae</link>
      <guid>https://dev.to/pablooliva/search-for-answers-like-a-pro-bae</guid>
      <description>&lt;h2&gt;
  
  
  TLDR; use this &lt;a href="https://github.com/pablooliva/slice-search"&gt;extension&lt;/a&gt; to get better search results.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Backstory
&lt;/h3&gt;

&lt;p&gt;Google and the other search engines typically do a good job, in varying degrees, of providing you with relevant search results. What I found myself doing recently was unconsciously filtering these results. I was picking out the domains that I have come to know that provide higher quality technical content. This was possible and an automatic behavior of mine after several years of working with the same languages and frameworks and getting to know the community very well. &lt;/p&gt;

&lt;p&gt;This automatic but manual filter that I apply to search engine results helps me get answers quicker and in turn, improve my performance. After realizing this behavior of mine, two additional questions crossed my mind. First, I questioned why I was doing this "manually" and as any good developer would do, wondered how I could automate or improve this process further. Second, I thought about how I could I share my knowledge with the community to help more junior developers gain the same advantage I had acquired purely from spending more time in the mix.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;To tackle the first question of how to improve the process, my first thought was I could easily append some &lt;a href="https://support.google.com/websearch/answer/2466433?visit_id=637966191415440706-995071312&amp;amp;rd=1"&gt;search syntax&lt;/a&gt; to the query to limit my searches to a list of accepted domains. This functionality could potentially be added to the omnibar with a browser extension. After exploring the idea further, I thought that it would be even better if we could customize a search engine to get the results we need. It turns out, that is exactly what Google offers, a &lt;a href="https://developers.google.com/custom-search"&gt;Programmable Search Engine&lt;/a&gt; that allows you to include and exclude sites from a search.&lt;/p&gt;

&lt;p&gt;You can configure multiple Google custom search engines with a Google account. Google also provides you with a related generic URL that you can pass a custom-search-engine-id and query to, that then provides you with a result page of filtered results based on the sites that you have included or excluded for that custom search engine. This made creating a browser extension that links a search from the omnibar to these results easy. That is how &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/slice-custom-search/"&gt;Slice Custom Search&lt;/a&gt; came to life.&lt;/p&gt;

&lt;p&gt;Instructions are available for how to set up the Google Programmable Search Engine and the Firefox extension in the &lt;a href="https://github.com/pablooliva/slice-search"&gt;GitHub repo&lt;/a&gt;. If enough interest exists, I can also work on overcoming the challenges of the Manifest v3 that Google &lt;a href="https://news.ycombinator.com/item?id=29502439"&gt;controversially&lt;/a&gt; requires, so that a Chrome extension also becomes available.&lt;/p&gt;

&lt;p&gt;Creating the extension and enabling the functionality to search a sub-set of quality domains was not enough though. I still had a second question pending: how to share the domains that were higher quality? This was answered by the ability of Google's Programmable Search Engine to accept a tab delimited list of domains used to configure the custom search engine. This makes it super easy for us to come up with community curated lists that we can share. I have provided an initial set of lists for TypeScript, JavaScript, RxJS and Angular, also available in the &lt;a href="https://github.com/pablooliva/slice-search/tree/main/gpse-config"&gt;repo&lt;/a&gt;. I encourage others to submit pull requests for new lists or improvements to the existing lists.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;If you are like me, constantly needing to refresh myself on a particular programming detail, then I hope this extension along with Google's help, helps you as much as it does me.&lt;/p&gt;

&lt;p&gt;As a final note, it would be nice if other search engines provided this type of customization of search results. My opinion is that Google has too much influence in our field and more options would be welcome.&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@hadijasaidi?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Hadija Saidi&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/answers?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Has COVID-19 made you reconsider your life choices? Do something more meaningful as a software developer.</title>
      <dc:creator>Pablo Oliva</dc:creator>
      <pubDate>Sun, 26 Apr 2020 13:50:59 +0000</pubDate>
      <link>https://dev.to/pablooliva/has-covid-19-made-you-reconsider-your-life-choices-do-something-more-meaningful-as-a-software-developer-46gc</link>
      <guid>https://dev.to/pablooliva/has-covid-19-made-you-reconsider-your-life-choices-do-something-more-meaningful-as-a-software-developer-46gc</guid>
      <description>&lt;p&gt;I know that me personally, given all the challenges that we have to live with on a daily basis during this crisis, if I was not working on something meaningful, I would be in real trouble trying to maintain my level of performance and engagement at work. Luckily though, we as software developers have a tremendous amount of freedom to choose what we work on and with who. I believe that the challenges that we are going through now and the restrictions that have been placed on our lives by the pandemic has made a lot of us think a little deeper about what we really value. Despite COVID-19 being a clear immediate danger, we need to keep in mind that there are plenty of other issues lurking in society that are more permanent and on the same scale as the virus.&lt;/p&gt;

&lt;p&gt;One such issue is &lt;a href="https://www.youtube.com/watch?v=1CZL3JZGLKY"&gt;climate change&lt;/a&gt;. Climate change has the potential and likelihood to &lt;a href="https://www.newsweek.com/un-secretary-general-says-climate-change-devastation-will-many-times-greater-coronavirus-1499304"&gt;rock our lives more consistently&lt;/a&gt; and to a greater degree than this virus has. Choosing to focus your skills to fight climate change would not only give your work more meaning, but it would help us avoid future scenarios that would be repeats of the type of disruption we are living through now.&lt;/p&gt;

&lt;p&gt;Fighting climate change as a software developer can happen in many different forms. You could find a job, like I did, working for a company directly involved in mitigating climate change. You could work on a personal side project or support an open-source project that somehow contributes to fighting climate change. With your current company, you could also push for the greening of the technology or tools that you use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Find a job fighting climate change
&lt;/h2&gt;

&lt;p&gt;Probably, the most impact you could have fighting climate change is by finding a job working for a company or organization that is fighting climate change as a part of its mission. This field is growing and there are a lot of opportunities. When I made the decision last year to find such a job, it took me less than 2 months to do so. If this is something that you are considering, I created a &lt;a href="https://dev.to/pablooliva/how-i-decided-to-fight-climate-change-as-a-software-developer-89n"&gt;step-by-step guide to finding a job fighting climate change a software developer&lt;/a&gt; to help you. Recently, I also came across &lt;a href="https://medium.com/@leventov/how-to-find-a-job-in-a-tech-company-helping-to-combat-climate-change-practical-guide-e212e262a32"&gt;this post&lt;/a&gt; discussing the same issue and offering additional resources.&lt;/p&gt;

&lt;p&gt;I know that switching jobs is a big move and requires some sacrifice, but I can tell you from personal experience if you plan and go about the process thoughtfully, you will find work easier than you expected and you will find like-minded peers that share your passions and motivations beyond technology and software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Work on a side project that fights climate change
&lt;/h2&gt;

&lt;p&gt;An easier leap to make than switching jobs would be to either develop a personal idea that somehow fights climate change or support an open-source project that does so.&lt;/p&gt;

&lt;p&gt;I am certain that we are all creative people and ideas for new projects abound. Personal side projects can tackle climate change from any angle, anything helps. For example, a few months ago I discovered that Siemens was supporting the Adani coal mining project in Australia. There was a lot of pressure on Siemens to cancel their involvement, but they refused. I was furious because I had just bought several new &lt;a href="https://twitter.com/pablooliva/status/1217054070831296512"&gt;Siemens home appliances&lt;/a&gt; and this was not the type of company that I wanted to support. I did not want to forget this rage, so I thought about creating a &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/never-again-ext/"&gt;browser extension&lt;/a&gt; that would highlight the Siemens name on any web page that I visited with a pop-up reminding me of what they had done. I know on some level this is a silly idea and maybe not that useful to the general public, but the bigger goal is to grow this extension beyond Siemens to highlight the most egregious offenders by providing us with a constant reminder of how these companies have behaved. I have other ideas that are not fully flushed out, but I think I can turn this into something useful. At the very least, it is something very visible that shows Siemens that I will not let myself forget what they have done. I believe that small drops of resistance eventually lead to larger changes.&lt;/p&gt;

&lt;p&gt;This extension is something that I continue to work on and it helps me to channel my frustrations and passions. I even &lt;a href="https://dev.to/pablooliva/using-ts-and-npm-packages-to-create-a-browser-extension-4375"&gt;learned a few things&lt;/a&gt; working on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Support an open-source project or volunteer your time
&lt;/h2&gt;

&lt;p&gt;If you are not driven to create a project on your own, there are plenty of open-source projects that need support. You can find some of these on &lt;a href="https://github.com/topics/climate-change"&gt;Github&lt;/a&gt; of course, but keep an eye out for reputable organizations supporting open-source solutions, like the Linux Foundation with their &lt;a href="https://www.lfenergy.org/projects/"&gt;LFEnergy project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are even &lt;a href="https://techimpactmakers.com/"&gt;organizations and groups&lt;/a&gt; that have sprung up to help direct our climate-change-fighting energies as software developers yearning to write and apply code towards the cause.&lt;/p&gt;

&lt;p&gt;In case you are more inclined to become politically involved, there are groups like &lt;a href="https://rebellion.earth/join-us/"&gt;Extinction Rebellion&lt;/a&gt; that need help with finding solutions to some very challenging technical problems. Check out this interesting talk given at the Chaos Computer Club's 2019 36C3 conference where the solutions for &lt;a href="https://media.ccc.de/v/36c3-11008-server_infrastructure_for_global_rebellion"&gt;Extinction Rebellion's sysadmin, systems and security architecture are discussed&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consider the tools you use, improve your work environment
&lt;/h2&gt;

&lt;p&gt;As software developers, we have influence over the infrastructure that runs our code and the tools that we use to develop and run our projects. One thing we could advocate, for example, is the hosting of our applications in data centers powered by clean energy. Two such hosts are &lt;a href="https://flokinet.is/"&gt;Flokinet&lt;/a&gt; and &lt;a href="https://datacenterlight.ch/"&gt;Data Center Light&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, what we can be doing &lt;a href="https://climatechoice.co/"&gt;personally to fight climate change&lt;/a&gt; can also be applied to our office environments. If having in-depth discussions about climate change and the solutions that can be implemented at work is too much for you, you can simply remind your co-workers that certain actions are wasteful, like leaving the lights on in an empty office or the company supplying the employees with water from single-use plastic bottles. Remember, all actions add up.&lt;/p&gt;




&lt;p&gt;Unfortunately I am not smart enough to come up with a mind-blowing idea that will help us fight climate change, but I hope that I am able to motivate some of you to take both large and small steps that are tangible and lead you to live more fulfilling lives that are in line with your personal values. What I have outlined here will help you do so and it will also directly help us avoid future scenarios similar to this pandemic that may have lead you here in the first place.&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@markusspiske?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Markus Spiske&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/virus?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>covid19</category>
      <category>pandemic</category>
    </item>
    <item>
      <title>Use TypeScript and npm packages to create a browser extension</title>
      <dc:creator>Pablo Oliva</dc:creator>
      <pubDate>Sun, 19 Apr 2020 22:37:30 +0000</pubDate>
      <link>https://dev.to/pablooliva/using-ts-and-npm-packages-to-create-a-browser-extension-4375</link>
      <guid>https://dev.to/pablooliva/using-ts-and-npm-packages-to-create-a-browser-extension-4375</guid>
      <description>&lt;p&gt;If you look at the resulting browser extension, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/never-again-ext/"&gt;Never Again&lt;/a&gt;, you will immediately notice that it is very political in nature. I'll leave my personal motivation for creating this extension for another post. Here I would just like to cover the technical aspects of putting this together since I thought that it was interesting to do develop the extension with TypeScript and a couple of npm packages. You can find a lot of resources on how to create a browser extension, but none, at least that I found, helps you do so with TypeScript and npm packages.&lt;/p&gt;

&lt;p&gt;First, let me tell you that creating a browser extension is relatively easy. You can simply use all the common technologies that we already use for creating web front-ends, i.e. JS, CSS and HTML, and apply them towards the making of your extension. For details about how to do this, I recommend using &lt;a href="https://extensionworkshop.com/"&gt;Mozilla's browser extension development guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The idea that I had for an extension was to highlight all instances of a word found on a webpage and on hover, present a small overlay with additional information. I figured that both the highlighting and the overlay should already be available as npm packages, but it was unclear to me how I would bundle that into the JS for this extension. At the same time, I wanted the comfort and feeling of safety I have grown to love when developing with TypeScript, but I wasn't sure how to pull that in as well. It took me a little bit to find the right solution, but one part of the magic to all this occurred with &lt;a href="https://parceljs.org/"&gt;Parcel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Parcel, a "zero configuration web application bundler," is super easy to use. My previous bundling experience was with Webpack, and that is definitely not zero configuration. With a simple npm script, I pointed Parcel to an index.html file that linked to my TS file and the JavaScript was magically delivered. Parcel bundled the two npm packages that I imported in my TS file, and it then also transpiled the TS into JS. There was additional administrative work that needed to be done such as moving and renaming of files so that I could provide the necessary assets for my extension in the format required by the browsers, but this was done through a series of npm scripts. It is also important to note that the index.html file is really just a dummy file that ends up not being used for the extension directly, but it was required as an entry point for Parcel. If you look at the manifest.json file, the file used to register the components of a browser extension, you will not see any mention of index.html.&lt;/p&gt;

&lt;p&gt;The code is available on &lt;a href="https://github.com/pablooliva/neveragain"&gt;GitHub&lt;/a&gt; so that you can look at the details. I hope that this set up helps someone else to leverage the power of TypeScript and the npm ecosystem to bring their ideas for an extension to life.&lt;/p&gt;

&lt;p&gt;The extension is available for both &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/never-again-ext/"&gt;Firefox&lt;/a&gt; and &lt;a href="https://chrome.google.com/webstore/detail/never-again/gannokoammjcfdfeoamgcfnidpdnlocc"&gt;Chrome&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@ryanquintal?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Ryan Quintal&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/legos?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>npm</category>
      <category>browserextensions</category>
      <category>parcel</category>
    </item>
    <item>
      <title>How I Decided to Fight Climate Change as a Software Developer</title>
      <dc:creator>Pablo Oliva</dc:creator>
      <pubDate>Wed, 15 May 2019 07:57:40 +0000</pubDate>
      <link>https://dev.to/pablooliva/how-i-decided-to-fight-climate-change-as-a-software-developer-89n</link>
      <guid>https://dev.to/pablooliva/how-i-decided-to-fight-climate-change-as-a-software-developer-89n</guid>
      <description>&lt;p&gt;tl;dr - In short, I assembled an effective process for identifying climate-change-fighting companies to work for. This included some unique tactics which I know led directly to me being hired in less than 1.5 months. My process helped me find and focus on 5 companies, expressed interest in 2, which resulted in 1 interview (phone and then an in-person) and an offer a few days later. The step-by-step process is available as a checklist: &lt;a href="https://ch.ckl.st/r/find-a-job-fighting-climate-change-as-a-software-developer" rel="noopener noreferrer"&gt;https://ch.ckl.st/r/find-a-job-fighting-climate-change-as-a-software-developer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nothing meaningful happens instantly, but we have to work and fight for something better. Read on...&lt;/p&gt;

&lt;h1&gt;
  
  
  October 2018, A Turning Point
&lt;/h1&gt;

&lt;p&gt;Last October, the &lt;a href="http://report.ipcc.ch/sr15/pdf/sr15_spm_final.pdf" rel="noopener noreferrer"&gt;IPCC released a report on climate change&lt;/a&gt; that really shook me.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/1CZL3JZGLKY" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpablooliva.de%2Fexternal_assets%2Fipcc-report-scary.png" alt="Why the IPCC Report is so Scary"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The road that led me to be concerned about climate change started farther back though. In the last couple of years, becoming a father really helped me mature, or at least made me less selfish. As a child myself I remember learning about how we were destroying the environment. Sadly, not much has changed for the better in the last 30+ years since my childhood. The report made me reconsider what I was doing with my life, made me re-evaluate what I have kept hearing my entire life in regards to the looming danger posed by climate change, and made me realize that I can no longer turn away from the harsh reality that we are facing. The party is over!&lt;/p&gt;

&lt;p&gt;At the time that the IPCC report was released, I was working on &lt;a href="https://ch.ckl.st/" rel="noopener noreferrer"&gt;a checklist app&lt;/a&gt; as a step towards developing a more robust application for helping job seekers organize and be more effective in their job search. I decided to leverage what I had been working on to help me pave the way for others to fight climate change in every way they can. By December, the app was in a usable state.&lt;/p&gt;

&lt;p&gt;First I created a short checklist for taking &lt;a href="https://ch.ckl.st/r/how-to-fight-climate-change" rel="noopener noreferrer"&gt;simple steps in our personal lives to fighting climate change&lt;/a&gt;. My family and I followed these steps ourselves, though we had already cut back, if not close to entirely cut out, eating meat. Meanwhile, I kept trying to figure out what else I could do to do more towards the fight.&lt;/p&gt;

&lt;h1&gt;
  
  
  Dump Your Meaningless Job
&lt;/h1&gt;

&lt;p&gt;During this period, as I sat through my scrum daily meetings and my team and I discussed the details of the tasks that we were working on, I realized that the shit that we were producing made no difference to the quality of anyone's life, and was far from having any impact on alleviating climate change. It did not matter what I accomplished professionally or how much money I made if at the end of my life I ended up leaving my children, and all other children, with a planet turned into a real life nightmare, or well on its way towards that. Every day I wondered if I was the only one &lt;a href="https://www.quora.com/What-does-Thoreaus-quote-mean-The-mass-of-men-lead-lives-of-quiet-desperation-and-go-to-the-grave-with-the-song-still-in-them" rel="noopener noreferrer"&gt;living a life of quiet desperation&lt;/a&gt;. The comfort of my stable and stress-free job was no longer enough.&lt;/p&gt;

&lt;p&gt;I created a plan and set out on finding more meaningful work, work that would help me devote my energy towards fighting climate change. I turned the &lt;a href="https://ch.ckl.st/r/find-a-job-fighting-climate-change-as-a-software-developer" rel="noopener noreferrer"&gt;plan into a checklist&lt;/a&gt; with the hope that others could duplicate my results. The results for me were nothing less than astonishing. Maybe it was the fact that I quit my job before having something else lined up, and I am sure that resulted in some extra motivation and focus, but by following the steps in the checklist I was able to "easily" find work that aligned with my desire to continue doing software development but in an area that contributed towards the fight against climate change.&lt;/p&gt;

&lt;h1&gt;
  
  
  Moving Forward
&lt;/h1&gt;

&lt;p&gt;Not everyone will have the same results as I did. Everyone's situation is unique. What is not unique and applies to everyone though is the reality that we are destroying our only home.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/3i2y4sEQpRI" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpablooliva.de%2Fexternal_assets%2Fthe-pale-blue-dot.png" alt="We Are Here: The Pale Blue Dot HD"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How we live and what we do with our time is under our control. How we live on this planet in its entirety is a creation of ours. We can do better. If we stop being cowards, lazy, apathetic and start being just a little more creative, hopeful and get off our asses we can change the course of history. Start by taking just &lt;a href="https://ch.ckl.st/r/how-to-fight-climate-change" rel="noopener noreferrer"&gt;one step forward&lt;/a&gt;. Then, take the next one. After that, do not stop taking steps in the right direction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/JDcro7dPqpA?t=1114" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpablooliva.de%2Fexternal_assets%2Fgreen-new-deal.png" alt="Green New Deal: Last Week Tonight with John Oliver (HBO)"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>climatechange</category>
    </item>
  </channel>
</rss>
