Development tools and technologies I use in my professional work
As a Technical Lead with extensive experience in full-stack development, here's a comprehensive list of the tools and technologies I regularly use to build and maintain enterprise-scale applications.
Development Environment
favorite
IntelliJ IDEA
Simply the best Java IDE I've ever used. While it might seem heavyweight to some, its Spring Boot integration and debugging capabilities have saved me countless hours. The database tools and Kafka integration are just icing on the cake.
productivityjavaessential
VS Code
My go-to editor for anything not Java. The speed and extension ecosystem are unmatched. I particularly love how it handles TypeScript and Angular projects. Plus, its Git integration is just perfect for quick changes.
productivityfrontendDocker & Docker Swarm
Docker changed my whole approach to development environments. I've fallen in love with how it simplifies setting up complex microservices locally. Swarm has been a game-changer for managing our test environments - it's simpler than Kubernetes for our needs.
devopscontainers
Backend Technology Stack
favorite
Spring Boot & Java 23
My go-to stack for backend development. Spring Boot’s opinionated approach aligns perfectly with my workflow, allowing rapid development with minimal configuration. Java 23 introduces enhanced pattern matching, virtual threads (Project Loom), and better garbage collection, significantly boosting scalability and performance. The improvements over Java 17 are evident, especially in handling high-throughput environments with reduced latency.
backendjavaApache Kafka
Initially skeptical about its complexity, but now I'm a convert. It's become my favorite solution for handling high-volume event streams. The reliability and scalability are impressive, though there was definitely a learning curve with exactly-once semantics.
messagingstreamingKeycloak
After trying various auth solutions, Keycloak won me over with its flexibility. Setting up OAuth2 and OpenID Connect flows is surprisingly straightforward, and the admin console is actually pleasant to use. It's been rock-solid for our identity management needs.
securityauthlearning
Rust
My top choice for high-performance, memory-safe backend development. Rust’s ownership model eliminates entire classes of bugs, making it ideal for building reliable systems. With Rust 2024, improvements like async closures, enhanced trait system, and more ergonomic async programming make development smoother.
backendrust
Monitoring & Observability
ELK Stack
Elasticsearch, Logstash, and Kibana have become indispensable for our logging needs. Kibana's visualization capabilities have helped us spot patterns we would have missed otherwise. Though setting up the perfect index patterns took some trial and error.
monitoringloggingfavorite
Grafana & Prometheus
The dynamic duo of our monitoring setup. Grafana's dashboards are both beautiful and functional. Prometheus's pull model initially seemed strange but has proven more reliable than push-based systems I've used before. PromQL took some getting used to though!
monitoringmetrics
Frontend Development
essential
React
My go-to library for building modern web interfaces. I particularly love React's component-based architecture and the incredible ecosystem. The new hooks API has made state management so much cleaner, and the virtual DOM's performance is exceptional. Combined with Next.js, it's become my preferred choice for building performant, SEO-friendly applications.
frontendjavascriptessential
Angular
My preferred framework for enterprise applications. The opinionated structure and TypeScript integration make it perfect for large teams. The CLI is a massive productivity booster, and I'm particularly fond of the dependency injection system. It's especially powerful for complex business applications.
frontendtypescriptTypeScript
Can't imagine doing large-scale JavaScript development without it anymore. The type safety has caught countless potential bugs before they hit production. The IDE integration with VS Code is just fantastic. Essential for both React and Angular projects.
javascripttypingfavorite
Tailwind CSS
A game-changer for my styling workflow. The utility-first approach initially seemed verbose, but now I can't go back. It makes responsive design a breeze and keeps my CSS bundle size in check. Perfect for both React and Angular projects when combined with appropriate configurations.
cssstyling
Team Collaboration
Jira & Confluence
While not the most exciting tools, they're incredibly effective for keeping large teams organized. Jira's customizable workflows have helped us maintain a smooth development process, and Confluence has become our single source of truth for documentation.
managementdocumentationessential
Git & SonarQube
Git is Git - it just works. But combining it with SonarQube has elevated our code quality significantly. The automated code reviews catch issues I might miss, though I had to tune some rules to avoid false positives.
version-controlquality