{"id":37,"date":"2026-10-14T20:17:20","date_gmt":"2026-10-14T18:17:20","guid":{"rendered":"https:\/\/wojciechowski.tech\/?page_id=37"},"modified":"2026-10-14T22:15:48","modified_gmt":"2026-10-14T20:15:48","slug":"mateusz-wojciechowski-it-i-oprogramowanie-na-zamowienie","status":"publish","type":"page","link":"https:\/\/wojciechowski.tech\/","title":{"rendered":"Mateusz Wojciechowski \u2013 IT i oprogramowanie na zam\u00f3wienie"},"content":{"rendered":"\n<style>\n@font-face{font-family:\"Chakra Petch\";font-style:normal;font-weight:600;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/chakra-petch-latin-ext-600-normal.woff2) format(\"woff2\");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}\n@font-face{font-family:\"Chakra Petch\";font-style:normal;font-weight:600;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/chakra-petch-latin-600-normal.woff2) format(\"woff2\");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n@font-face{font-family:\"Chakra Petch\";font-style:normal;font-weight:700;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/chakra-petch-latin-ext-700-normal.woff2) format(\"woff2\");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}\n@font-face{font-family:\"Chakra Petch\";font-style:normal;font-weight:700;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/chakra-petch-latin-700-normal.woff2) format(\"woff2\");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n@font-face{font-family:\"IBM Plex Sans\";font-style:normal;font-weight:400;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-sans-latin-ext-400-normal.woff2) format(\"woff2\");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}\n@font-face{font-family:\"IBM Plex Sans\";font-style:normal;font-weight:400;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-sans-latin-400-normal.woff2) format(\"woff2\");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n@font-face{font-family:\"IBM Plex Sans\";font-style:normal;font-weight:600;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-sans-latin-ext-600-normal.woff2) format(\"woff2\");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}\n@font-face{font-family:\"IBM Plex Sans\";font-style:normal;font-weight:600;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-sans-latin-600-normal.woff2) format(\"woff2\");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n@font-face{font-family:\"IBM Plex Mono\";font-style:normal;font-weight:400;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-mono-latin-ext-400-normal.woff2) format(\"woff2\");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}\n@font-face{font-family:\"IBM Plex Mono\";font-style:normal;font-weight:400;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-mono-latin-400-normal.woff2) format(\"woff2\");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n@font-face{font-family:\"IBM Plex Mono\";font-style:normal;font-weight:600;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-mono-latin-ext-600-normal.woff2) format(\"woff2\");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}\n@font-face{font-family:\"IBM Plex Mono\";font-style:normal;font-weight:600;font-display:swap;src:url(\/wp-content\/uploads\/fonts\/ibm-plex-mono-latin-600-normal.woff2) format(\"woff2\");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n\nhtml{scroll-behavior:auto}\n@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}\n#mw-top{\n--bg:#0a0e14; --bg-2:#0e141c; --card:#121a24; --line:#1f2b39;\n--text:#e7edf4; --muted:#93a1b3; --accent:#3dd9bf; --accent-ink:#03130f; --warn:#f2b84b;\n--radius:14px;\nbackground:var(--bg); color:var(--text);\n--head:\"Chakra Petch\",\"Segoe UI\",system-ui,sans-serif;\n--mono:\"IBM Plex Mono\",ui-monospace,Consolas,monospace;\nfont:16px\/1.65 \"IBM Plex Sans\",\"Segoe UI\",system-ui,sans-serif;\n-webkit-font-smoothing:antialiased; position:relative; overflow:hidden;\n}\n#mw-top *,#mw-top *::before,#mw-top *::after{box-sizing:border-box}\n#mw-top h1,#mw-top h2,#mw-top h3,#mw-top h4,#mw-top p,#mw-top ul,#mw-top ol{margin:0}\n#mw-top h1,#mw-top h2,#mw-top h3,#mw-top h4,#mw-top .btn,#mw-top .brand,#mw-top .stat b,#mw-top .contact-item strong{font-family:var(--head)}\n#mw-top ul,#mw-top ol{padding:0;list-style:none}\n#mw-top a{color:inherit}\n#mw-top .mono{font-family:var(--mono)}\n#mw-top .muted{color:var(--muted)}\n#mw-top .wrap{max-width:1120px;margin:0 auto;padding:0 24px}\n#mw-top section[id]{scroll-margin-top:84px}\n#mw-top a:focus-visible,#mw-top button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}\n#mw-top .btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;font-weight:600;font-size:15px;line-height:1.2;text-decoration:none;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s}\n#mw-top .btn-primary{background:var(--accent);color:var(--accent-ink)}\n#mw-top .btn-primary:hover{background:#63e8d2}\n#mw-top .btn-ghost{border-color:var(--line);color:var(--text);background:rgba(255,255,255,.02)}\n#mw-top .btn-ghost:hover{border-color:var(--accent);color:var(--accent)}\n#mw-top .btn svg{width:18px;height:18px;flex:none}\n#mw-top .ph{color:var(--warn);border-bottom:1px dashed var(--warn)}\n#mw-top .nav{position:sticky;top:0;z-index:20;background:rgba(10,14,20,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}\n#mw-top .nav .wrap{display:flex;align-items:center;gap:28px;height:64px}\n#mw-top .brand{display:flex;align-items:center;gap:10px;font-weight:700;text-decoration:none;white-space:nowrap}\n#mw-top .brand .mark{width:30px;height:30px;border-radius:8px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:700 13px var(--mono)}\n#mw-top .nav-links{display:flex;gap:24px;margin-left:auto;font-size:14.5px}\n#mw-top .nav-links a{color:var(--muted);text-decoration:none}\n#mw-top .nav-links a:hover{color:var(--text)}\n#mw-top .nav .btn{padding:9px 16px;font-size:14px}\n#mw-top .hero{position:relative;padding:92px 0 84px}\n#mw-top .hero::before{content:\"\";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:52px 52px;opacity:.45;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 0,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 50% 0,#000 10%,transparent 75%);pointer-events:none}\n#mw-top .hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}\n#mw-top .eyebrow{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}\n#mw-top h1{font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.1;letter-spacing:-.01em;font-weight:700}\n#mw-top h1 .accent{color:var(--accent)}\n#mw-top .lead{margin-top:22px;font-size:1.12rem;color:var(--muted);max-width:34em}\n#mw-top .lead strong{color:var(--text);font-weight:600}\n#mw-top .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}\n#mw-top .term{background:#080d13;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 60px -24px rgba(0,0,0,.7)}\n#mw-top .term-bar{display:flex;gap:7px;padding:12px 16px;border-bottom:1px solid var(--line)}\n#mw-top .term-bar i{width:11px;height:11px;border-radius:50%;background:#26323f}\n#mw-top .term-body{padding:20px 22px 24px;font:14px\/1.75 var(--mono);color:#c8d3df}\n#mw-top .term-body .p{color:var(--accent)}\n#mw-top .term-body .o{color:var(--muted);margin-bottom:10px}\n#mw-top .term-body .ok{color:var(--accent)}\n#mw-top .cursor{display:inline-block;width:8px;height:1.05em;background:var(--accent);vertical-align:-.18em;margin-left:4px;animation:mw-blink 1.1s steps(1) infinite}\n@keyframes mw-blink{50%{opacity:0}}\n@media (prefers-reduced-motion:reduce){#mw-top .cursor{animation:none}}\n#mw-top .sec{padding:84px 0}\n#mw-top .sec-alt{background:var(--bg-2);border-block:1px solid var(--line)}\n#mw-top .sec-head{max-width:660px;margin-bottom:44px}\n#mw-top .kicker{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}\n#mw-top h2{font-size:clamp(1.6rem,3.2vw,2.35rem);line-height:1.2;letter-spacing:0;font-weight:700}\n#mw-top .sec-head p{margin-top:14px;color:var(--muted)}\n#mw-top h3{font-size:1.15rem;line-height:1.3;font-weight:700}\n#mw-top .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:border-color .2s}\n#mw-top .card:hover{border-color:rgba(61,217,191,.45)}\n#mw-top .icon{width:44px;height:44px;border-radius:11px;background:rgba(61,217,191,.1);color:var(--accent);display:grid;place-items:center;margin-bottom:18px}\n#mw-top .icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}\n#mw-top .card p{margin-top:10px;color:var(--muted)}\n#mw-top .grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}\n#mw-top .span-6{grid-column:span 6}\n#mw-top .span-4{grid-column:span 4}\n#mw-top .card-big{padding:34px}\n#mw-top .card-big h3{font-size:1.4rem}\n#mw-top .ticks{margin-top:18px;display:grid;gap:8px;color:var(--text);font-size:.95rem}\n#mw-top .ticks li{display:flex;gap:10px}\n#mw-top .ticks li::before{content:\"\u203a\";color:var(--accent);font-family:var(--mono);font-weight:700}\n#mw-top .tag-focus{display:inline-block;font:600 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(61,217,191,.4);border-radius:999px;padding:3px 10px;margin-bottom:16px}\n#mw-top .exp{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}\n#mw-top .exp-text p{color:var(--muted);margin-top:16px}\n#mw-top .exp-text p:first-of-type{margin-top:0}\n#mw-top .exp-text strong{color:var(--text);font-weight:600}\n#mw-top .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}\n#mw-top .stat{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--card)}\n#mw-top .stat b{display:block;font-size:1.7rem;line-height:1.1;color:var(--accent);letter-spacing:-.02em}\n#mw-top .stat span{display:block;margin-top:6px;font-size:.85rem;color:var(--muted);line-height:1.4}\n#mw-top .pillars{display:grid;gap:14px}\n#mw-top .pillar{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:22px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}\n#mw-top .pillar .n{font:700 13px var(--mono);color:var(--accent);padding-top:3px}\n#mw-top .pillar p{margin-top:6px;color:var(--muted);font-size:.95rem}\n#mw-top .cities{margin-top:36px}\n#mw-top .cities p{font-size:.9rem;color:var(--muted);margin-bottom:12px}\n#mw-top .chips{display:flex;flex-wrap:wrap;gap:8px}\n#mw-top .chips li{font:12.5px var(--mono);padding:5px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}\n#mw-top .chips li.home{border-color:rgba(61,217,191,.5);color:var(--accent)}\n#mw-top .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s}\n#mw-top .step{position:relative;padding-top:20px;border-top:2px solid var(--line)}\n#mw-top .step::before{content:\"0\" counter(s);counter-increment:s;position:absolute;top:-1px;left:0;transform:translateY(-100%);font:700 13px var(--mono);color:var(--accent);padding-bottom:8px}\n#mw-top .step{margin-top:20px}\n#mw-top .step h3{font-size:1.05rem}\n#mw-top .step p{margin-top:8px;color:var(--muted);font-size:.95rem}\n#mw-top .projects{display:grid;grid-template-columns:1fr 1fr;gap:20px}\n#mw-top .proj{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}\n#mw-top .shot{height:210px;display:grid;place-items:center;border-bottom:1px solid var(--line);background:repeating-linear-gradient(135deg,rgba(255,255,255,.02) 0 12px,transparent 12px 24px);color:var(--warn);font-size:13px}\n#mw-top .proj-body{padding:26px}\n#mw-top .proj-body .tag{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}\n#mw-top .proj-body p.d{margin:10px 0 16px;color:var(--muted)}\n#mw-top .proj-body h3{font-size:1.3rem}\n#mw-top .proj-body .ticks{margin:0 0 18px;font-size:.92rem}\n#mw-top .proj-body .who{margin:0 0 18px;padding:14px 16px;border-left:2px solid var(--accent);background:rgba(61,217,191,.06);border-radius:0 10px 10px 0;font-size:.92rem;color:var(--muted)}\n#mw-top .proj-body .who b{display:block;font:600 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}\n#mw-top .ideas-head{margin:64px 0 24px}\n#mw-top .ideas-head h3{font-size:1.5rem}\n#mw-top .ideas-head p{margin-top:8px;color:var(--muted);max-width:620px}\n#mw-top .ideas{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}\n#mw-top .idea{background:transparent;border:1px dashed #2b3a4c;border-radius:var(--radius);padding:22px}\n#mw-top .idea .st{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}\n#mw-top .idea h4{margin:10px 0 0;font-size:1.02rem;line-height:1.35}\n#mw-top .idea p{margin-top:8px;color:var(--muted);font-size:.92rem}\n#mw-top .ideas-cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:24px 28px}\n#mw-top .ideas-cta p{max-width:560px}\n#mw-top .remote{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}\n#mw-top .remote-steps{margin-top:24px;display:grid;gap:12px;counter-reset:r}\n#mw-top .remote-steps li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}\n#mw-top .remote-steps li::before{counter-increment:r;content:counter(r);width:28px;height:28px;border-radius:50%;border:1px solid rgba(61,217,191,.5);color:var(--accent);display:grid;place-items:center;font:700 13px var(--mono)}\n#mw-top .dl{padding:34px;text-align:center}\n#mw-top .dl .icon{margin:0 auto 18px}\n#mw-top .dl h3{font-size:1.25rem}\n#mw-top .dl .file{margin:6px 0 22px;font-size:.88rem;color:var(--muted)}\n#mw-top .dl .btn{width:100%;justify-content:center}\n#mw-top .safe{margin-top:20px;font-size:.88rem;color:var(--muted);text-align:left;border-top:1px solid var(--line);padding-top:16px}\n#mw-top .contact{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}\n#mw-top .contact-list{margin-top:28px;display:grid;gap:14px}\n#mw-top .contact-item{display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);text-decoration:none;transition:border-color .2s}\n#mw-top a.contact-item:hover{border-color:rgba(61,217,191,.55)}\n#mw-top .contact-item .icon{margin:0}\n#mw-top .contact-item small{display:block;color:var(--muted);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}\n#mw-top .contact-item strong{font-size:1.2rem;font-weight:650;word-break:break-word}\n#mw-top .brief h3{margin-bottom:6px}\n#mw-top .brief h4{margin:20px 0 8px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-family:var(--mono)}\n#mw-top .brief .ticks{margin-top:0}\n#mw-top .foot{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:.9rem}\n#mw-top .foot .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}\n#mw-top .foot a{text-decoration:none}\n#mw-top .foot a:hover{color:var(--text)}\n@media (max-width:960px){\n#mw-top .hero .wrap,#mw-top .exp,#mw-top .remote,#mw-top .contact{grid-template-columns:1fr;gap:40px}\n#mw-top .span-6,#mw-top .span-4{grid-column:span 12}\n#mw-top .steps{grid-template-columns:1fr 1fr;gap:34px 24px}\n#mw-top .projects{grid-template-columns:1fr}\n#mw-top .ideas{grid-template-columns:1fr 1fr}\n}\n@media (max-width:760px){\n#mw-top .wrap{padding:0 20px}\n#mw-top .nav .wrap{height:auto;flex-wrap:wrap;gap:8px 16px;padding-top:10px;padding-bottom:10px}\n#mw-top .nav .btn{margin-left:auto}\n#mw-top .nav-links{order:3;width:100%;margin-left:0;gap:20px;overflow-x:auto;white-space:nowrap;padding-bottom:2px}\n#mw-top .hero{padding:56px 0 56px}\n#mw-top .sec{padding:60px 0}\n#mw-top .stats{grid-template-columns:1fr}\n#mw-top .steps,#mw-top .ideas{grid-template-columns:1fr}\n#mw-top .card-big,#mw-top .dl{padding:24px}\n#mw-top .ideas-cta{padding:22px}\n}\n@media (max-width:420px){#mw-top .wrap{padding:0 16px}#mw-top .contact-item strong{font-size:1.05rem}}\n\nbody:has(#mw-top){background:#0a0e14}\nbody:has(#mw-top) .custom-header,body:has(#mw-top) #masthead,body:has(#mw-top) #secondary,body:has(#mw-top) #colophon,body:has(#mw-top) .entry-footer{display:none!important}\nbody:has(#mw-top) #content,body:has(#mw-top) #content-wrap,body:has(#mw-top) #primary,body:has(#mw-top) #main,body:has(#mw-top) .single-page-wrapper,body:has(#mw-top) article.page,body:has(#mw-top) .entry-content{width:100%;max-width:none;margin:0;padding:0;float:none;background:transparent;border:0;box-shadow:none}\nbody.admin-bar #mw-top .nav{top:32px}\n@media (max-width:782px){body.admin-bar #mw-top .nav{top:46px}}\n#mw-top h1,#mw-top h2,#mw-top h3,#mw-top h4{color:var(--text);text-transform:none;text-shadow:none;margin:0}\n#mw-top h1 .accent{color:var(--accent)}\n#mw-top a{border-bottom:0;box-shadow:none;text-transform:none;letter-spacing:normal}\n#mw-top ul,#mw-top ol{margin:0;padding:0;list-style:none}\n#mw-top li{margin:0;padding:0}\n#mw-top p{margin:0}\n#mw-top p,#mw-top li{font-size:inherit;line-height:inherit;font-family:inherit;letter-spacing:inherit;text-transform:none}\n\n#mw-top .shot-ui,#mw-top .shot-map{height:auto;display:block;padding:18px 18px 12px;color:var(--text);font-size:inherit;background:var(--bg-2)}\n#mw-top .ui{background:#f3f6fb;color:#0f172a;border-radius:10px;padding:14px;font:12px\/1.45 \"Segoe UI\",system-ui,Arial,sans-serif;box-shadow:0 14px 40px -18px rgba(0,0,0,.8)}\n#mw-top .ui-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px}\n#mw-top .ui-logo{width:20px;height:20px;border-radius:6px;background:#ea580c;color:#fff;display:grid;place-items:center;font-weight:700;font-size:11px}\n#mw-top .ui-h{font-size:17px;font-weight:700}\n#mw-top .ui-sub{color:#64748b;margin:2px 0 10px}\n#mw-top .ui-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:6px}\n#mw-top .k{border:1px solid;border-radius:8px;padding:6px 8px;font-weight:600;font-size:11px}\n#mw-top .k b{display:block;font-size:17px;line-height:1.2}\n#mw-top .k.red{background:#fff0f0;border-color:#fecaca;color:#b91c1c}\n#mw-top .k.amb{background:#fffbeb;border-color:#fde68a;color:#92400e}\n#mw-top .k.blu{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}\n#mw-top .k.wht{background:#fff;border-color:#e2e8f0;color:#334155}\n#mw-top .k.grn{background:#ecfdf5;border-color:#a7f3d0;color:#047857}\n#mw-top .ui-warn{margin-top:8px;background:#fefce8;border:1px solid #fde68a;border-radius:8px;padding:8px 10px;color:#78350f}\n#mw-top .w-h{font-weight:700;text-transform:uppercase;font-size:10.5px;letter-spacing:.04em;margin-bottom:3px}\n#mw-top .ui-warn ul{display:grid;gap:1px}\n#mw-top .ui-warn li{padding-left:12px;position:relative;font-size:11.5px}\n#mw-top .ui-warn li::before{content:\"\u2022\";position:absolute;left:2px}\n#mw-top .ui-lab{margin:10px 0 5px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}\n#mw-top .ui-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}\n#mw-top .t{background:#fff;border-radius:8px;border-left:3px solid #8b5cf6;padding:8px 10px;box-shadow:0 1px 3px rgba(15,23,42,.12);display:grid;gap:1px}\n#mw-top .t b{font-size:12px}\n#mw-top .t span{color:#64748b;font-size:10.5px}\n#mw-top .t i{justify-self:start;margin-top:4px;font-style:normal;font-size:10px;font-weight:600;color:#6d28d9;background:#f3e8ff;border-radius:999px;padding:1px 8px}\n#mw-top .shot-cap{display:block;margin-top:10px;text-align:center;font-size:11.5px;color:var(--muted);letter-spacing:.04em}\n#mw-top .map{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}\n#mw-top .nd{border:1px solid rgba(61,217,191,.4);background:rgba(61,217,191,.06);border-radius:10px;padding:16px 10px;text-align:center;font:600 13px\/1.3 var(--mono);color:var(--text);display:flex;flex-direction:column;justify-content:center;gap:4px}\n#mw-top .nd small{display:block;font:400 11px\/1.35 var(--mono);color:var(--muted)}\n#mw-top .nd.hl{background:rgba(61,217,191,.14);border-color:var(--accent)}\n#mw-top .ui,#mw-top .map{width:100%}\n@media (max-width:520px){#mw-top .map{grid-template-columns:repeat(2,1fr)}}\n<\/style>\n<div class=\"mw\" id=\"mw-top\">\n<header class=\"nav\">\n<div class=\"wrap\">\n<a class=\"brand\" href=\"#mw-top\" aria-label=\"Mateusz Wojciechowski \u2013 pocz\u0105tek strony\"><span class=\"mark\">MW<\/span><span>Mateusz Wojciechowski<\/span><\/a>\n<nav class=\"nav-links\" aria-label=\"G\u0142\u00f3wne menu\">\n<a href=\"#uslugi\">Us\u0142ugi<\/a>\n<a href=\"#doswiadczenie\">Do\u015bwiadczenie<\/a>\n<a href=\"#portfolio\">Portfolio<\/a>\n<a href=\"#pomoc-zdalna\">Pomoc zdalna<\/a>\n<a href=\"#kontakt\">Kontakt<\/a>\n<\/nav>\n<a class=\"btn btn-primary\" href=\"tel:+48510900597\">Zadzwo\u0144<\/a>\n<\/div>\n<\/header>\n<main>\n<section class=\"hero\" aria-labelledby=\"h-hero\">\n<div class=\"wrap\">\n<div>\n<p class=\"eyebrow mono\">\/\/ technicznie najlepszy<\/p>\n<h1 id=\"h-hero\">Rozwi\u0105zuj\u0119 problemy IT.<br><span class=\"accent\">Pisz\u0119 programy na zam\u00f3wienie.<\/span><\/h1>\n<p class=\"lead\"><strong>Mateusz Wojciechowski.<\/strong> Ponad 20 lat w IT: od sprzeda\u017cy i kontakt\u00f3w z klientami, przez serwis komputer\u00f3w i sprz\u0119tu, po programowanie. Pracuj\u0119 dla firm i os\u00f3b z Elbl\u0105ga i okolic oraz zdalnie w ca\u0142ej Polsce.<\/p>\n<div class=\"hero-actions\">\n<a class=\"btn btn-primary\" href=\"tel:+48510900597\">\n<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z\"\/><\/svg>\n510 900 597\n<\/a>\n<a class=\"btn btn-ghost\" href=\"#kontakt\">Napisz do mnie<\/a>\n<a class=\"btn btn-ghost\" href=\"#pomoc-zdalna\">Pomoc zdalna<\/a>\n<\/div>\n<\/div>\n<div class=\"term\" aria-hidden=\"true\">\n<div class=\"term-bar\"><i><\/i><i><\/i><i><\/i><\/div>\n<div class=\"term-body\">\n<div><span class=\"p\">mw@it:~$<\/span> whoami<\/div>\n<div class=\"o\">Mateusz Wojciechowski, IT od 20+ lat<\/div>\n<div><span class=\"p\">mw@it:~$<\/span> ls fokus\/<\/div>\n<div class=\"o\">oprogramowanie-na-zamowienie\/<br>rozwiazywanie-problemow-it\/<\/div>\n<div><span class=\"p\">mw@it:~$<\/span> ls doswiadczenie\/<\/div>\n<div class=\"o\">sprzedaz\/&nbsp; serwis\/&nbsp; programowanie\/<\/div>\n<div><span class=\"p\">mw@it:~$<\/span> status<\/div>\n<div class=\"o\"><span class=\"ok\">\u25cf<\/span> Elbl\u0105g i okolice \u00b7 zdalnie w ca\u0142ej Polsce<span class=\"cursor\"><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"sec sec-alt\" id=\"uslugi\" aria-labelledby=\"h-uslugi\">\n<div class=\"wrap\">\n<div class=\"sec-head\">\n<p class=\"kicker mono\">Czym si\u0119 zajmuj\u0119<\/p>\n<h2 id=\"h-uslugi\">Dwa g\u0142\u00f3wne kierunki i us\u0142ugi, kt\u00f3re si\u0119 z nimi \u0142\u0105cz\u0105<\/h2>\n<p>Je\u015bli gotowe oprogramowanie nie pasuje do Twojej pracy albo sprz\u0119t i systemy sprawiaj\u0105 k\u0142opoty, to jest dobre miejsce, \u017ceby zacz\u0105\u0107.<\/p>\n<\/div>\n<div class=\"grid-12\">\n<article class=\"card card-big span-6\">\n<span class=\"tag-focus\">Fokus<\/span>\n<div class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><\/div>\n<h3>Oprogramowanie na zam\u00f3wienie<\/h3>\n<p>Program szyty na miar\u0119 Twojego sposobu pracy, tam gdzie gotowe aplikacje s\u0105 zbyt og\u00f3lne, zbyt drogie albo wymagaj\u0105 obej\u015b\u0107 w Excelu.<\/p>\n<ul class=\"ticks\">\n<li>narz\u0119dzia wewn\u0119trzne dla firm<\/li>\n<li>automatyzacja powtarzalnych zada\u0144 i raport\u00f3w<\/li>\n<li>integracje i wymiana danych mi\u0119dzy systemami<\/li>\n<li>rozw\u00f3j i poprawki istniej\u0105cych rozwi\u0105za\u0144<\/li>\n<\/ul>\n<\/article>\n<article class=\"card card-big span-6\">\n<span class=\"tag-focus\">Fokus<\/span>\n<div class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg><\/div>\n<h3>Rozwi\u0105zywanie problem\u00f3w IT<\/h3>\n<p>Co\u015b nie dzia\u0142a, dzia\u0142a wolno albo nie wiadomo dlaczego? Szukam przyczyny, a nie tylko lecz\u0119 objawy. Na miejscu w Elbl\u0105gu i okolicach albo zdalnie.<\/p>\n<ul class=\"ticks\">\n<li>diagnostyka awarii komputer\u00f3w, sieci i oprogramowania<\/li>\n<li>porz\u0105dkowanie i optymalizacja \u015brodowiska IT firmy<\/li>\n<li>szybka pomoc w nag\u0142ych przypadkach<\/li>\n<li>konkretne wnioski: co jest przyczyn\u0105 i co z tym zrobi\u0107<\/li>\n<\/ul>\n<\/article>\n<article class=\"card span-4\">\n<div class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94z\"\/><\/svg><\/div>\n<h3>Serwis komputer\u00f3w i sprz\u0119tu IT<\/h3>\n<p>Naprawy, konfiguracja, przegl\u0105dy i przygotowanie stanowisk pracy.<\/p>\n<\/article>\n<article class=\"card span-4\">\n<div class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/><\/svg><\/div>\n<h3>Dob\u00f3r sprz\u0119tu i dostawcy<\/h3>\n<p>Od wielu lat wsp\u00f3\u0142pracuj\u0119 z czo\u0142owymi polskimi i zagranicznymi dostawcami IT, wi\u0119c pomog\u0119 dobra\u0107 sprz\u0119t i oprogramowanie do potrzeb i bud\u017cetu.<\/p>\n<\/article>\n<article class=\"card span-4\">\n<div class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><\/div>\n<h3>Pomoc zdalna<\/h3>\n<p>Wiele spraw za\u0142atwi\u0119 bez wizyty. <a href=\"#pomoc-zdalna\" style=\"color:var(--accent)\">Zobacz, jak to dzia\u0142a \u2192<\/a><\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"sec\" id=\"doswiadczenie\" aria-labelledby=\"h-exp\">\n<div class=\"wrap\">\n<div class=\"exp\">\n<div class=\"exp-text\">\n<p class=\"kicker mono\">Do\u015bwiadczenie<\/p>\n<h2 id=\"h-exp\">Znam IT z kilku stron, dlatego rozumiem i technik\u0119, i biznes<\/h2>\n<p style=\"margin-top:20px\">Od ponad 20 lat pracuj\u0119 w IT w r\u00f3\u017cnych rolach: od <strong>sprzeda\u017cy i kontakt\u00f3w z klientami<\/strong>, przez <strong>serwis komputer\u00f3w i sprz\u0119tu<\/strong>, po <strong>programowanie<\/strong>. Dzi\u0119ki temu wiem, jak firmy naprawd\u0119 korzystaj\u0105 z technologii, co im przeszkadza i co da si\u0119 poprawi\u0107.<\/p>\n<p>Nie boj\u0119 si\u0119 nietypowych zada\u0144 ani pracy zdalnej. Klient\u00f3w mam nie tylko w Elbl\u0105gu, ale te\u017c w kilku innych miastach Polski.<\/p>\n<div class=\"stats\">\n<div class=\"stat\"><b>20+<\/b><span>lat w bran\u017cy IT<\/span><\/div>\n<div class=\"stat\"><b>3<\/b><span>obszary: sprzeda\u017c, serwis, programowanie<\/span><\/div>\n<div class=\"stat\"><b>Zdalnie<\/b><span>lub na miejscu w Elbl\u0105gu i okolicach<\/span><\/div>\n<\/div>\n<div class=\"cities\">\n<p>Gdzie pracuj\u0119:<\/p>\n<ul class=\"chips\">\n<li class=\"home\">Elbl\u0105g i okolice<\/li>\n<li>Lublin<\/li>\n<li>Warszawa<\/li>\n<li>Wroc\u0142aw<\/li>\n<li>Ostro\u0142\u0119ka<\/li>\n<li>\u2026i zdalnie z ka\u017cdego miejsca<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"pillars\">\n<div class=\"pillar\"><span class=\"n\">01<\/span><div><h3>Sprzeda\u017c i obs\u0142uga klienta<\/h3><p>Wiem, na czym zale\u017cy klientowi i jak z nim rozmawia\u0107: bez \u017cargonu, za to konkretnie.<\/p><\/div><\/div>\n<div class=\"pillar\"><span class=\"n\">02<\/span><div><h3>Serwis sprz\u0119tu i system\u00f3w<\/h3><p>Widzia\u0142em, jak technika psuje si\u0119 w prawdziwej pracy, wi\u0119c umiem znale\u017a\u0107 przyczyn\u0119 i zapobiec jej w przysz\u0142o\u015bci.<\/p><\/div><\/div>\n<div class=\"pillar\"><span class=\"n\">03<\/span><div><h3>Programowanie<\/h3><p>Zamieniam to do\u015bwiadczenie w narz\u0119dzia, kt\u00f3re realnie oszcz\u0119dzaj\u0105 czas i pieni\u0105dze.<\/p><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"sec sec-alt\" aria-labelledby=\"h-proces\">\n<div class=\"wrap\">\n<div class=\"sec-head\">\n<p class=\"kicker mono\">Jak pracuj\u0119<\/p>\n<h2 id=\"h-proces\">Od pierwszej rozmowy do dzia\u0142aj\u0105cego rozwi\u0105zania<\/h2>\n<\/div>\n<ol class=\"steps\">\n<li class=\"step\"><h3>Opisujesz spraw\u0119<\/h3><p>Dzwonisz lub piszesz, kr\u00f3tko, w\u0142asnymi s\u0142owami. Nie musisz zna\u0107 fachowych okre\u015ble\u0144.<\/p><\/li>\n<li class=\"step\"><h3>Ustalamy, o co chodzi<\/h3><p>Dopytuj\u0119 o cel i ograniczenia, a potem proponuj\u0119 rozwi\u0105zanie i zakres prac.<\/p><\/li>\n<li class=\"step\"><h3>Realizuj\u0119<\/h3><p>Program lub naprawa powstaj\u0105 etapami, \u017ceby na bie\u017c\u0105co mo\u017cna by\u0142o sprawdza\u0107, czy to jest to, czego potrzebujesz.<\/p><\/li>\n<li class=\"step\"><h3>Wdra\u017cam i wspieram<\/h3><p>Uruchamiam, pokazuj\u0119, jak z tego korzysta\u0107, i zostaj\u0119 do dyspozycji po wdro\u017ceniu.<\/p><\/li>\n<\/ol>\n<\/div>\n<\/section>\n<section class=\"sec\" id=\"portfolio\" aria-labelledby=\"h-portfolio\">\n<div class=\"wrap\">\n<div class=\"sec-head\">\n<p class=\"kicker mono\">Portfolio<\/p>\n<h2 id=\"h-portfolio\">Programy, kt\u00f3re napisa\u0142em<\/h2>\n<p>Dwa programy zrobione od podstaw pod konkretny spos\u00f3b pracy firmy oraz pomys\u0142y na kolejne narz\u0119dzia, kt\u00f3re mog\u0119 przygotowa\u0107 dla Twojej firmy.<\/p>\n<\/div>\n<div class=\"projects\">\n<article class=\"proj\">\n<div class=\"shot shot-ui\" role=\"img\" aria-label=\"Podgl\u0105d pulpitu aplikacji: liczniki zada\u0144, ostrze\u017cenia i zadania do zatwierdzenia. Dane przyk\u0142adowe.\">\n<div class=\"ui\" aria-hidden=\"true\">\n<div class=\"ui-top\"><div class=\"ui-logo\">B<\/div><b>Budowy<\/b><\/div>\n<div class=\"ui-h\">Pulpit<\/div>\n<div class=\"ui-sub\">Micha\u0142 Zieli\u0144ski \u2014 stan wszystkich bud\u00f3w w jednym miejscu.<\/div>\n<div class=\"ui-kpis\">\n<div class=\"k red\"><b>4<\/b>Po terminie<\/div>\n<div class=\"k amb\"><b>1<\/b>Termin dzisiaj<\/div>\n<div class=\"k blu\"><b>5<\/b>W trakcie<\/div>\n<div class=\"k wht\"><b>6<\/b>Nieprzydzielone<\/div>\n<div class=\"k grn\"><b>13<\/b>Wykonane<\/div>\n<\/div>\n<div class=\"ui-warn\"><div class=\"w-h\">Wymaga uwagi<\/div><ul><li>4 zadania przekroczy\u0142y termin<\/li><li>6 zada\u0144 nie ma wykonawcy<\/li><li>2 zadania czekaj\u0105 na weryfikacj\u0119<\/li><\/ul><\/div>\n<div class=\"ui-lab\">Czeka na Twoje zatwierdzenie<\/div>\n<div class=\"ui-cards\">\n<div class=\"t\"><b>Izolacja rur c.w.u. \u2013 piwnica<\/b><span>Szko\u0142a Podstawowa nr 5 \u2014 rozbudowa<\/span><span>Termin: 14.10.2026<\/span><i>Do weryfikacji<\/i><\/div>\n<div class=\"t\"><b>Monta\u017c o\u015bcie\u017cnic \u2013 sale 101\u2013105<\/b><span>Szko\u0142a Podstawowa nr 5 \u2014 rozbudowa<\/span><span>Termin: 15.10.2026<\/span><i>Do weryfikacji<\/i><\/div>\n<\/div>\n<\/div>\n<span class=\"shot-cap mono\">podgl\u0105d pulpitu \u00b7 dane przyk\u0142adowe<\/span>\n<\/div>\n<div class=\"proj-body\">\n<p class=\"tag mono\">Program 1 \u00b7 aplikacja na telefon i komputer<\/p>\n<h3>Zadania, ekipy i budowy w jednym miejscu<\/h3>\n<p class=\"d\">Aplikacja do prowadzenia rob\u00f3t w terenie: co trzeba zrobi\u0107, gdzie, kto ma to zrobi\u0107, do kiedy i czy ju\u017c jest zrobione. Pracownicy korzystaj\u0105 z niej na telefonie, a kierownik widzi ca\u0142o\u015b\u0107 na pulpicie.<\/p>\n<ul class=\"ticks\">\n<li>zadania z terminami, priorytetami, statusami i listami kontrolnymi<\/li>\n<li>zdj\u0119cia z aparatu i raport zdj\u0119ciowy w PDF dla inwestora lub inspektora<\/li>\n<li>powiadomienia push o zadaniach, komentarzach i terminach<\/li>\n<li>nawigacja do budowy i telefon do kierownika jednym dotkni\u0119ciem<\/li>\n<li>logowanie z 2FA, dziennik zdarze\u0144, narz\u0119dzia u\u0142atwiaj\u0105ce zgodno\u015b\u0107 z RODO<\/li>\n<\/ul>\n<p class=\"who\"><b>Dla kogo<\/b>Firmy budowlane i instalacyjne z kilkoma ekipami i r\u00f3wnoleg\u0142ymi budowami, a tak\u017ce inne firmy us\u0142ugowe z pracownikami w terenie.<\/p>\n<ul class=\"chips\"><li>Next.js<\/li><li>TypeScript<\/li><li>PostgreSQL<\/li><li>Docker<\/li><li>instalacja z przegl\u0105darki (PWA)<\/li><\/ul>\n<a class=\"btn btn-ghost\" style=\"margin-top:18px\" href=\"\/index.php\/aplikacja-do-zarzadzania-budowami\/\">Zobacz szczeg\u00f3\u0142y programu \u2192<\/a>\n<\/div>\n<\/article>\n<article class=\"proj\">\n<div class=\"shot shot-map\" role=\"img\" aria-label=\"Mapa modu\u0142\u00f3w systemu: klienci, urz\u0105dzenia, umowy i SLA, zg\u0142oszenia, przegl\u0105dy kas fiskalnych, powiadomienia.\">\n<div class=\"map\" aria-hidden=\"true\">\n<div class=\"nd\">Klienci<small>lokalizacje, kontakty<\/small><\/div>\n<div class=\"nd\">Urz\u0105dzenia<small>import, kody QR<\/small><\/div>\n<div class=\"nd\">Umowy i SLA<small>czasy reakcji<\/small><\/div>\n<div class=\"nd\">Zg\u0142oszenia<small>statusy, zdj\u0119cia, e-mail<\/small><\/div>\n<div class=\"nd\">Przegl\u0105dy kas<small>terminy, gwarancja<\/small><\/div>\n<div class=\"nd hl\">Powiadomienia<small>SMS \u00b7 e-mail \u00b7 push<\/small><\/div>\n<\/div>\n<span class=\"shot-cap mono\">mapa modu\u0142\u00f3w systemu<\/span>\n<\/div>\n<div class=\"proj-body\">\n<p class=\"tag mono\">Program 2 \u00b7 system obs\u0142ugi serwisu<\/p>\n<h3>Zg\u0142oszenia, sprz\u0119t klient\u00f3w i umowy SLA<\/h3>\n<p class=\"d\">System dla firmy serwisowej: przyjmowanie zg\u0142osze\u0144, ewidencja urz\u0105dze\u0144 klient\u00f3w, umowy serwisowe z czasami reakcji oraz przypomnienia o terminach przegl\u0105d\u00f3w i gwarancji.<\/p>\n<ul class=\"ticks\">\n<li>zg\u0142oszenia z obiegiem status\u00f3w, zdj\u0119ciami, odbiorem poczty e-mail i rejestracj\u0105 czasu pracy<\/li>\n<li>ewidencja urz\u0105dze\u0144, import z CSV i Excela, kody QR na sprz\u0119cie<\/li>\n<li>umowy serwisowe i SLA, sprz\u0119t zast\u0119pczy, oferty, przegl\u0105dy okresowe<\/li>\n<li>terminy przegl\u0105d\u00f3w kas fiskalnych i przypomnienia przez SMS, e-mail i push<\/li>\n<li>role i uprawnienia, 2FA, dziennik audytowy<\/li>\n<\/ul>\n<p class=\"who\"><b>Dla kogo<\/b>Firmy serwisowe, sklepy komputerowe i dzia\u0142y IT, kt\u00f3re obs\u0142uguj\u0105 sprz\u0119t klient\u00f3w na umowach i musz\u0105 pilnowa\u0107 termin\u00f3w, gwarancji i czas\u00f3w reakcji.<\/p>\n<ul class=\"chips\"><li>Python<\/li><li>Django<\/li><li>React<\/li><li>TypeScript<\/li><li>PostgreSQL<\/li><li>Celery<\/li><li>Docker<\/li><\/ul>\n<\/div>\n<\/article>\n<\/div>\n<div class=\"ideas-head\">\n<h3>Pomys\u0142y na kolejne programy<\/h3>\n<p>To propozycje narz\u0119dzi, kt\u00f3re cz\u0119sto przydaj\u0105 si\u0119 ma\u0142ym i \u015brednim firmom. Ka\u017cde mog\u0119 dopasowa\u0107 do Twojego sposobu pracy.<\/p>\n<\/div>\n<div class=\"ideas\">\n<article class=\"idea\"><span class=\"st\">Propozycja<\/span><h4>Lekki rejestr zg\u0142osze\u0144<\/h4><p>Wersja dla mniejszych firm: zg\u0142oszenia, statusy i historia napraw w jednym miejscu, bez rozbudowanych modu\u0142\u00f3w.<\/p><\/article>\n<article class=\"idea\"><span class=\"st\">Propozycja<\/span><h4>Ewidencja sprz\u0119tu i licencji<\/h4><p>Wiesz, kto ma jaki komputer i kiedy ko\u0144czy si\u0119 gwarancja lub licencja, a program sam przypomina o terminach.<\/p><\/article>\n<article class=\"idea\"><span class=\"st\">Propozycja<\/span><h4>Kalkulator ofert i wycen<\/h4><p>Gotowa oferta na podstawie cennik\u00f3w dostawc\u00f3w w kilka minut, w jednolitym i estetycznym wygl\u0105dzie.<\/p><\/article>\n<article class=\"idea\"><span class=\"st\">Propozycja<\/span><h4>Import cennik\u00f3w i stan\u00f3w<\/h4><p>Automatyczne wczytywanie ofert dostawc\u00f3w do arkusza lub systemu, bez r\u0119cznego przepisywania.<\/p><\/article>\n<article class=\"idea\"><span class=\"st\">Propozycja<\/span><h4>Kontrola kopii zapasowych<\/h4><p>Jedno miejsce, w kt\u00f3rym wida\u0107, czy kopie zapasowe wykona\u0142y si\u0119 poprawnie, oraz alert, gdy co\u015b posz\u0142o nie tak.<\/p><\/article>\n<article class=\"idea\"><span class=\"st\">Propozycja<\/span><h4>Automatyzacja raport\u00f3w<\/h4><p>Dane z Excela lub plik\u00f3w CSV zamieniane na gotowy raport jednym klikni\u0119ciem.<\/p><\/article>\n<\/div>\n<div class=\"ideas-cta\">\n<p><strong>Masz w\u0142asny pomys\u0142?<\/strong> <span class=\"muted\">Opisz, co ma robi\u0107 program, a oceni\u0119, czy da si\u0119 to zrobi\u0107 prosto i op\u0142acalnie.<\/span><\/p>\n<a class=\"btn btn-primary\" href=\"#kontakt\">Opisz sw\u00f3j pomys\u0142<\/a>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"sec sec-alt\" id=\"pomoc-zdalna\" aria-labelledby=\"h-zdalna\">\n<div class=\"wrap\">\n<div class=\"remote\">\n<div>\n<p class=\"kicker mono\">Pomoc zdalna<\/p>\n<h2 id=\"h-zdalna\">Wiele problem\u00f3w rozwi\u0105\u017cemy bez wizyty<\/h2>\n<p class=\"muted\" style=\"margin-top:14px\">Wystarczy komputer z internetem. Po\u0142\u0105cz\u0119 si\u0119 z Twoim ekranem, poka\u017c\u0119, co robi\u0119, i naprawi\u0119 problem razem z Tob\u0105.<\/p>\n<ol class=\"remote-steps\">\n<li><span>Zadzwo\u0144 lub napisz, a um\u00f3wimy si\u0119 na po\u0142\u0105czenie.<\/span><\/li>\n<li><span>Pobierz program <strong>AeroAdmin<\/strong> i uruchom go.<\/span><\/li>\n<li><span>Podaj mi identyfikator (ID) widoczny w oknie programu.<\/span><\/li>\n<li><span>Zaakceptuj po\u0142\u0105czenie na swoim ekranie, a ja zajm\u0119 si\u0119 reszt\u0105.<\/span><\/li>\n<\/ol>\n<\/div>\n<aside class=\"card dl\">\n<div class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg><\/div>\n<h3>Pobierz AeroAdmin<\/h3>\n<p class=\"file mono\">AeroAdmin.exe \u00b7 dla Windows<\/p>\n<a class=\"btn btn-primary\" href=\"https:\/\/ulm.aeroadmin.com\/AeroAdmin.exe\" rel=\"noopener\">Pobierz program do zdalnego sterowania<\/a>\n<p class=\"safe\">\u0141\u0105cz si\u0119 zdalnie tylko z osob\u0105, kt\u00f3rej ufasz, po wcze\u015bniejszym kontakcie telefonicznym lub e-mailowym. Po\u0142\u0105czenie mo\u017cesz zako\u0144czy\u0107 w ka\u017cdej chwili, zamykaj\u0105c program.<\/p>\n<\/aside>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"sec\" id=\"kontakt\" aria-labelledby=\"h-kontakt\">\n<div class=\"wrap\">\n<div class=\"contact\">\n<div>\n<p class=\"kicker mono\">Kontakt<\/p>\n<h2 id=\"h-kontakt\">Porozmawiajmy o Twoim problemie lub pomy\u015ble<\/h2>\n<p class=\"muted\" style=\"margin-top:14px\">Zadzwo\u0144 albo napisz. Pierwsza rozmowa pozwoli oceni\u0107, czy i jak mog\u0119 pom\u00f3c.<\/p>\n<div class=\"contact-list\">\n<a class=\"contact-item\" href=\"tel:+48510900597\">\n<span class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z\"\/><\/svg><\/span>\n<span><small>Telefon<\/small><strong>510 900 597<\/strong><\/span>\n<\/a>\n<a class=\"contact-item\" href=\"#kontakt\" data-e=\"hcet.ikswohceicjow@zsuetam\" data-show>\n<span class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg><\/span>\n<span><small>E-mail<\/small><strong data-slot>mateusz [ma\u0142pa] wojciechowski.tech<\/strong><\/span>\n<\/a>\n<div class=\"contact-item\">\n<span class=\"icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg><\/span>\n<span><small>Obszar dzia\u0142ania<\/small><strong>Elbl\u0105g i okolice \u00b7 zdalnie<\/strong><\/span>\n<\/div>\n<\/div>\n<\/div>\n<aside class=\"card brief\">\n<h3>Co napisa\u0107 w pierwszej wiadomo\u015bci?<\/h3>\n<p>Kilka zda\u0144 wystarczy. Pomog\u0105 mi szybciej zrozumie\u0107 spraw\u0119.<\/p>\n<h4>Problem z IT<\/h4>\n<ul class=\"ticks\">\n<li>jakiego sprz\u0119tu lub programu dotyczy<\/li>\n<li>co si\u0119 dzieje i od kiedy<\/li>\n<li>czy pojawia si\u0119 komunikat b\u0142\u0119du<\/li>\n<\/ul>\n<h4>Program na zam\u00f3wienie<\/h4>\n<ul class=\"ticks\">\n<li>co program ma robi\u0107 i dla kogo<\/li>\n<li>jakie dane lub systemy ma \u0142\u0105czy\u0107<\/li>\n<li>jak to robicie dzi\u015b (Excel, papier, inny program)<\/li>\n<\/ul>\n<\/aside>\n<\/div>\n<\/div>\n<\/section>\n<\/main>\n<footer class=\"foot\">\n<div class=\"wrap\">\n<span>\u00a9 2026 Mateusz Wojciechowski \u00b7 wojciechowski.tech<\/span>\n<span><a href=\"#pomoc-zdalna\">Pomoc zdalna<\/a> \u00b7 <a href=\"#kontakt\">Kontakt<\/a> \u00b7 <a href=\"#mw-top\">Do g\u00f3ry \u2191<\/a><\/span>\n<\/div>\n<\/footer>\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"ProfessionalService\",\"name\":\"Mateusz Wojciechowski \u2013 IT i oprogramowanie na zam\u00f3wienie\",\"url\":\"https:\/\/wojciechowski.tech\",\"telephone\":\"+48510900597\",\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Elbl\u0105g\",\"addressCountry\":\"PL\"},\"areaServed\":[\"Elbl\u0105g\",\"Lublin\",\"Warszawa\",\"Wroc\u0142aw\",\"Ostro\u0142\u0119ka\"],\"description\":\"Oprogramowanie na zam\u00f3wienie i rozwi\u0105zywanie problem\u00f3w IT. Ponad 20 lat do\u015bwiadczenia.\"}\n<\/script>\n<script>\n(function () {\nvar nodes = document.querySelectorAll('.mw [data-e]');\nfor (var i = 0; i < nodes.length; i++) {\nvar a = nodes[i];\nvar addr = a.getAttribute('data-e').split('').reverse().join('');\na.href = 'mailto:' + addr + '?subject=' + encodeURIComponent('Zapytanie ze strony wojciechowski.tech');\nvar slot = a.querySelector('[data-slot]');\nif (slot) slot.textContent = addr;\na.removeAttribute('data-e');\n}\n})();\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>MWMateusz Wojciechowski Us\u0142ugi Do\u015bwiadczenie Portfolio Pomoc zdalna Kontakt Zadzwo\u0144 \/\/ technicznie najlepszy Rozwi\u0105zuj\u0119 problemy IT.Pisz\u0119 programy na zam\u00f3wienie. Mateusz Wojciechowski. Ponad 20 lat w IT: od sprzeda\u017cy i kontakt\u00f3w z klientami, przez serwis komputer\u00f3w i sprz\u0119tu, po programowanie. Pracuj\u0119 dla firm i os\u00f3b z Elbl\u0105ga [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-37","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/pages\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/comments?post=37"}],"version-history":[{"count":8,"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/pages\/37\/revisions"}],"predecessor-version":[{"id":66,"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/pages\/37\/revisions\/66"}],"wp:attachment":[{"href":"https:\/\/wojciechowski.tech\/index.php\/wp-json\/wp\/v2\/media?parent=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}