Skip to main content
Glama

hire_me

Hire Duyet for full-time, contract, consulting, or part-time roles by providing role type, tech stack, and company details to match expertise and experience.

Instructions

Get information about hiring Duyet for various roles - full-time, contract, consulting, or part-time positions. Includes expertise, experience, and next steps

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
role_typeNoType of engagement you're interested in
tech_stackNoTechnologies/tools your project uses
company_sizeNoCompany size/type
contact_emailNoOptional: Your email for follow-up
additional_notesNoOptional: Additional notes or specific requirements (max 500 characters)

Implementation Reference

  • Core execution logic of the 'hire_me' tool: handles inputs, rate limits submissions, generates personalized hiring information based on role/tech/company, saves inquiries to database, returns formatted text response with expertise details.
    		async ({ role_type, tech_stack, company_size, contact_email, additional_notes }) => {
    			// Check rate limiting if user is submitting data (not just browsing)
    			if (contact_email || additional_notes || role_type || tech_stack || company_size) {
    				const rateLimitCheck = await checkRateLimit(db, contact_email, "hire_me");
    				if (!rateLimitCheck.allowed) {
    					return {
    						content: [
    							{
    								type: "text",
    								text: `Rate Limit Exceeded
    
    ${rateLimitCheck.reason}
    
    ${rateLimitCheck.retryAfter ? `You can try again in ${Math.ceil(rateLimitCheck.retryAfter / 60)} minutes.` : ""}
    
    Alternative: Email me directly at me@duyet.net with your hiring inquiry.`,
    							},
    						],
    						isError: true,
    					};
    				}
    			}
    
    			const currentYear = new Date().getFullYear();
    			const experience = currentYear - 2017;
    
    			let roleSpecificInfo = "";
    
    			if (role_type) {
    				const roleInfo = {
    					full_time: {
    						title: "Full-time Position",
    						details:
    							"Open to senior/lead data engineering roles with remote flexibility. Prefer companies with strong engineering culture and growth opportunities.",
    					},
    					contract: {
    						title: "Contract Work",
    						details:
    							"Available for 3-6 month contracts. Specializing in data platform modernization, ClickHouse implementations, and cloud migrations.",
    					},
    					consulting: {
    						title: "Consulting Services",
    						details:
    							"Strategic consulting for data architecture, technology selection, and team building. Ideal for scaling data infrastructure.",
    					},
    					part_time: {
    						title: "Part-time Engagement",
    						details:
    							"Limited availability for part-time roles. Best suited for advisory positions or specialized technical contributions.",
    					},
    				};
    
    				const info = roleInfo[role_type as keyof typeof roleInfo];
    				roleSpecificInfo = `\n${info.title}: ${info.details}\n`;
    			}
    
    			let techStackMatch = "";
    			if (tech_stack) {
    				const preferredTech = [
    					"clickhouse",
    					"kafka",
    					"kubernetes",
    					"rust",
    					"python",
    					"typescript",
    					"llms",
    					"ai agents",
    				];
    				const matchingTech = preferredTech.filter((tech) =>
    					tech_stack.toLowerCase().includes(tech),
    				);
    
    				if (matchingTech.length > 0) {
    					techStackMatch = `\nTech match: Your stack includes ${matchingTech.join(", ")} - technologies I have deep experience with.\n`;
    				} else {
    					techStackMatch = `\nTech stack: ${tech_stack}\nI can evaluate fit based on my experience with similar technologies.\n`;
    				}
    			}
    
    			let companySizeInfo = "";
    			if (company_size) {
    				const sizePreferences = {
    					startup:
    						"Perfect! I enjoy the fast-paced environment and building data foundations from scratch.",
    					scale_up:
    						"Excellent fit! I have strong experience scaling data systems and building robust infrastructure.",
    					enterprise:
    						"Open to the right opportunity, especially roles involving modernization and innovation.",
    					agency: "Interested in project-based work and bringing data expertise to diverse client challenges.",
    				};
    				companySizeInfo = `\n${sizePreferences[company_size as keyof typeof sizePreferences]}\n`;
    			}
    
    			// Save hire inquiry to database if any optional data is provided
    			let referenceId: string | undefined;
    			if (contact_email || additional_notes || role_type || tech_stack || company_size) {
    				referenceId = crypto.randomUUID();
    				const ip_address = "unknown";
    				const user_agent = "MCP Client";
    
    				// Create a message from the provided information
    				const messageParts = [];
    				if (role_type) messageParts.push(`Role Type: ${role_type}`);
    				if (tech_stack) messageParts.push(`Tech Stack: ${tech_stack}`);
    				if (company_size) messageParts.push(`Company Size: ${company_size}`);
    				if (additional_notes) messageParts.push(`Notes: ${additional_notes}`);
    
    				const message =
    					messageParts.length > 0
    						? `Hire Me Inquiry - ${messageParts.join(", ")}`
    						: "Hire Me Inquiry";
    
    				try {
    					await db.insert(contacts).values({
    						message,
    						contactEmail: contact_email,
    						purpose: "hire_me",
    						roleType: role_type,
    						techStack: tech_stack,
    						companySize: company_size,
    						ipAddress: ip_address,
    						userAgent: user_agent,
    						referenceId,
    					});
    				} catch (_e: any) {
    					// Continue execution even if DB save fails, but don't expose the reference ID
    					referenceId = undefined;
    				}
    			}
    
    			return {
    				content: [
    					{
    						type: "text",
    						text: `Hire Duyet - Senior Data Engineer
    
    Experience: ${experience}+ years in Data Engineering
    Specialization: Data Platform Architecture, Real-time Analytics, Cloud Infrastructure
    Location: Remote-first, open to global opportunities
    
    ${roleSpecificInfo}${techStackMatch}${companySizeInfo}
    
    Core Expertise:
    - Data Platforms: ClickHouse, Airflow
    - Languages: Rust, Python, TypeScript, SQL
    - Infrastructure: Kubernetes, Docker, Terraform
    - Databases: ClickHouse, PostgreSQL, Redis, DuckDB, etc.
    
    What I Bring:
    - Design and implement scalable data architectures
    - Modernize legacy data systems
    - Build real-time analytics pipelines  
    - Optimize query performance and costs
    - Mentor data engineering teams
    - Strong DevOps and infrastructure background
    
    Recent Achievements:
    - Built data platforms handling billions of events daily
    - Reduced query times by 90% through ClickHouse optimization
    - Led teams in migrating from legacy to modern data stack
    - Open source contributor with 1000+ GitHub stars
    
    Next Steps:
    1. Review: Check my CV at https://duyet.net/cv
    2. Portfolio: Explore projects at https://github.com/duyet  
    3. Contact: Email me@duyet.net with:
       - Role details and requirements
       - Company info and team structure
       - Technical challenges you're facing
       - Timeline and budget expectations
    
    Ideal Opportunities:
    - Data Platform Architect
    - Data Platform Engineer
    - AI Agent Engineer
    - Remote-first companies with strong engineering culture
    
    Ready to discuss how I can help solve your data challenges.
    
    ${referenceId ? `\n---\nInquiry Reference ID: ${referenceId}\nYour hiring inquiry has been saved for follow-up.` : ""}`,
    					},
    				],
    			};
    		},
  • MCP tool input schema defining optional parameters for hire inquiries: role_type (enum), tech_stack, company_size (enum), contact_email, additional_notes.
    inputSchema: {
    	role_type: roleTypeSchema.describe("Type of engagement you're interested in"),
    	tech_stack: techStackSchema.describe("Technologies/tools your project uses"),
    	company_size: companySizeSchema.describe("Company size/type"),
    	contact_email: contactEmailSchema.describe("Optional: Your email for follow-up"),
    	additional_notes: additionalNotesSchema.describe(
    		"Optional: Additional notes or specific requirements (max 500 characters)",
    	),
    },
  • Function to register the 'hire_me' MCP tool with server, including tool name, metadata, schema, and handler. Initializes DB connection.
    export function registerHireMeTool(server: McpServer, env: Env) {
    	const db = getDb(env.DB);
    	server.registerTool(
    		"hire_me",
    		{
    			title: "Hire Me",
    			description:
    				"Get information about hiring Duyet for various roles - full-time, contract, consulting, or part-time positions. Includes expertise, experience, and next steps",
    			inputSchema: {
    				role_type: roleTypeSchema.describe("Type of engagement you're interested in"),
    				tech_stack: techStackSchema.describe("Technologies/tools your project uses"),
    				company_size: companySizeSchema.describe("Company size/type"),
    				contact_email: contactEmailSchema.describe("Optional: Your email for follow-up"),
    				additional_notes: additionalNotesSchema.describe(
    					"Optional: Additional notes or specific requirements (max 500 characters)",
    				),
    			},
    		},
    		async ({ role_type, tech_stack, company_size, contact_email, additional_notes }) => {
    			// Check rate limiting if user is submitting data (not just browsing)
    			if (contact_email || additional_notes || role_type || tech_stack || company_size) {
    				const rateLimitCheck = await checkRateLimit(db, contact_email, "hire_me");
    				if (!rateLimitCheck.allowed) {
    					return {
    						content: [
    							{
    								type: "text",
    								text: `Rate Limit Exceeded
    
    ${rateLimitCheck.reason}
    
    ${rateLimitCheck.retryAfter ? `You can try again in ${Math.ceil(rateLimitCheck.retryAfter / 60)} minutes.` : ""}
    
    Alternative: Email me directly at me@duyet.net with your hiring inquiry.`,
    							},
    						],
    						isError: true,
    					};
    				}
    			}
    
    			const currentYear = new Date().getFullYear();
    			const experience = currentYear - 2017;
    
    			let roleSpecificInfo = "";
    
    			if (role_type) {
    				const roleInfo = {
    					full_time: {
    						title: "Full-time Position",
    						details:
    							"Open to senior/lead data engineering roles with remote flexibility. Prefer companies with strong engineering culture and growth opportunities.",
    					},
    					contract: {
    						title: "Contract Work",
    						details:
    							"Available for 3-6 month contracts. Specializing in data platform modernization, ClickHouse implementations, and cloud migrations.",
    					},
    					consulting: {
    						title: "Consulting Services",
    						details:
    							"Strategic consulting for data architecture, technology selection, and team building. Ideal for scaling data infrastructure.",
    					},
    					part_time: {
    						title: "Part-time Engagement",
    						details:
    							"Limited availability for part-time roles. Best suited for advisory positions or specialized technical contributions.",
    					},
    				};
    
    				const info = roleInfo[role_type as keyof typeof roleInfo];
    				roleSpecificInfo = `\n${info.title}: ${info.details}\n`;
    			}
    
    			let techStackMatch = "";
    			if (tech_stack) {
    				const preferredTech = [
    					"clickhouse",
    					"kafka",
    					"kubernetes",
    					"rust",
    					"python",
    					"typescript",
    					"llms",
    					"ai agents",
    				];
    				const matchingTech = preferredTech.filter((tech) =>
    					tech_stack.toLowerCase().includes(tech),
    				);
    
    				if (matchingTech.length > 0) {
    					techStackMatch = `\nTech match: Your stack includes ${matchingTech.join(", ")} - technologies I have deep experience with.\n`;
    				} else {
    					techStackMatch = `\nTech stack: ${tech_stack}\nI can evaluate fit based on my experience with similar technologies.\n`;
    				}
    			}
    
    			let companySizeInfo = "";
    			if (company_size) {
    				const sizePreferences = {
    					startup:
    						"Perfect! I enjoy the fast-paced environment and building data foundations from scratch.",
    					scale_up:
    						"Excellent fit! I have strong experience scaling data systems and building robust infrastructure.",
    					enterprise:
    						"Open to the right opportunity, especially roles involving modernization and innovation.",
    					agency: "Interested in project-based work and bringing data expertise to diverse client challenges.",
    				};
    				companySizeInfo = `\n${sizePreferences[company_size as keyof typeof sizePreferences]}\n`;
    			}
    
    			// Save hire inquiry to database if any optional data is provided
    			let referenceId: string | undefined;
    			if (contact_email || additional_notes || role_type || tech_stack || company_size) {
    				referenceId = crypto.randomUUID();
    				const ip_address = "unknown";
    				const user_agent = "MCP Client";
    
    				// Create a message from the provided information
    				const messageParts = [];
    				if (role_type) messageParts.push(`Role Type: ${role_type}`);
    				if (tech_stack) messageParts.push(`Tech Stack: ${tech_stack}`);
    				if (company_size) messageParts.push(`Company Size: ${company_size}`);
    				if (additional_notes) messageParts.push(`Notes: ${additional_notes}`);
    
    				const message =
    					messageParts.length > 0
    						? `Hire Me Inquiry - ${messageParts.join(", ")}`
    						: "Hire Me Inquiry";
    
    				try {
    					await db.insert(contacts).values({
    						message,
    						contactEmail: contact_email,
    						purpose: "hire_me",
    						roleType: role_type,
    						techStack: tech_stack,
    						companySize: company_size,
    						ipAddress: ip_address,
    						userAgent: user_agent,
    						referenceId,
    					});
    				} catch (_e: any) {
    					// Continue execution even if DB save fails, but don't expose the reference ID
    					referenceId = undefined;
    				}
    			}
    
    			return {
    				content: [
    					{
    						type: "text",
    						text: `Hire Duyet - Senior Data Engineer
    
    Experience: ${experience}+ years in Data Engineering
    Specialization: Data Platform Architecture, Real-time Analytics, Cloud Infrastructure
    Location: Remote-first, open to global opportunities
    
    ${roleSpecificInfo}${techStackMatch}${companySizeInfo}
    
    Core Expertise:
    - Data Platforms: ClickHouse, Airflow
    - Languages: Rust, Python, TypeScript, SQL
    - Infrastructure: Kubernetes, Docker, Terraform
    - Databases: ClickHouse, PostgreSQL, Redis, DuckDB, etc.
    
    What I Bring:
    - Design and implement scalable data architectures
    - Modernize legacy data systems
    - Build real-time analytics pipelines  
    - Optimize query performance and costs
    - Mentor data engineering teams
    - Strong DevOps and infrastructure background
    
    Recent Achievements:
    - Built data platforms handling billions of events daily
    - Reduced query times by 90% through ClickHouse optimization
    - Led teams in migrating from legacy to modern data stack
    - Open source contributor with 1000+ GitHub stars
    
    Next Steps:
    1. Review: Check my CV at https://duyet.net/cv
    2. Portfolio: Explore projects at https://github.com/duyet  
    3. Contact: Email me@duyet.net with:
       - Role details and requirements
       - Company info and team structure
       - Technical challenges you're facing
       - Timeline and budget expectations
    
    Ideal Opportunities:
    - Data Platform Architect
    - Data Platform Engineer
    - AI Agent Engineer
    - Remote-first companies with strong engineering culture
    
    Ready to discuss how I can help solve your data challenges.
    
    ${referenceId ? `\n---\nInquiry Reference ID: ${referenceId}\nYour hiring inquiry has been saved for follow-up.` : ""}`,
    					},
    				],
    			};
    		},
    	);
    }
  • Invocation of hire_me tool registration within the overall tools registration function.
    registerHireMeTool(server, env);
    logger.tool("hire_me", "registered");
  • Database table schema (contacts) with purpose enum including 'hire_me' and matching fields for storing tool inputs.
    // Additional fields for hire_me entries
    roleType: text("role_type", {
    	enum: ["full_time", "contract", "consulting", "part_time"],
    }),
    techStack: text("tech_stack"),
    companySize: text("company_size", {
    	enum: ["startup", "scale_up", "enterprise", "agency"],
    }),

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/duyet/duyet-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server