<?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: Marceli Pawliński</title>
    <description>The latest articles on DEV Community by Marceli Pawliński (@marceli).</description>
    <link>https://dev.to/marceli</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%2F4167446%2Fc3b4c9e9-5348-4248-9a2b-3a55bf414e73.jpg</url>
      <title>DEV Community: Marceli Pawliński</title>
      <link>https://dev.to/marceli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marceli"/>
    <language>en</language>
    <item>
      <title>Curiosity Over Comfort</title>
      <dc:creator>Marceli Pawliński</dc:creator>
      <pubDate>Tue, 06 Oct 2026 21:47:16 +0000</pubDate>
      <link>https://dev.to/marceli/curiosity-over-comfort-5cki</link>
      <guid>https://dev.to/marceli/curiosity-over-comfort-5cki</guid>
      <description>&lt;h1&gt;
  
  
  I’m More Interested in Why Things Break Than Why They Work
&lt;/h1&gt;

&lt;p&gt;I don’t think I became interested in technology because I wanted to build apps.&lt;/p&gt;

&lt;p&gt;I think I became interested because I wanted to understand things.&lt;/p&gt;

&lt;p&gt;There’s a difference.&lt;/p&gt;

&lt;p&gt;When something works exactly as expected, there usually isn’t much mystery left.&lt;/p&gt;

&lt;p&gt;You press a button, something happens, and you move on.&lt;/p&gt;

&lt;p&gt;But when something breaks, everything becomes more interesting.&lt;/p&gt;

&lt;p&gt;Why did it fail?&lt;/p&gt;

&lt;p&gt;Was the assumption wrong?&lt;/p&gt;

&lt;p&gt;Was the system badly designed?&lt;/p&gt;

&lt;p&gt;Did someone trust something they shouldn’t have?&lt;/p&gt;

&lt;p&gt;Was the problem in the interface, the network, the database, the user, or somewhere deeper?&lt;/p&gt;

&lt;p&gt;That way of thinking has probably shaped most of what I build.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Like the Parts People Usually Ignore
&lt;/h2&gt;

&lt;p&gt;A lot of software is designed to hide complexity.&lt;/p&gt;

&lt;p&gt;That is normally a good thing.&lt;/p&gt;

&lt;p&gt;Most people do not care how a request is routed, how authentication is validated, how a database transaction is handled or how an AI model receives context.&lt;/p&gt;

&lt;p&gt;They just want the thing to work.&lt;/p&gt;

&lt;p&gt;I tend to get interested in the hidden part.&lt;/p&gt;

&lt;p&gt;I want to know what happens between clicking a button and getting a result.&lt;/p&gt;

&lt;p&gt;I want to know what happens when that process is interrupted.&lt;/p&gt;

&lt;p&gt;I want to know what assumptions the developer made and what happens if those assumptions are wrong.&lt;/p&gt;

&lt;p&gt;That is part of why cybersecurity became interesting to me.&lt;/p&gt;

&lt;p&gt;Security often lives in the gap between what a system appears to do and what it actually allows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Things Is Mostly Discovering What You Don’t Know
&lt;/h2&gt;

&lt;p&gt;One of the strangest things about programming is that the more I learn, the less I feel like I know.&lt;/p&gt;

&lt;p&gt;When I started building websites, a website felt fairly simple.&lt;/p&gt;

&lt;p&gt;Frontend.&lt;/p&gt;

&lt;p&gt;Backend.&lt;/p&gt;

&lt;p&gt;Database.&lt;/p&gt;

&lt;p&gt;Done.&lt;/p&gt;

&lt;p&gt;Then you start learning about authentication, caching, queues, rate limits, browser behaviour, network failures, accessibility, search engines, deployment, monitoring, observability and security.&lt;/p&gt;

&lt;p&gt;Suddenly a “simple website” doesn’t seem simple anymore.&lt;/p&gt;

&lt;p&gt;The same thing happened when I started experimenting with AI.&lt;/p&gt;

&lt;p&gt;At first, the interesting part was the model.&lt;/p&gt;

&lt;p&gt;Which one is smarter?&lt;/p&gt;

&lt;p&gt;Which one is faster?&lt;/p&gt;

&lt;p&gt;Which one can run locally?&lt;/p&gt;

&lt;p&gt;Eventually the model became only one small part of the problem.&lt;/p&gt;

&lt;p&gt;A model can be extremely intelligent and still be useless if the system around it is badly designed.&lt;/p&gt;

&lt;p&gt;It needs context.&lt;/p&gt;

&lt;p&gt;It needs tools.&lt;/p&gt;

&lt;p&gt;It needs boundaries.&lt;/p&gt;

&lt;p&gt;It needs a way to fail safely.&lt;/p&gt;

&lt;p&gt;It needs to know what it is allowed to do.&lt;/p&gt;

&lt;p&gt;That is where things get much more interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Don’t Really Separate Learning From Building
&lt;/h2&gt;

&lt;p&gt;I’ve never been very good at learning something just because I’m supposed to know it.&lt;/p&gt;

&lt;p&gt;I understand things much better when I need them.&lt;/p&gt;

&lt;p&gt;If I need a database for a project, I learn about databases.&lt;/p&gt;

&lt;p&gt;If authentication breaks, I learn more about authentication.&lt;/p&gt;

&lt;p&gt;If a website is slow, I start learning about performance.&lt;/p&gt;

&lt;p&gt;If a deployment fails, I learn what the infrastructure is actually doing.&lt;/p&gt;

&lt;p&gt;That process is sometimes inefficient.&lt;/p&gt;

&lt;p&gt;I’ll probably make mistakes that someone with more experience would avoid immediately.&lt;/p&gt;

&lt;p&gt;But those mistakes normally stick with me.&lt;/p&gt;

&lt;p&gt;There is a big difference between reading that something is a bad idea and spending six hours discovering why it is a bad idea.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zenith Is Really an Excuse to Learn
&lt;/h2&gt;

&lt;p&gt;My main project, Zenith, is technically a website monitoring and improvement platform.&lt;/p&gt;

&lt;p&gt;But for me, it is also an excuse to keep exploring problems.&lt;/p&gt;

&lt;p&gt;Security.&lt;/p&gt;

&lt;p&gt;Performance.&lt;/p&gt;

&lt;p&gt;Accessibility.&lt;/p&gt;

&lt;p&gt;SEO.&lt;/p&gt;

&lt;p&gt;Infrastructure.&lt;/p&gt;

&lt;p&gt;Automation.&lt;/p&gt;

&lt;p&gt;AI.&lt;/p&gt;

&lt;p&gt;Databases.&lt;/p&gt;

&lt;p&gt;Product design.&lt;/p&gt;

&lt;p&gt;They all meet in one project.&lt;/p&gt;

&lt;p&gt;I could probably make Zenith much smaller and easier to build.&lt;/p&gt;

&lt;p&gt;That would also make it less interesting.&lt;/p&gt;

&lt;p&gt;I like projects that slowly force me outside what I already know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source Changed How I See Programming
&lt;/h2&gt;

&lt;p&gt;Building your own projects gives you complete control.&lt;/p&gt;

&lt;p&gt;That is both useful and dangerous.&lt;/p&gt;

&lt;p&gt;If something is badly designed, you can always rewrite everything around it.&lt;/p&gt;

&lt;p&gt;Open source removes that freedom.&lt;/p&gt;

&lt;p&gt;When you contribute to someone else’s project, the question is not:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How would I build this?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Why did they build it this way?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You have to understand before changing.&lt;/p&gt;

&lt;p&gt;You have to work with existing conventions.&lt;/p&gt;

&lt;p&gt;You have to think about the people who already depend on the code.&lt;/p&gt;

&lt;p&gt;I like that.&lt;/p&gt;

&lt;p&gt;It makes programming feel less like writing instructions for a computer and more like working inside a system built by people.&lt;/p&gt;

&lt;h2&gt;
  
  
  I’m Still Figuring Out What I Want to Become
&lt;/h2&gt;

&lt;p&gt;I’m interested in computer science, cybersecurity, AI and systems engineering.&lt;/p&gt;

&lt;p&gt;That is a fairly wide answer.&lt;/p&gt;

&lt;p&gt;For now, I’m okay with that.&lt;/p&gt;

&lt;p&gt;I don’t think I need to decide exactly what I want to specialise in yet.&lt;/p&gt;

&lt;p&gt;I would rather keep following the problems that make me curious.&lt;/p&gt;

&lt;p&gt;The common theme seems to be systems.&lt;/p&gt;

&lt;p&gt;Not just how to build them, but how they behave when something unexpected happens.&lt;/p&gt;

&lt;p&gt;That could mean security.&lt;/p&gt;

&lt;p&gt;It could mean infrastructure.&lt;/p&gt;

&lt;p&gt;It could mean AI systems.&lt;/p&gt;

&lt;p&gt;It could end up being something I haven’t discovered yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal Isn’t to Know Everything
&lt;/h2&gt;

&lt;p&gt;I used to think being good at technology meant knowing the answer.&lt;/p&gt;

&lt;p&gt;Now I think it is more about knowing what to do when you don’t.&lt;/p&gt;

&lt;p&gt;Can you break a problem apart?&lt;/p&gt;

&lt;p&gt;Can you find the part you don’t understand?&lt;/p&gt;

&lt;p&gt;Can you test your assumptions?&lt;/p&gt;

&lt;p&gt;Can you admit when an idea was wrong?&lt;/p&gt;

&lt;p&gt;Can you keep going when the first solution doesn’t work?&lt;/p&gt;

&lt;p&gt;That matters more to me now than memorising every framework or programming language.&lt;/p&gt;

&lt;p&gt;Technology changes too quickly for that anyway.&lt;/p&gt;

&lt;p&gt;There will always be another tool.&lt;/p&gt;

&lt;p&gt;Another language.&lt;/p&gt;

&lt;p&gt;Another model.&lt;/p&gt;

&lt;p&gt;Another platform.&lt;/p&gt;

&lt;p&gt;The useful part is learning how to learn.&lt;/p&gt;

&lt;p&gt;And preferably building something interesting while doing it.&lt;/p&gt;




&lt;p&gt;I’m Marceli Pawliński.&lt;/p&gt;

&lt;p&gt;I build software, experiment with AI, contribute to open source and spend an unreasonable amount of time trying to understand why things behave the way they do.&lt;/p&gt;

&lt;p&gt;Most of the time, the best place to start is when something breaks.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>About Me: Building, Breaking and Learning Through Software</title>
      <dc:creator>Marceli Pawliński</dc:creator>
      <pubDate>Tue, 06 Oct 2026 21:33:56 +0000</pubDate>
      <link>https://dev.to/marceli/about-me-building-breaking-and-learning-through-software-3el5</link>
      <guid>https://dev.to/marceli/about-me-building-breaking-and-learning-through-software-3el5</guid>
      <description>&lt;h1&gt;
  
  
  About Me: Building, Breaking and Learning Through Software
&lt;/h1&gt;

&lt;p&gt;Hi, I’m Marceli Pawliński.&lt;/p&gt;

&lt;p&gt;I’m a student from Scotland interested in computer science, cybersecurity, artificial intelligence and software engineering.&lt;/p&gt;

&lt;p&gt;Most of what I know has come from building things, breaking them, fixing them, and then realising there was probably a better way to build them in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Got Into Computing
&lt;/h2&gt;

&lt;p&gt;Computers have been part of my life for as long as I can remember.&lt;/p&gt;

&lt;p&gt;Over time, that turned from simply using technology into wanting to understand what was happening underneath it.&lt;/p&gt;

&lt;p&gt;I started experimenting with programming, websites, servers, local AI models and cybersecurity.&lt;/p&gt;

&lt;p&gt;The more I learned, the more interested I became in what happens when systems stop behaving the way they are supposed to.&lt;/p&gt;

&lt;p&gt;That is probably the part of computing I enjoy most.&lt;/p&gt;

&lt;p&gt;A system working correctly is useful.&lt;/p&gt;

&lt;p&gt;A system failing in an unexpected way is interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Build
&lt;/h2&gt;

&lt;p&gt;My main project at the moment is &lt;strong&gt;Zenith&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Zenith is a platform designed around one idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Monitor, improve and grow your website.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It brings together website monitoring, security checks, performance analysis, accessibility, SEO and growth opportunities.&lt;/p&gt;

&lt;p&gt;Building Zenith has pushed me into areas I probably would not have explored otherwise, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloudflare Workers&lt;/li&gt;
&lt;li&gt;databases&lt;/li&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;queues&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;scheduled jobs&lt;/li&gt;
&lt;li&gt;browser automation&lt;/li&gt;
&lt;li&gt;security headers&lt;/li&gt;
&lt;li&gt;rate limiting&lt;/li&gt;
&lt;li&gt;website auditing&lt;/li&gt;
&lt;li&gt;AI-assisted analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It has also taught me that building a product is very different from building a feature.&lt;/p&gt;

&lt;p&gt;A feature can work perfectly on its own and still make no sense inside the wider system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;I also spend a lot of time on GitHub.&lt;/p&gt;

&lt;p&gt;My GitHub is a mixture of personal projects, experiments and contributions to other repositories.&lt;/p&gt;

&lt;p&gt;One project I’ve been working on is &lt;strong&gt;browser-harness&lt;/strong&gt;, where I’ve been exploring how AI systems can interact more reliably with websites and browser interfaces.&lt;/p&gt;

&lt;p&gt;I also enjoy contributing to existing open-source projects.&lt;/p&gt;

&lt;p&gt;Working on someone else’s code is very different from starting from an empty file.&lt;/p&gt;

&lt;p&gt;You have to understand why something was built a certain way before deciding how to change it.&lt;/p&gt;

&lt;p&gt;Sometimes a useful contribution is only a tiny fix.&lt;/p&gt;

&lt;p&gt;That is still valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI and Local Models
&lt;/h2&gt;

&lt;p&gt;I started properly experimenting with large language models around 2023.&lt;/p&gt;

&lt;p&gt;Since then I’ve worked with tools and models including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;Qwen&lt;/li&gt;
&lt;li&gt;Llama&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first I was mainly interested in the models themselves.&lt;/p&gt;

&lt;p&gt;Eventually I became more interested in everything around them.&lt;/p&gt;

&lt;p&gt;How does an AI use tools?&lt;/p&gt;

&lt;p&gt;How do you give it permissions safely?&lt;/p&gt;

&lt;p&gt;How does it interact with browsers?&lt;/p&gt;

&lt;p&gt;How do you handle memory?&lt;/p&gt;

&lt;p&gt;How do you stop an automated system from doing something it shouldn’t?&lt;/p&gt;

&lt;p&gt;How do you make it reliable when the real world is unpredictable?&lt;/p&gt;

&lt;p&gt;Those questions are much more interesting to me than simply asking which model has the highest benchmark score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cybersecurity
&lt;/h2&gt;

&lt;p&gt;Cybersecurity is another major interest of mine.&lt;/p&gt;

&lt;p&gt;I especially like looking at the difference between how secure something appears and how secure it actually is.&lt;/p&gt;

&lt;p&gt;A polished login page does not necessarily mean the backend is secure.&lt;/p&gt;

&lt;p&gt;A website having HTTPS does not mean everything behind it is configured correctly.&lt;/p&gt;

&lt;p&gt;A security feature existing does not mean it has been implemented properly.&lt;/p&gt;

&lt;p&gt;That way of thinking has changed how I approach software development in general.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;“Does this work?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also try to ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How could this fail?”&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning Outside School
&lt;/h2&gt;

&lt;p&gt;I’m currently studying subjects including Maths and Computer Science, but a lot of my technical learning happens outside the classroom.&lt;/p&gt;

&lt;p&gt;I experiment with my own infrastructure, contribute to GitHub projects, build websites, run local AI models and work through technical certifications.&lt;/p&gt;

&lt;p&gt;I’ve also completed learning in areas including AI literacy and introductory cybersecurity.&lt;/p&gt;

&lt;p&gt;I like structured learning, but I learn best when I can actually use something.&lt;/p&gt;

&lt;p&gt;Reading about databases is useful.&lt;/p&gt;

&lt;p&gt;Designing one badly, discovering the problems and then fixing it teaches you something different.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Want to Do
&lt;/h2&gt;

&lt;p&gt;Long term, I want to work somewhere around the intersection of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI, cybersecurity, systems and computer science.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m still figuring out exactly what that looks like.&lt;/p&gt;

&lt;p&gt;That is partly why I build so many different things.&lt;/p&gt;

&lt;p&gt;Every project gives me a slightly better idea of what I enjoy, what I’m good at, and what I still need to understand.&lt;/p&gt;

&lt;p&gt;Right now, I’m focused on improving Zenith, contributing more to open source and continuing to build projects that force me to learn things I don’t already know.&lt;/p&gt;

&lt;p&gt;If something breaks along the way, that normally makes it more interesting.&lt;/p&gt;




&lt;h3&gt;
  
  
  Find me
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; github.com/marceli1404&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; marcelipawlinski.co.uk&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zenith:&lt;/strong&gt; zenith.me.uk&lt;/p&gt;

&lt;p&gt;I’ll be writing here about software development, cybersecurity, AI, open source, website infrastructure and whatever I happen to be experimenting with next.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building Zenith: What I’ve Learned From Turning Side Projects Into Real Software</title>
      <dc:creator>Marceli Pawliński</dc:creator>
      <pubDate>Tue, 06 Oct 2026 21:30:18 +0000</pubDate>
      <link>https://dev.to/marceli/building-zenith-what-ive-learned-from-turning-side-projects-into-real-software-30h5</link>
      <guid>https://dev.to/marceli/building-zenith-what-ive-learned-from-turning-side-projects-into-real-software-30h5</guid>
      <description>&lt;h1&gt;
  
  
  Building Zenith: What I’ve Learned From Turning Side Projects Into Real Software
&lt;/h1&gt;

&lt;p&gt;I’ve built a lot of small projects over the years.&lt;/p&gt;

&lt;p&gt;Some lasted a few hours. Some turned into GitHub repositories I still work on. Others eventually became part of something much bigger.&lt;/p&gt;

&lt;p&gt;Zenith is probably the best example of that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Zenith?
&lt;/h2&gt;

&lt;p&gt;Zenith started from a fairly simple idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if checking the health of a website didn’t require five different tools?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A website can be online and still have plenty wrong with it.&lt;/p&gt;

&lt;p&gt;It might have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;weak security headers&lt;/li&gt;
&lt;li&gt;accessibility problems&lt;/li&gt;
&lt;li&gt;poor performance&lt;/li&gt;
&lt;li&gt;broken redirects&lt;/li&gt;
&lt;li&gt;missing SEO metadata&lt;/li&gt;
&lt;li&gt;bad configuration&lt;/li&gt;
&lt;li&gt;opportunities for growth that nobody notices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zenith is my attempt at bringing those things together.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Monitor, improve and grow your website.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rather than treating security, performance, SEO and accessibility as completely separate problems, I wanted to build something that looks at a website as one system.&lt;/p&gt;

&lt;p&gt;That idea has changed quite a bit while I’ve been developing it.&lt;/p&gt;

&lt;p&gt;And that has probably taught me more than the original idea ever did.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Things Changes How You Think
&lt;/h2&gt;

&lt;p&gt;When I first started programming, getting something to work felt like the main objective.&lt;/p&gt;

&lt;p&gt;If the page loaded, the API responded and the button did what it was supposed to do, that was a success.&lt;/p&gt;

&lt;p&gt;I don’t really think that way anymore.&lt;/p&gt;

&lt;p&gt;Now I usually start asking questions like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does this work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when it doesn’t?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if someone sends a request the interface never expected?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when ten thousand requests arrive instead of ten?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That shift has made security and systems engineering much more interesting to me.&lt;/p&gt;

&lt;p&gt;A login page can look completely secure from the browser while the backend behind it has serious problems.&lt;/p&gt;

&lt;p&gt;A security header can exist while being configured in a way that makes it almost useless.&lt;/p&gt;

&lt;p&gt;A website can score well in one audit while still giving users a terrible experience.&lt;/p&gt;

&lt;p&gt;The interesting part is normally somewhere underneath the surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack Behind Zenith
&lt;/h2&gt;

&lt;p&gt;A lot of Zenith has been built around Cloudflare infrastructure.&lt;/p&gt;

&lt;p&gt;I’ve experimented with things including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloudflare Workers&lt;/li&gt;
&lt;li&gt;D1&lt;/li&gt;
&lt;li&gt;R2&lt;/li&gt;
&lt;li&gt;Queues&lt;/li&gt;
&lt;li&gt;scheduled jobs&lt;/li&gt;
&lt;li&gt;rate limiting&lt;/li&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;bot protection&lt;/li&gt;
&lt;li&gt;browser-based website analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing I like about this architecture is that it forces me to think about software differently.&lt;/p&gt;

&lt;p&gt;Instead of having one large server doing everything, you start thinking about individual services, boundaries, failures and communication between components.&lt;/p&gt;

&lt;p&gt;That introduces new problems.&lt;/p&gt;

&lt;p&gt;But those problems are interesting.&lt;/p&gt;

&lt;p&gt;What happens when a scan fails halfway through?&lt;/p&gt;

&lt;p&gt;What gets retried?&lt;/p&gt;

&lt;p&gt;What should be stored?&lt;/p&gt;

&lt;p&gt;How much should be trusted?&lt;/p&gt;

&lt;p&gt;What happens if one part of the system becomes unavailable?&lt;/p&gt;

&lt;p&gt;Those are the kinds of questions I want to get better at answering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source Has Been Just as Important
&lt;/h2&gt;

&lt;p&gt;A lot of what I’ve learned has also come from GitHub.&lt;/p&gt;

&lt;p&gt;My profile contains a mixture of personal experiments, website tooling and contributions to other projects.&lt;/p&gt;

&lt;p&gt;One project I’ve been experimenting with is &lt;strong&gt;browser-harness&lt;/strong&gt;, which explores ways of making browser interaction easier for AI systems and automated agents.&lt;/p&gt;

&lt;p&gt;I’m particularly interested in the gap between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“An AI model understands what it should do.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The AI model can reliably interact with a real application and actually do it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Real websites are messy.&lt;/p&gt;

&lt;p&gt;Forms behave differently.&lt;/p&gt;

&lt;p&gt;Interfaces change.&lt;/p&gt;

&lt;p&gt;Authentication exists.&lt;/p&gt;

&lt;p&gt;Errors happen.&lt;/p&gt;

&lt;p&gt;Pages contain information intended for humans rather than machines.&lt;/p&gt;

&lt;p&gt;Making AI systems interact reliably with that environment is a surprisingly interesting engineering problem.&lt;/p&gt;

&lt;p&gt;I’ve also spent time looking through existing open-source projects, fixing smaller issues and submitting contributions.&lt;/p&gt;

&lt;p&gt;Those smaller changes are useful because they force you to work inside someone else’s decisions.&lt;/p&gt;

&lt;p&gt;You can’t redesign everything.&lt;/p&gt;

&lt;p&gt;You have to understand the project first.&lt;/p&gt;

&lt;p&gt;Sometimes the best contribution is only a few lines of code.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Got Me Interested in Systems, Not Just AI
&lt;/h2&gt;

&lt;p&gt;I first started seriously experimenting with large language models around 2023.&lt;/p&gt;

&lt;p&gt;Since then I’ve tried different local models, inference tools and hardware setups.&lt;/p&gt;

&lt;p&gt;I’ve used things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;Qwen&lt;/li&gt;
&lt;li&gt;Llama models&lt;/li&gt;
&lt;li&gt;DeepSeek models&lt;/li&gt;
&lt;li&gt;local GPU inference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first, most of my attention was on the models themselves.&lt;/p&gt;

&lt;p&gt;How large are they?&lt;/p&gt;

&lt;p&gt;How much VRAM do they need?&lt;/p&gt;

&lt;p&gt;How quickly can they generate tokens?&lt;/p&gt;

&lt;p&gt;How good are they at coding?&lt;/p&gt;

&lt;p&gt;Eventually I became more interested in everything surrounding the model.&lt;/p&gt;

&lt;p&gt;Routing.&lt;/p&gt;

&lt;p&gt;Tool use.&lt;/p&gt;

&lt;p&gt;Memory.&lt;/p&gt;

&lt;p&gt;Security.&lt;/p&gt;

&lt;p&gt;Permissions.&lt;/p&gt;

&lt;p&gt;Browser interaction.&lt;/p&gt;

&lt;p&gt;Infrastructure.&lt;/p&gt;

&lt;p&gt;APIs.&lt;/p&gt;

&lt;p&gt;Failure handling.&lt;/p&gt;

&lt;p&gt;A capable model by itself isn’t necessarily a capable system.&lt;/p&gt;

&lt;p&gt;The engineering around it matters just as much.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Still Build Things That Fail
&lt;/h2&gt;

&lt;p&gt;A lot of my projects don't work perfectly the first time.&lt;/p&gt;

&lt;p&gt;Sometimes the architecture is wrong.&lt;/p&gt;

&lt;p&gt;Sometimes I massively overcomplicate something.&lt;/p&gt;

&lt;p&gt;Sometimes I build a feature and later realise it shouldn't exist.&lt;/p&gt;

&lt;p&gt;Sometimes I rewrite something that technically worked because I finally understand why the first version was bad.&lt;/p&gt;

&lt;p&gt;I think that is one of the best parts of building your own projects.&lt;/p&gt;

&lt;p&gt;There’s nowhere to hide.&lt;/p&gt;

&lt;p&gt;If your database design is terrible, eventually you have to deal with it.&lt;/p&gt;

&lt;p&gt;If your authentication flow is badly designed, you eventually discover why that matters.&lt;/p&gt;

&lt;p&gt;If your interface is confusing, real users will find things you thought were obvious completely incomprehensible.&lt;/p&gt;

&lt;p&gt;Every failure exposes something you didn’t understand before.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’m Working Toward
&lt;/h2&gt;

&lt;p&gt;I’m particularly interested in the overlap between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;computer science, cybersecurity, artificial intelligence and distributed systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Zenith happens to touch nearly all of those areas.&lt;/p&gt;

&lt;p&gt;There’s website analysis.&lt;/p&gt;

&lt;p&gt;There’s infrastructure.&lt;/p&gt;

&lt;p&gt;There’s security.&lt;/p&gt;

&lt;p&gt;There’s automation.&lt;/p&gt;

&lt;p&gt;There’s data.&lt;/p&gt;

&lt;p&gt;There’s AI.&lt;/p&gt;

&lt;p&gt;And most importantly, there are plenty of problems I still don’t know how to solve properly.&lt;/p&gt;

&lt;p&gt;That’s probably why I keep working on it.&lt;/p&gt;

&lt;p&gt;I don't just want to know how to make software work.&lt;/p&gt;

&lt;p&gt;I want to understand why it works, where it breaks, and how to build it better the next time.&lt;/p&gt;




&lt;p&gt;You can follow my projects on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;github.com/marceli1404&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And Zenith is available at:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://zenith.me.uk" rel="noopener noreferrer"&gt;https://zenith.me.uk&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll be writing more about the architecture behind Zenith, security mistakes I’ve found while building web applications, local AI experiments, and the things I learn from contributing to open-source projects.&lt;/p&gt;

&lt;p&gt;If you work on similar things, I’d love to hear what you’re building.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>softwaredevelopment</category>
      <category>startup</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
