More font tweaks

This commit is contained in:
Ian Keane 2026-08-27 12:55:55 -04:00
parent 230bc5a002
commit 6e8d7bc106
4 changed files with 83 additions and 50 deletions

View file

@ -8,15 +8,25 @@
(cons 'email email)
(cons 'location location)))
(define (make-project name date-start date-end summary-bullets detail-bullets technologies . rest)
(list 'project
;; Work-experience project: bullet summary + hover-reveal detail bullets
(define (make-work-project name date-start date-end summary-bullets detail-bullets technologies)
(list 'work-project
(cons 'name name)
(cons 'date-start date-start)
(cons 'date-end date-end)
(cons 'summary-bullets summary-bullets)
(cons 'detail-bullets detail-bullets)
(cons 'technologies technologies)
(cons 'url (if (null? rest) #f (car rest)))))
(cons 'technologies technologies)))
;; Hobby/personal project: sentence summary + hover-reveal (label . url) links
(define (make-project name date-start date-end summary detail-links technologies)
(list 'project
(cons 'name name)
(cons 'date-start date-start)
(cons 'date-end date-end)
(cons 'summary summary)
(cons 'detail-links detail-links)
(cons 'technologies technologies)))
;; Title card: lives inside a job card
;; blurb responsibility bullets
@ -93,37 +103,34 @@
"Senior Software Engineer" "Acme Corp" "Remote" "Jun 2022" "Present"
'("Led a team of 4 engineers on the core platform, driving adoption of internal developer tooling and mentoring junior engineers through architecture proposals and code review.")
(list
(make-project
(make-work-project
"Distributed Config Service" "Mar 2023" "Present"
'("Built a Raft-based distributed config store used by 40+ services.")
'("Designed the consensus layer using a custom Raft implementation in Go."
'("Raft-based distributed config store serving 40+ services with <500 ms p99 propagation.")
'("Designed consensus layer with custom Raft in Go."
"Added multi-region replication with conflict-free merge semantics."
"Reduced config propagation time from ~30 s to <500 ms p99.")
"Reduced config propagation from ~30 s to <500 ms p99.")
'("Go" "Raft" "gRPC" "Kubernetes" "Prometheus"))
(make-project
(make-work-project
"Developer Portal" "Jun 2022" "Feb 2023"
'("Unified internal service catalogue and runbook search into one portal.")
'("Indexed 300+ services via OpenAPI scraping and custom metadata YAML."
"Built a fuzzy-search backend in Go backed by Bleve."
"Reduced mean time-to-runbook from ~8 min to <30 s.")
'("Unified internal service catalogue and runbook search; cut time-to-runbook from 8 min to <30 s.")
'("Indexed 300+ services via OpenAPI scraping."
"Built fuzzy-search backend in Go with Bleve.")
'("Go" "Bleve" "React" "OpenAPI"))))
(make-title
"Software Engineer II" "Acme Corp" "Remote" "Jan 2020" "May 2022"
'("Owned the authentication service end-to-end, reducing API latency by 35% through targeted caching improvements.")
(list
(make-project
(make-work-project
"Auth Service Rewrite" "Jan 2020" "Dec 2020"
'("Rewrote legacy PHP auth service in Go; cut p99 latency from 800 ms to 40 ms.")
'("Migrated 12 M users with zero downtime using a dual-write/dark-read strategy."
"Introduced PKCE OAuth 2.0 flow replacing home-grown session tokens."
"Added comprehensive integration test suite with 92% coverage.")
'("Rewrote legacy PHP auth service in Go; cut p99 latency 800 ms → 40 ms.")
'("Migrated 12 M users with zero downtime via dual-write/dark-read."
"Introduced PKCE OAuth 2.0 replacing home-grown session tokens.")
'("Go" "PostgreSQL" "Redis" "OAuth2" "Docker"))
(make-project
(make-work-project
"Rate Limiting Layer" "Feb 2021" "May 2022"
'("Implemented token-bucket rate limiting across all public API endpoints.")
'("Built as a gRPC interceptor; config hot-reloaded from the config service."
"Reduced abusive traffic incidents by 80% in the first quarter after launch."
"Added per-tenant override rules managed via an internal admin UI.")
'("Token-bucket rate limiting across all public API endpoints; reduced abusive traffic by 80%.")
'("Built as a gRPC interceptor with hot-reloaded config."
"Added per-tenant override rules via internal admin UI.")
'("Go" "gRPC" "Redis" "React")))))))
(define job-startup
@ -134,12 +141,11 @@
"Full-Stack Engineer" "Startup XYZ" "Athens, GA" "Jul 2017" "Dec 2019"
'("Built product features across the React frontend and Node.js backend, maintained CI/CD pipelines and AWS infrastructure, and collaborated directly with design and product teams.")
(list
(make-project
(make-work-project
"Real-Time Dashboard" "Feb 2019" "Dec 2019"
'("Delivered a live analytics dashboard processing 50k events/s.")
'("Replaced polling with WebSocket fan-out, cutting server load by 60%."
"Implemented client-side time-series aggregation using D3.js."
"Added user-configurable alert thresholds stored in IndexedDB.")
'("Live analytics dashboard processing 50k events/s via WebSocket fan-out.")
'("Replaced polling, cutting server load by 60%."
"User-configurable alert thresholds stored in IndexedDB.")
'("React" "Node.js" "WebSockets" "D3.js" "AWS")))))))
(define my-education
@ -159,19 +165,14 @@
(list
(make-project
"schemeresume" "Aug 2026" "Present"
'("A resume generator written in Scheme that produces HTML via SXML.")
'("Defined a small DSL for resume data in resume.scm."
"generate.scm walks the data and emits SXML serialised to HTML."
"CSS handles all layout including the two-column split.")
'("Scheme" "SXML" "HTML" "CSS")
"https://github.com/janedoe/schemeresume")
"Resume generator written in Scheme; data as S-expressions, rendered to HTML via SXML."
'(("GitHub" . "https://github.com/janedoe/schemeresume"))
'("Scheme" "SXML" "HTML" "CSS"))
(make-project
"Tiny Lisp Interpreter" "Jan 2025" "Mar 2025"
'("A 600-line Lisp interpreter in Python supporting tail-call optimisation.")
'("Implemented environments as linked frames, closures, and a macro expander."
"Added a REPL with readline history and pretty-printing.")
'("Python" "Lisp")
"https://github.com/janedoe/tinylisp"))))
"600-line Lisp interpreter in Python with tail-call optimisation, closures, and a macro expander."
'(("GitHub" . "https://github.com/janedoe/tinylisp"))
'("Python" "Lisp")))))
(define my-interests
(make-interests