Link copied to clipboard!
Back to Jobs
H-GAG DevOps Engineer at vTech Solution
vTech Solution
Houston, MS
Information Technology
Posted 0 days ago
Job Description
Job Summary: The DevOps Engineer role focuses on implementing automation CI/CD observability and operational resilience for Azure data services. This involves automating infrastructure deployment configuring build and release pipelines integrating monitoring solutions developing backup and recovery scripts and supporting security enforcement. Location:Houston Texas United States Responsibilities: - Automate deployment of infrastructure via ARM/Bicep/Terraform. - Configure build and release pipelines for data workflows. - Integrate logging alerting and cost monitoring with Azure Monitor Log Analytics and Application Insights. - Develop automated backup and recovery scripts. - Support security enforcement (private endpoints managed identities). - Provide operational readiness testing and DR validation. Required Skills & Certifications: - 5 years in DevOps with Azure Cloud. - Proficiency in CI/CD (Azure DevOps GitHub Actions). - Familiarity with PowerShell YAML and IaC. Preferred Skills & Certifications: - Experience with FinOps and environment monitoring. Special Considerations: - Not specified. Scheduling: use client; import * as React from react; import ColumnDef flexRender getCoreRowModel useReactTable from @tanstack/react-table; import Table TableBody TableCell TableHead TableHeader TableRow from @/components/ui/table; import Card CardContent CardHeader CardTitle CardDescription from @/components/ui/card; import CheckCircle2 XCircle Pencil Trash2 Plus from lucide-react; import Button from @/components/ui/button; type ComplianceMatrixRow id: string; rfpSection: string; requirementSummary: string; painPoint: string; proposalSection: string; vtechSolution: string; keyDifferentiator: string; compliant: string; clarifications: string; priceToWinStrategy: string; ; type Props data: ComplianceMatrixRow; onSave: (row: ComplianceMatrixRow) > Promise; readOnly: boolean; ; export function ComplianceMatrix( data: initialData onSave readOnly false : Props) const data setData (initialData); const editingRowId setEditingRowId (null); const editBuffer setEditBuffer (null); const saving setSaving (false); (() > setData(initialData); initialData); const startEditing (row: ComplianceMatrixRow) > setEditingRowId(); setEditBuffer( ...row ); ; const cancelEditing () > setEditingRowId(null); setEditBuffer(null); ; const updateEditBuffer (field: keyof ComplianceMatrixRow value: any) > setEditBuffer(prev > ( ...(prev ) field: value )); ; const saveEditing async () > if (!editingRowId !editBuffer) return; setSaving(true); try // Optimistic update setData(prev > (r > ( editingRowId ( ...(r as any) ...(editBuffer as any) ) : r))); // API call to save changes if (onSave) await onSave(editBuffer as ComplianceMatrixRow); setEditingRowId(null); setEditBuffer(null); catch (err: any) alert(Error saving: $ Unknown error); finally setSaving(false); ; const handleDeleteRow (id: string) > if (!confirm(Are you sure you want to delete this row)) return; setData(prev > (r > ! id)); if (editingRowId id) cancelEditing(); ; const handleAddRow () > const newRow: ComplianceMatrixRow id: new-$() rfpSection: requirementSummary: painPoint: proposalSection: vtechSolution: keyDifferentiator: compliant: clarifications: priceToWinStrategy: ; setData(prev > ...prev newRow); setTimeout(() > startEditing(newRow) 50); ; const columns: ColumnDef accessorKey: rfpSection header: RFP Section/ID cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(rfpSection ) classNamew-full border rounded px-2 py-1 /> ) : ( (rfpSection) ); accessorKey: requirementSummary header: Requirement Summary cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(requirementSummary ) classNamew-full border rounded px-2 py-1 min-h-64px resize-y /> ) : ( (requirementSummary) ); accessorKey: painPoint header: Pain Point / Need cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(painPoint ) classNamew-full border rounded px-2 py-1 min-h-48px resize-y /> ) : ( (painPoint) ); accessorKey: proposalSection header: Proposal Section cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(proposalSection ) classNamew-full border rounded px-2 py-1 /> ) : ( (proposalSection) ); accessorKey: vtechSolution header: vTech Solution Summary cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(vtechSolution ) classNamew-full border rounded px-2 py-1 min-h-64px resize-y /> ) : ( (vtechSolution) ); accessorKey: keyDifferentiator header: Key Differentiator cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(keyDifferentiator ) classNamew-full border rounded px-2 py-1 min-h-48px resize-y /> ) : ( (keyDifferentiator) ); accessorKey: compliant header: Compliant cell: ( row ) > const isEditing editingRowId && !readOnly; if (isEditing) return ( updateEditBuffer(compliant ) classNameborder rounded px-2 py-1 > Select Yes No Yes (YES) ); const compliantValue String((compliant) ).toUpperCase().trim(); const isCompliant compliantValue Y compliantValue YES; return isCompliant : ; accessorKey: clarifications header: Clarifications / Assumptions cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(clarifications ) classNamew-full border rounded px-2 py-1 min-h-48px resize-y /> ) : ( (clarifications) ); accessorKey: priceToWinStrategy header: Price-to-Win Strategy cell: ( row ) > const isEditing editingRowId && !readOnly; return isEditing ( updateEditBuffer(priceToWinStrategy ) classNamew-full border rounded px-2 py-1 min-h-48px resize-y /> ) : ( (priceToWinStrategy) ); id: actions header: Actions cell: ( row ) > if (readOnly) return null; const isEditing editingRowId; return isEditing ( saving Saving... : Save Cancel handleDeleteRow()> ) : ( startEditing( as ComplianceMatrixRow)> Edit handleDeleteRow()> ); ; const table useReactTable( data columns getCoreRowModel: getCoreRowModel() ); return ( Compliance Matrix A detailed breakdown of RFP requirements our proposed solutions and strategic analysis. !readOnly && ( Add Row ) ().map((headerGroup) > ( ((header) > return ( null : flexRender( ()) ); ) )) (). ( ().((row) > ( ().map((cell) > ( flexRender( ()) )) )) ) : ( No results. ) ); Key Skills ASP.NET,Health Education,Fashion Designing,Fiber,Investigation Employment Type : Full Time Experience: years Vacancy: 1
Resume Suggestions
Highlight relevant experience and skills that match the job requirements to demonstrate your qualifications.
Quantify your achievements with specific metrics and results whenever possible to show impact.
Emphasize your proficiency in relevant technologies and tools mentioned in the job description.
Showcase your communication and collaboration skills through examples of successful projects and teamwork.