Profile picture Ashley Willis

Ashley Willis

Sr. Director of Developer Advocacy

Seattle, WA

I've built my career in Open Source by focusing on people, not just projects. At GitHub, I lead Developer Relations with a commitment to helping developers grow and communities thrive. The technical challenges matter, but so do the human connections. I believe the best work happens when we make space for both.

$ npx ashleywillis
Initializing...
Connected to ashley.dev
Links loaded. Standing by...
interface Developer {
    name: string;
    skills: string[];
    interests: string[];
};

interface TechStack {
    devOps: string[];
    backend: string[];
    frontend: string[];
    design: string[];
};

type ContactType = 
    | 'github' 
    | 'twitter' 
    | 'linkedIn' 
    | 'bluesky' 
    | 'email';

const techStack: TechStack = {
    devOps: [
        'GitHub',
        'Docker',
        'Kubernetes',
        'Cloudflare'
    ],
    backend: [
        'Golang',
        'Python',
        'Node.js',
        'Flask'
    ],
    frontend: [
        'JavaScript',
        'Angular',
        'Vue.js',
        'Jinja2',
        'HTML5',
        'CSS3',
        'TailwindCSS',
        'Astro',
        'SCSS',
        'Markdown',
        'WordPress'
    ],
    design: [
        'Adobe Illustrator'
    ]
};

// Developer profile
const me: Developer = {
    name: 'Ashley Willis',
    skills: [
        ...techStack.devOps,
        ...techStack.backend,
        ...techStack.frontend,
        ...techStack.design
    ],
    interests: [
        'Open Source',
        'Developer Experience',
        'Developer Relations',
        'Performance',
        'AI',
        'Accessibility',
        'Networking',
        'Photography',
        'Maker Projects',
        'Public Speaking'
    ]
};

// Contact function
const contact = (type: ContactType): string => {
    switch (type) {
        case 'github':
            return 'https://github.com/ashleymcnamara';
        case 'twitter':
            return 'https://x.com/ashleymcnamara';
        case 'linkedIn':
            return 'https://www.linkedin.com/in/ashleymcnamara1';
        case 'bluesky':
            return 'https://bsky.app/profile/ashley.dev';
        case 'email':
            return 'hello@ashley.dev';
        default:
            return 'Send fax.';
    }
};