368 lines
16 KiB
HTML
368 lines
16 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Ilia Dobkin — CaseWare & CaseView Development | 15+ Years</title>
|
|
<meta
|
|
name="description"
|
|
content="Senior CaseWare/CaseView developer with 15+ years building audit and financial reporting solutions for CaseWare International, MNP, Jazz, and accounting firms. JavaScript-first automation, client templates, release pipelines."
|
|
/>
|
|
<meta property="og:title" content="Ilia Dobkin — CaseWare & CaseView Development" />
|
|
<meta
|
|
property="og:description"
|
|
content="15+ years of CaseWare/CaseView development, client templates, and release automation."
|
|
/>
|
|
<meta property="og:type" content="website" />
|
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='6' fill='%230d2840'/%3E%3Cpath d='M9 11h14M9 16h14M9 21h9' stroke='%23c9a861' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link rel="stylesheet" href="styles.css" />
|
|
</head>
|
|
<body>
|
|
<a href="#main" class="skip-link">Skip to content</a>
|
|
|
|
<header class="site-header">
|
|
<div class="container header-inner">
|
|
<a href="#top" class="brand" aria-label="Ilia Dobkin — Home">
|
|
<svg class="brand-mark" width="36" height="36" viewBox="0 0 36 36" fill="none" aria-hidden="true">
|
|
<rect x="1" y="1" width="34" height="34" rx="7" stroke="currentColor" stroke-width="1.5" />
|
|
<path d="M10 12h16M10 18h16M10 24h10" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
|
|
</svg>
|
|
<span class="brand-text">
|
|
<span class="brand-name">Ilia Dobkin</span>
|
|
<span class="brand-tag">CaseWare Development</span>
|
|
</span>
|
|
</a>
|
|
<nav aria-label="Primary">
|
|
<a href="#experience">Experience</a>
|
|
<a href="#services">What I Do</a>
|
|
<a href="#impact">Impact</a>
|
|
<a href="#contact" class="nav-cta">Get in touch</a>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
|
|
<main id="main">
|
|
<!-- HERO -->
|
|
<section id="top" class="hero">
|
|
<div class="container hero-inner">
|
|
<div class="hero-eyebrow">
|
|
<span class="dot"></span>
|
|
<span>Available for new engagements</span>
|
|
</div>
|
|
<h1 class="hero-title">
|
|
15+ years building <em>CaseWare</em> and <em>CaseView</em> for firms that can't afford to slow down.
|
|
</h1>
|
|
<p class="hero-lede">
|
|
I build features, templates, and automation for global audit and financial reporting systems —
|
|
with a focus on cutting release cycles, eliminating manual steps, and making CaseWare deployments
|
|
boringly predictable.
|
|
</p>
|
|
<div class="hero-cta-row">
|
|
<a href="#contact" class="btn btn-primary">Discuss your CaseWare project</a>
|
|
<a href="https://cal.levkin.ca/ilia/consult" class="btn btn-ghost" target="_blank" rel="noopener">Book appointment</a>
|
|
<a href="#experience" class="btn btn-ghost">See experience →</a>
|
|
</div>
|
|
|
|
<dl class="hero-stats">
|
|
<div>
|
|
<dt>Years on CaseWare/CaseView</dt>
|
|
<dd>15+</dd>
|
|
</div>
|
|
<div>
|
|
<dt>Release cycle reduction</dt>
|
|
<dd>8 hrs → < 2 min</dd>
|
|
</div>
|
|
<div>
|
|
<dt>Major clients delivered for</dt>
|
|
<dd>CaseWare, MNP, JazzIt + more</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- TRUSTED BY -->
|
|
<section class="trusted" aria-label="Companies I've worked with">
|
|
<div class="container">
|
|
<p class="trusted-label">Trusted by teams at</p>
|
|
<ul class="trusted-list">
|
|
<li>CaseWare International</li>
|
|
<li>MNP</li>
|
|
<li>JazzIt</li>
|
|
<li>+ private accounting firms</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- VALUE / WHAT I DO -->
|
|
<section id="services" class="section">
|
|
<div class="container">
|
|
<div class="section-head">
|
|
<p class="kicker">What I bring to a CaseWare team</p>
|
|
<h2>From feature work to release automation — the full lifecycle.</h2>
|
|
</div>
|
|
|
|
<div class="value-grid">
|
|
<article class="value-card">
|
|
<div class="value-num">01</div>
|
|
<h3>Feature development</h3>
|
|
<p>
|
|
CaseWare and CaseView feature work using C#, .NET, and SQL Server. Built and shipped client-facing
|
|
functionality for global audit and financial reporting systems used by tens of thousands of accountants.
|
|
</p>
|
|
</article>
|
|
|
|
<article class="value-card">
|
|
<div class="value-num">02</div>
|
|
<h3>Client templates & CaseView</h3>
|
|
<p>
|
|
Custom CaseView templates and client deliverables — the kind of intricate, regulation-sensitive work
|
|
that needs both engineering rigor and an understanding of how auditors actually use the product.
|
|
</p>
|
|
</article>
|
|
|
|
<article class="value-card">
|
|
<div class="value-num">03</div>
|
|
<h3>JavaScript automation</h3>
|
|
<p>
|
|
JavaScript-based test and workflow automation across CI/CD pipelines — Jenkins, Azure DevOps, GitHub Actions.
|
|
Faster feedback for developers, fewer regressions reaching production.
|
|
</p>
|
|
</article>
|
|
|
|
<article class="value-card">
|
|
<div class="value-num">04</div>
|
|
<h3>Release pipeline optimization</h3>
|
|
<p>
|
|
Build, packaging, and release scripts that turn multi-hour manual releases into a single command.
|
|
Reproducible, auditable, and survivable when the person who wrote it is on vacation.
|
|
</p>
|
|
</article>
|
|
|
|
<article class="value-card">
|
|
<div class="value-num">05</div>
|
|
<h3>Mentorship & code review</h3>
|
|
<p>
|
|
Mentored junior developers and QA engineers across multiple teams — including formal mentorship at
|
|
CaseWare International. Better engineers ship better CaseWare.
|
|
</p>
|
|
</article>
|
|
|
|
<article class="value-card">
|
|
<div class="value-num">06</div>
|
|
<h3>Modernization & cleanup</h3>
|
|
<p>
|
|
Migrating older test suites, scripts, and template build processes to modern toolchains.
|
|
Removing the duct tape so your team can move at the speed of the audit cycle, not the build server.
|
|
</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- IMPACT / SPOTLIGHT -->
|
|
<section id="impact" class="section section-dark">
|
|
<div class="container">
|
|
<div class="impact-grid">
|
|
<div class="impact-copy">
|
|
<p class="kicker kicker-light">Signature outcome</p>
|
|
<h2>Releases that took a workday now finish before your coffee.</h2>
|
|
<p class="section-lede">
|
|
At JazzIt, I owned CaseWare/CaseView template delivery and rebuilt the build and packaging
|
|
process from the ground up. Releases dropped from roughly <strong>8 hours of manual work</strong> to
|
|
<strong>under 2 minutes</strong> — fully scripted, repeatable, and safe to hand off.
|
|
</p>
|
|
<p class="section-lede">
|
|
That same instinct — removing the slow, manual, error-prone parts of how CaseWare teams ship — is what
|
|
I bring to every engagement.
|
|
</p>
|
|
</div>
|
|
<aside class="impact-card">
|
|
<div class="impact-stat">
|
|
<span class="impact-stat-value">~99.6%</span>
|
|
<span class="impact-stat-label">faster releases</span>
|
|
</div>
|
|
<ul class="impact-list">
|
|
<li>Scripted build & packaging</li>
|
|
<li>Versioned, reproducible artifacts</li>
|
|
<li>No more “the release person is sick”</li>
|
|
<li>Predictable deploys across clients</li>
|
|
</ul>
|
|
</aside>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- EXPERIENCE -->
|
|
<section id="experience" class="section">
|
|
<div class="container">
|
|
<div class="section-head">
|
|
<p class="kicker">Experience</p>
|
|
<h2>Where I've delivered CaseWare work.</h2>
|
|
</div>
|
|
|
|
<ol class="exp-list">
|
|
<li class="exp-item">
|
|
<header class="exp-head">
|
|
<h3>CaseWare International</h3>
|
|
<span class="exp-meta">Hybrid · Full-time · 11 years</span>
|
|
</header>
|
|
<p class="exp-desc">
|
|
Eleven years inside the company that builds CaseWare — feature development, client templates,
|
|
and test automation for global audit and financial systems. Mentored junior engineers and helped
|
|
shape how teams shipped quality CaseWare features at scale.
|
|
</p>
|
|
<ul class="exp-stack">
|
|
<li>C#</li>
|
|
<li>.NET</li>
|
|
<li>SQL Server</li>
|
|
<li>JavaScript automation</li>
|
|
<li>Agile / Scrum</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="exp-item">
|
|
<header class="exp-head">
|
|
<h3>MNP</h3>
|
|
<span class="exp-meta">Remote · Full-time</span>
|
|
</header>
|
|
<p class="exp-desc">
|
|
.NET development on CaseWare and CaseView for one of Canada's largest professional services firms.
|
|
Built and maintained JavaScript-driven automation running across Jenkins and Azure DevOps pipelines,
|
|
with a focus on shortening feedback loops and stabilizing releases.
|
|
</p>
|
|
<ul class="exp-stack">
|
|
<li>C#</li>
|
|
<li>.NET Core</li>
|
|
<li>JavaScript</li>
|
|
<li>Jenkins</li>
|
|
<li>Azure DevOps</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="exp-item">
|
|
<header class="exp-head">
|
|
<h3>JazzIt</h3>
|
|
<span class="exp-meta">Remote · Contract / consulting</span>
|
|
</header>
|
|
<p class="exp-desc">
|
|
CaseWare and CaseView consulting — template delivery, custom integrations, and process automation.
|
|
Rebuilt the build and packaging pipeline from the ground up, cutting release effort from roughly
|
|
<strong>8 hours</strong> down to <strong>under 2 minutes</strong>.
|
|
</p>
|
|
<ul class="exp-stack">
|
|
<li>CaseWare</li>
|
|
<li>CaseView</li>
|
|
<li>Build automation</li>
|
|
<li>JavaScript</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- HOW I WORK -->
|
|
<section class="section section-muted">
|
|
<div class="container">
|
|
<div class="section-head">
|
|
<p class="kicker">How I work</p>
|
|
<h2>Pragmatic, low-drama, easy to plug into your team.</h2>
|
|
</div>
|
|
<div class="how-grid">
|
|
<div class="how-card">
|
|
<h3>Understand the business first</h3>
|
|
<p>CaseWare lives in audit and accounting. I learn how your team actually uses it before changing it.</p>
|
|
</div>
|
|
<div class="how-card">
|
|
<h3>Small, reviewable changes</h3>
|
|
<p>I prefer many tight pull requests over giant ones. Easier to review, easier to roll back.</p>
|
|
</div>
|
|
<div class="how-card">
|
|
<h3>Automate what's painful</h3>
|
|
<p>If a step is manual and repeated, it's a candidate for automation — and usually for a 10x speed-up.</p>
|
|
</div>
|
|
<div class="how-card">
|
|
<h3>Leave the codebase healthier</h3>
|
|
<p>Better tests, clearer scripts, and documentation that a future hire (or future me) can actually use.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CONTACT / CTA -->
|
|
<section id="contact" class="cta-section">
|
|
<div class="container cta-inner">
|
|
<p class="kicker kicker-light">Let's talk</p>
|
|
<h2>Need an experienced CaseWare developer on your team?</h2>
|
|
<p class="cta-lede">
|
|
Whether it's a feature backlog, a custom template, a flaky release pipeline, or a full audit of how your
|
|
team ships CaseWare — I'd be glad to take a look.
|
|
</p>
|
|
<div class="cta-row">
|
|
<a class="btn btn-primary btn-large" href="https://cal.levkin.ca/ilia/consult" target="_blank" rel="noopener">
|
|
Book appointment
|
|
</a>
|
|
<a class="btn btn-ghost btn-large" href="mailto:idobkin@gmail.com?subject=CaseWare%20project%20enquiry">
|
|
Email idobkin@gmail.com
|
|
</a>
|
|
<a class="btn btn-ghost btn-large" href="https://www.linkedin.com/in/ilia-dobkin-8263343/" target="_blank" rel="noopener">
|
|
Connect on LinkedIn →
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<footer class="site-footer">
|
|
<div class="container footer-inner">
|
|
<p>© <span id="year"></span> Ilia Dobkin · CaseWare & CaseView Development</p>
|
|
<p class="footer-meta">
|
|
<a href="mailto:idobkin@gmail.com">idobkin@gmail.com</a>
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script>
|
|
document.getElementById("year").textContent = new Date().getFullYear();
|
|
|
|
const header = document.querySelector(".site-header");
|
|
const onScroll = () => header.classList.toggle("is-scrolled", window.scrollY > 8);
|
|
onScroll();
|
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
|
|
// Reveal on scroll — only enable when JS + IntersectionObserver are available.
|
|
// Use a class on <html> so CSS controls initial state safely.
|
|
if ("IntersectionObserver" in window) {
|
|
document.documentElement.classList.add("js-reveal");
|
|
const targets = document.querySelectorAll(
|
|
".section, .hero-inner, .impact-grid, .exp-item, .value-card, .how-card"
|
|
);
|
|
const io = new IntersectionObserver(
|
|
(entries) => {
|
|
entries.forEach((e) => {
|
|
if (e.isIntersecting) {
|
|
e.target.classList.add("is-in");
|
|
io.unobserve(e.target);
|
|
}
|
|
});
|
|
},
|
|
{ threshold: 0.08, rootMargin: "0px 0px -40px 0px" }
|
|
);
|
|
targets.forEach((el) => {
|
|
el.classList.add("reveal");
|
|
io.observe(el);
|
|
});
|
|
// Safety net: reveal anything still hidden after 1.5s (covers full-page screenshots).
|
|
setTimeout(() => {
|
|
targets.forEach((el) => el.classList.add("is-in"));
|
|
}, 1500);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|