Files
Wdipl-react/pages/SoftwareEngineering.tsx

775 lines
29 KiB
TypeScript
Raw Normal View History

2025-07-11 16:54:37 +05:30
import { motion } from "framer-motion";
2025-07-21 15:57:34 +05:30
import {
Building,
Calendar,
CheckCircle,
Code,
Eye,
Layers,
RefreshCcw,
Rocket,
Server,
Settings,
Shield,
TrendingUp,
UserPlus,
Zap,
} from "lucide-react";
import { FAQSection } from "../components/FAQSection";
2025-07-11 16:54:37 +05:30
import { Footer } from "../components/Footer";
2025-07-21 15:57:34 +05:30
import { Navigation } from "../components/Navigation";
2025-07-11 16:54:37 +05:30
import { ProcessSection } from "../components/ProcessSection";
import { Badge } from "../components/ui/badge";
2025-07-21 15:57:34 +05:30
import { Button } from "../components/ui/button";
2025-07-11 16:54:37 +05:30
import { Card, CardContent } from "../components/ui/card";
2025-07-21 15:57:34 +05:30
import { ShimmerButton } from "../components/ui/shimmer-button";
import { Helmet } from "react-helmet-async";
import { useNavigate } from "react-router-dom";
2025-07-11 16:54:37 +05:30
// Enhanced Hero Section
const HeroWithCTA = () => {
const navigate = useNavigate();
2025-07-11 16:54:37 +05:30
return (
<section className="relative py-20 overflow-hidden bg-black">
<Helmet>
{/* Page Title and Meta Description */}
<title>Software Engineering Solutions That Drive Results | WDI</title>
<meta
name="description"
content="WDIs software engineering solutions deliver innovative, efficient, and scalable technology that transforms your business. Get ahead with expert development today!"
/>
{/* Canonical Link */}
<link rel="canonical" href="https://www.wdipl.com/software-engineering" />
{/* Open Graph Tags (for Facebook, LinkedIn) */}
<meta property="og:title" content="Software Engineering Solutions That Drive Results | WDI" />
<meta
property="og:description"
content="WDIs software engineering solutions deliver innovative, efficient, and scalable technology that transforms your business. Get ahead with expert development today!"
/>
<meta property="og:url" content="https://www.wdipl.com/services" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://www.wdipl.com/your-preview-image.jpg" />
{/* Twitter Card Tags */}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Software Engineering Solutions That Drive Results | WDI" />
<meta
name="twitter:description"
content="WDIs software engineering solutions deliver innovative, efficient, and scalable technology that transforms your business. Get ahead with expert development today!"
/>
<meta name="twitter:image" content="https://www.wdipl.com/your-preview-image.jpg" />
{/* Social Profiles (using JSON-LD Schema) */}
<script type="application/ld+json">
{`
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "WDI",
"url": "https://www.wdipl.com",
"sameAs": [
"https://www.facebook.com/wdideas",
"https://www.linkedin.com/in/website-developers-india/",
"https://www.instagram.com/wdipl/"
]
}
`}
</script>
</Helmet>
2025-07-11 16:54:37 +05:30
<div className="container mx-auto px-6 lg:px-8">
<div className="grid lg:grid-cols-2 gap-16 items-center min-h-[90vh]">
<motion.div
initial={{ opacity: 0, x: -50 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 0.8 }}
className="space-y-8"
>
{/* Software Engineering Label */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6 }}
>
2025-07-21 15:57:34 +05:30
<span className="text-white/70 text-sm font-medium">
Software Engineering
</span>
2025-07-11 16:54:37 +05:30
</motion.div>
{/* Main Heading */}
<div className="space-y-6">
<h1 className="text-4xl md:text-5xl lg:text-6xl font-semibold leading-tight">
<span className="text-white">Enterprise </span>
<span className="text-[#E5195E]">Software Engineering</span>
<span className="text-white"> Solutions</span>
</h1>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<p className="text-lg text-gray-300 leading-relaxed max-w-lg">
2025-07-21 15:57:34 +05:30
Build robust, scalable enterprise software systems with modern
engineering practices and proven methodologies.
2025-07-11 16:54:37 +05:30
</p>
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* CTAs */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 0.8, delay: 0.3 }}
className="flex flex-col sm:flex-row gap-4"
>
2025-07-21 15:57:34 +05:30
<ShimmerButton
className="text-lg px-8 py-4"
// onClick={() => navigate('/contact/schedule-a-discovery-call')}
onClick={() => navigate("/start-a-project")}
2025-07-21 15:57:34 +05:30
>
2025-07-11 16:54:37 +05:30
<div className="inline-flex items-center gap-2">
<Calendar className="w-4 h-4 flex-shrink-0" />
<span>Discuss Your Project</span>
</div>
</ShimmerButton>
<Button
variant="secondary"
size="lg"
className="text-lg px-8 py-4 h-auto"
onClick={() => navigate("/case-studies")}
2025-07-11 16:54:37 +05:30
>
<Eye className="w-4 h-4 flex-shrink-0" />
<span>View Case Studies</span>
</Button>
</motion.div>
</motion.div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* Right side with stats */}
<motion.div
initial={{ opacity: 0, x: 50 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
className="relative flex flex-col items-center"
>
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.6 }}
className="grid grid-cols-2 gap-8 text-center"
>
<div className="space-y-2 flex flex-col items-center">
2025-07-21 15:57:34 +05:30
<div className="text-3xl lg:text-4xl font-bold text-white">
150+
</div>
<div className="text-sm text-gray-400 leading-tight">
Software Systems
</div>
2025-07-11 16:54:37 +05:30
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<div className="space-y-2 flex flex-col items-center">
2025-07-21 15:57:34 +05:30
<div className="text-3xl lg:text-4xl font-bold text-white">
95%
</div>
<div className="text-sm text-gray-400 leading-tight">
Code Quality Score
</div>
2025-07-11 16:54:37 +05:30
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<div className="space-y-2 flex flex-col items-center">
2025-07-21 15:57:34 +05:30
<div className="text-3xl lg:text-4xl font-bold text-white">
60%
</div>
<div className="text-sm text-gray-400 leading-tight">
Faster Development
</div>
2025-07-11 16:54:37 +05:30
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<div className="space-y-2 flex flex-col items-center">
2025-07-21 15:57:34 +05:30
<div className="text-3xl lg:text-4xl font-bold text-white">
24/7
</div>
<div className="text-sm text-gray-400 leading-tight">
System Reliability
</div>
2025-07-11 16:54:37 +05:30
</div>
</motion.div>
</motion.div>
</div>
</div>
</section>
);
};
// Enhanced Horizontal Tag Scroller with Engineering Practices
const HorizontalTagScroller = () => {
const practices = [
2025-07-21 15:57:34 +05:30
{
name: "Microservices Architecture",
icon: Layers,
color: "text-blue-400",
},
2025-07-11 16:54:37 +05:30
{ name: "DevOps & CI/CD", icon: Zap, color: "text-green-400" },
{ name: "API-First Design", icon: Code, color: "text-purple-400" },
{ name: "Test-Driven Development", icon: Shield, color: "text-cyan-400" },
{ name: "Agile Methodologies", icon: TrendingUp, color: "text-orange-400" },
2025-07-21 15:57:34 +05:30
{ name: "System Integration", icon: Settings, color: "text-yellow-400" },
2025-07-11 16:54:37 +05:30
];
return (
<section className="py-32 bg-background">
<div className="container mx-auto px-6 lg:px-8">
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="text-center mb-20"
>
<h2 className="text-4xl lg:text-5xl font-semibold mb-8">
<span className="text-foreground">Modern </span>
<span className="text-[#E5195E]">Engineering Practices</span>
<span className="text-foreground"> We Follow</span>
</h2>
<p className="text-2xl text-muted-foreground max-w-4xl mx-auto leading-relaxed">
2025-07-21 15:57:34 +05:30
Industry-leading methodologies that ensure code quality,
scalability, and maintainability.
2025-07-11 16:54:37 +05:30
</p>
</motion.div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<motion.div
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
viewport={{ once: true }}
className="relative overflow-hidden"
>
<div className="absolute left-0 top-0 bottom-0 w-20 bg-gradient-to-r from-card to-transparent z-10 pointer-events-none"></div>
<div className="absolute right-0 top-0 bottom-0 w-20 bg-gradient-to-l from-card to-transparent z-10 pointer-events-none"></div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<div className="flex animate-marquee hover:animate-marquee-paused">
{/* First set */}
{practices.map((practice, index) => {
const IconComponent = practice.icon;
return (
<motion.div
key={`first-${practice.name}-${index}`}
initial={{ opacity: 0, scale: 0.8 }}
whileInView={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.5, delay: index * 0.01 }}
2025-07-11 16:54:37 +05:30
viewport={{ once: true }}
className="group flex-shrink-0 mx-3"
>
<div className="bg-card/20 backdrop-blur-md rounded-2xl border border-white/10 px-8 py-6 hover:border-accent/30 transition-all duration-300 cursor-pointer shadow-lg hover:shadow-xl min-w-fit group-hover:scale-105 group-hover:-translate-y-1">
<div className="flex items-center gap-4">
2025-07-21 15:57:34 +05:30
<div
className={`w-8 h-8 flex items-center justify-center ${practice.color}`}
>
2025-07-11 16:54:37 +05:30
<IconComponent className="w-6 h-6" />
</div>
<span className="text-xl font-medium text-foreground whitespace-nowrap">
{practice.name}
</span>
</div>
</div>
</motion.div>
);
})}
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* Second and third sets for seamless loop */}
{[...practices, ...practices].map((practice, index) => {
const IconComponent = practice.icon;
return (
<motion.div
key={`loop-${practice.name}-${index}`}
initial={{ opacity: 0, scale: 0.8 }}
whileInView={{ opacity: 1, scale: 1 }}
2025-07-21 15:57:34 +05:30
transition={{
duration: 0.5,
delay: (index + practices.length) * 0.1,
}}
2025-07-11 16:54:37 +05:30
viewport={{ once: true }}
className="group flex-shrink-0 mx-3"
>
<div className="bg-card/20 backdrop-blur-md rounded-2xl border border-white/10 px-8 py-6 hover:border-accent/30 transition-all duration-300 cursor-pointer shadow-lg hover:shadow-xl min-w-fit group-hover:scale-105 group-hover:-translate-y-1">
<div className="flex items-center gap-4">
2025-07-21 15:57:34 +05:30
<div
className={`w-8 h-8 flex items-center justify-center ${practice.color}`}
>
2025-07-11 16:54:37 +05:30
<IconComponent className="w-6 h-6" />
</div>
<span className="text-xl font-medium text-foreground whitespace-nowrap">
{practice.name}
</span>
</div>
</div>
</motion.div>
);
})}
</div>
</motion.div>
</div>
</section>
);
};
// Why Choose WDI Section
const SideBySideContentWithIcons = () => {
const advantages = [
{
id: "architecture",
title: "Robust Architecture",
2025-07-21 15:57:34 +05:30
icon: Building,
2025-07-11 16:54:37 +05:30
},
{
2025-07-21 15:57:34 +05:30
id: "quality",
2025-07-11 16:54:37 +05:30
title: "Code Quality Excellence",
2025-07-21 15:57:34 +05:30
icon: CheckCircle,
2025-07-11 16:54:37 +05:30
},
{
id: "scalability",
title: "Future-Proof Scalability",
2025-07-21 15:57:34 +05:30
icon: TrendingUp,
2025-07-11 16:54:37 +05:30
},
{
id: "integration",
title: "Seamless Integration",
2025-07-21 15:57:34 +05:30
icon: Layers,
2025-07-11 16:54:37 +05:30
},
{
id: "maintenance",
title: "Long-Term Maintainability",
2025-07-21 15:57:34 +05:30
icon: Settings,
},
2025-07-11 16:54:37 +05:30
];
return (
<section className="py-32 bg-black">
<div className="container mx-auto px-6 lg:px-8">
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="text-center mb-16"
>
<h2 className="text-4xl lg:text-5xl font-semibold leading-tight mb-6">
<span className="text-white">Why Choose </span>
<span className="text-[#E5195E]">WDI</span>
<span className="text-white"> for Software Engineering</span>
</h2>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<p className="text-2xl text-gray-300 leading-relaxed">
Engineering excellence that stands the test of time.
</p>
</motion.div>
<motion.div
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
viewport={{ once: true }}
className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5 gap-6 max-w-7xl mx-auto"
>
{advantages.map((advantage, index) => {
const IconComponent = advantage.icon;
return (
<motion.div
key={advantage.id}
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: index * 0.01 }}
2025-07-11 16:54:37 +05:30
viewport={{ once: true }}
whileHover={{ y: -8, scale: 1.02 }}
className="group cursor-pointer"
>
<Card className="bg-gray-900/50 backdrop-blur-md border-gray-700/50 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl h-full overflow-hidden">
<CardContent className="p-8 flex flex-col items-center text-center h-full justify-center min-h-[180px]">
<div className="mb-6">
<IconComponent className="w-10 h-10 text-accent mx-auto" />
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<h3 className="text-lg font-semibold text-white leading-tight">
{advantage.title}
</h3>
</CardContent>
</Card>
</motion.div>
);
})}
</motion.div>
</div>
</section>
);
};
// Service Categories Grid
const TabbedServiceDisplay = () => {
const services = [
{
title: "Enterprise Software Solutions",
icon: Building,
2025-07-21 15:57:34 +05:30
description:
"Complex enterprise systems with robust architecture and scalability.",
link: "/services/enterprise-software-solutions",
2025-07-11 16:54:37 +05:30
},
{
2025-07-21 15:57:34 +05:30
title: "System Architecture & DevOps",
2025-07-11 16:54:37 +05:30
icon: Layers,
2025-07-21 15:57:34 +05:30
description:
"Modern system design with automated deployment and monitoring.",
link: "/services/system-architecture-devops",
2025-07-11 16:54:37 +05:30
},
{
title: "Third-Party Integrations",
icon: Zap,
2025-07-21 15:57:34 +05:30
description:
"Seamless integration with existing systems and external services.",
link: "/services/third-party-integrations",
2025-07-11 16:54:37 +05:30
},
{
title: "Product Modernization",
icon: RefreshCcw,
2025-07-21 15:57:34 +05:30
description:
"Upgrade legacy systems with modern technologies and practices.",
link: "/services/product-modernization",
2025-07-11 16:54:37 +05:30
},
{
title: "API & Backend Development",
icon: Server,
description: "Robust APIs and scalable backend infrastructure solutions.",
2025-07-21 15:57:34 +05:30
link: "/services/api-backend-development",
2025-07-11 16:54:37 +05:30
},
{
title: "Custom Software Development",
icon: Code,
2025-07-21 15:57:34 +05:30
description:
"Tailored software solutions built to your specific requirements.",
link: "/services/custom-web-app-development",
},
2025-07-11 16:54:37 +05:30
];
const navigate = useNavigate();
2025-07-11 16:54:37 +05:30
return (
<section className="py-32 bg-background">
<div className="container mx-auto px-6 lg:px-8">
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="text-center mb-20"
>
<h2 className="text-4xl lg:text-5xl font-semibold text-white mb-6">
Software Engineering Services
</h2>
<p className="text-lg text-gray-300 max-w-4xl mx-auto leading-relaxed">
2025-07-21 15:57:34 +05:30
Comprehensive software engineering solutions designed for
enterprise-grade performance and reliability.
2025-07-11 16:54:37 +05:30
</p>
</motion.div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<motion.div
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
viewport={{ once: true }}
className="grid md:grid-cols-2 lg:grid-cols-3 gap-8"
>
{services.map((service, index) => {
const IconComponent = service.icon;
return (
<motion.div
key={index}
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: index * 0.01 }}
2025-07-11 16:54:37 +05:30
viewport={{ once: true }}
whileHover={{ y: -5 }}
className="group cursor-pointer"
onClick={() => navigate(service.link)}
2025-07-11 16:54:37 +05:30
>
<div className="bg-gray-900/50 backdrop-blur-sm rounded-2xl border border-gray-800 p-8 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl h-full">
<div className="flex flex-col items-start space-y-6">
<div className="w-12 h-12 bg-accent/20 rounded-lg flex items-center justify-center">
<IconComponent className="w-6 h-6 text-accent" />
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<div>
<h3 className="text-xl font-semibold text-white mb-4">
{service.title}
</h3>
<p className="text-gray-400 leading-relaxed">
{service.description}
</p>
</div>
</div>
</div>
</motion.div>
);
})}
</motion.div>
</div>
</section>
);
};
// Updated CTA Section with new design
const InlineCTA = () => {
const navigate = useNavigate();
2025-07-11 16:54:37 +05:30
return (
<section className="py-20 bg-black">
<div className="container mx-auto px-6 lg:px-8">
<motion.div
initial={{ opacity: 0, y: 50 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="text-center max-w-4xl mx-auto"
>
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
viewport={{ once: true }}
className="space-y-8"
>
{/* Ready to Launch Badge */}
<div className="inline-block">
<div className="bg-gradient-to-r from-[#E5195E]/20 to-purple-500/20 border border-[#E5195E]/30 rounded-full px-6 py-3">
<div className="flex items-center gap-2">
<Rocket className="w-4 h-4 text-[#E5195E]" />
2025-07-21 15:57:34 +05:30
<span className="text-[#E5195E] text-sm font-medium">
Ready to Launch?
</span>
2025-07-11 16:54:37 +05:30
</div>
</div>
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* Main Heading */}
<h2 className="text-4xl lg:text-5xl font-semibold leading-tight">
2025-07-21 15:57:34 +05:30
<span className="text-foreground">
Build Enterprise Software with{" "}
</span>
2025-07-11 16:54:37 +05:30
<span className="text-[#E5195E]">Engineering Excellence</span>
</h2>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* Subtitle */}
<p className="text-xl text-muted-foreground leading-relaxed max-w-2xl mx-auto">
2025-07-21 15:57:34 +05:30
Robust, scalable systems engineered with modern practices and
proven methodologies.
2025-07-11 16:54:37 +05:30
</p>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* CTA Button */}
<div className="flex flex-col items-center gap-4">
2025-07-21 15:57:34 +05:30
<ShimmerButton
2025-07-11 16:54:37 +05:30
className="text-xl px-10 py-5 rounded-2xl shadow-lg hover:shadow-xl bg-[#E5195E] hover:bg-[#E5195E]/90"
// onClick={() => navigate('/contact/schedule-a-discovery-call')}
onClick={() => navigate("/start-a-project")}
2025-07-11 16:54:37 +05:30
>
<div className="inline-flex items-center gap-3">
<Code className="w-6 h-6 flex-shrink-0" />
<span>Start Your Software Project</span>
</div>
</ShimmerButton>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* Small benefit text */}
<p className="text-sm text-muted-foreground">
2025-07-21 15:57:34 +05:30
Architecture review Code quality audit Technical
consultation
2025-07-11 16:54:37 +05:30
</p>
</div>
</motion.div>
</motion.div>
</div>
</section>
);
};
// Engineering Specialists Section
const HireDevelopersSection = () => {
const specialists = [
{
title: "Software Architects",
icon: Building,
skills: ["System Design", "Microservices", "Scalability"],
iconBg: "bg-blue-500",
iconColor: "text-white",
2025-07-21 15:57:34 +05:30
link: "/hire-talent/full-stack-developers",
2025-07-11 16:54:37 +05:30
},
{
2025-07-21 15:57:34 +05:30
title: "Backend Engineers",
2025-07-11 16:54:37 +05:30
icon: Server,
skills: ["Node.js", "Python", "Java", "Go"],
iconBg: "bg-green-500",
iconColor: "text-white",
2025-07-21 15:57:34 +05:30
link: "/hire-talent/backend-developers",
2025-07-11 16:54:37 +05:30
},
{
title: "DevOps Engineers",
icon: Settings,
skills: ["CI/CD", "Docker", "Kubernetes", "AWS"],
iconBg: "bg-purple-500",
iconColor: "text-white",
2025-07-21 15:57:34 +05:30
link: "/hire-talent/full-stack-developers",
2025-07-11 16:54:37 +05:30
},
{
title: "Full Stack Developers",
icon: Code,
skills: ["React", "Node.js", "TypeScript", "APIs"],
iconBg: "bg-orange-500",
iconColor: "text-white",
2025-07-21 15:57:34 +05:30
link: "/hire-talent/full-stack-developers",
},
2025-07-11 16:54:37 +05:30
];
const navigate = useNavigate();
2025-07-11 16:54:37 +05:30
return (
<section className="py-32 bg-background">
<div className="container mx-auto px-6 lg:px-8">
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="text-center mb-20"
>
<h2 className="text-4xl lg:text-5xl font-semibold mb-8">
<span className="text-foreground">Hire Our </span>
<span className="text-[#E5195E]">Engineering Experts</span>
</h2>
<p className="text-2xl text-muted-foreground max-w-4xl mx-auto leading-relaxed">
2025-07-21 15:57:34 +05:30
Get access to senior software engineers who build robust, scalable
enterprise systems.
2025-07-11 16:54:37 +05:30
</p>
</motion.div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<motion.div
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
viewport={{ once: true }}
className="grid md:grid-cols-2 xl:grid-cols-4 gap-8"
>
{specialists.map((specialist, index) => {
const IconComponent = specialist.icon;
return (
<motion.div
key={index}
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: index * 0.01 }}
2025-07-11 16:54:37 +05:30
viewport={{ once: true }}
whileHover={{ y: -8, scale: 1.02 }}
className="group cursor-pointer"
>
<Card className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl overflow-hidden h-full">
<CardContent className="p-0 flex flex-col h-full">
{/* Header */}
<div className="p-8 pb-6">
<div className="flex items-start gap-4 mb-6">
2025-07-21 15:57:34 +05:30
<div
className={`w-12 h-12 ${specialist.iconBg} rounded-xl flex items-center justify-center backdrop-blur-sm`}
>
<IconComponent
className={`w-6 h-6 ${specialist.iconColor}`}
/>
2025-07-11 16:54:37 +05:30
</div>
<div className="flex-1">
<div className="text-xs text-muted-foreground mb-2 uppercase tracking-wider">
Software Engineering
</div>
</div>
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
<h3 className="text-xl font-semibold text-foreground mb-4 leading-tight">
{specialist.title}
</h3>
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* Skills */}
<div className="px-8 pb-6 flex-1">
<div className="flex flex-wrap gap-2">
{specialist.skills.map((skill) => (
2025-07-21 15:57:34 +05:30
<Badge
key={skill}
variant="secondary"
className="text-xs bg-white/10 text-foreground"
>
2025-07-11 16:54:37 +05:30
{skill}
</Badge>
))}
</div>
</div>
2025-07-21 15:57:34 +05:30
2025-07-11 16:54:37 +05:30
{/* CTA */}
<div className="p-8 pt-0 mt-auto space-y-3">
2025-07-21 15:57:34 +05:30
<ShimmerButton
2025-07-11 16:54:37 +05:30
className="w-full py-3 text-sm rounded-xl shadow-lg hover:shadow-xl"
onClick={() => navigate(specialist.link)}
2025-07-11 16:54:37 +05:30
>
<div className="inline-flex items-center justify-center gap-2">
<UserPlus className="w-4 h-4 flex-shrink-0" />
<span className="font-medium">Hire Now</span>
</div>
</ShimmerButton>
</div>
</CardContent>
</Card>
</motion.div>
);
})}
</motion.div>
</div>
</section>
);
};
// FAQ data for Software Engineering
const softwareEngineeringFAQs = [
{
question: "What software engineering methodologies do you follow?",
2025-07-21 15:57:34 +05:30
answer:
"We follow modern engineering practices including Agile/Scrum, DevOps, Test-Driven Development, continuous integration/deployment, and microservices architecture to ensure high-quality, maintainable software.",
2025-07-11 16:54:37 +05:30
},
{
question: "How do you ensure code quality and maintainability?",
2025-07-21 15:57:34 +05:30
answer:
"We implement comprehensive code review processes, automated testing, static code analysis, documentation standards, and follow SOLID principles and design patterns to ensure long-term maintainability.",
2025-07-11 16:54:37 +05:30
},
{
question: "Can you modernize our existing legacy software?",
2025-07-21 15:57:34 +05:30
answer:
"Yes, we specialize in legacy system modernization including code refactoring, architecture updates, technology migration, and gradual system replacement while maintaining business continuity.",
2025-07-11 16:54:37 +05:30
},
{
question: "What is your approach to system architecture?",
2025-07-21 15:57:34 +05:30
answer:
"We design scalable, modular architectures using microservices, API-first approaches, cloud-native patterns, and modern frameworks that can evolve with your business requirements.",
2025-07-11 16:54:37 +05:30
},
{
question: "Do you provide ongoing software maintenance?",
2025-07-21 15:57:34 +05:30
answer:
"Yes, we offer comprehensive maintenance services including bug fixes, performance optimization, security updates, feature enhancements, and 24/7 monitoring to keep your software running smoothly.",
},
2025-07-11 16:54:37 +05:30
];
export function SoftwareEngineering() {
return (
<div className="dark min-h-screen bg-background">
{/* <Navigation /> */}
2025-07-11 16:54:37 +05:30
<HeroWithCTA />
<HorizontalTagScroller />
<SideBySideContentWithIcons />
<TabbedServiceDisplay />
<ProcessSection />
<InlineCTA />
<HireDevelopersSection />
2025-07-21 15:57:34 +05:30
<FAQSection
2025-07-11 16:54:37 +05:30
title="Software Engineering Questions"
subtitle="Get answers to common questions about our software engineering services."
faqs={softwareEngineeringFAQs}
/>
{/* <Footer /> */}
2025-07-11 16:54:37 +05:30
</div>
);
2025-07-21 15:57:34 +05:30
}