Greetings from the realm of software engineering! I'm Harris, a dedicated professional with a passion for crafting elegant software solutions. I've had the privilege of working as an in-house engineer at various companies before embarking on my journey as the owner of a small software development firm. My career has been a rich tapestry of diverse experiences, continuously honing my skills, and shaping my approach to delivering high-quality software solutions.
Category | Skills |
---|---|
Programming Languages | TypeScript, C#, C , Python, Java |
Web Development | Angular, NestJS |
NodeJS Ecosystem | Node.js C API, NPM Packages |
DevOps | Docker, Kubernetes, Helm, Terraform, KNative |
Cloud Platforms | Azure, GCP, AWS |
SQL Databases | MySQL, SQLite, MS SQL, PostgreSQL |
NoSQL Databases | MongoDB, Cosmos DB |
Vector Databases | Weaviate, Qdrant |
APIs | GraphQL, gRPC, OpenAPI, Swagger |
AI Development | Semantic Kernel, ChatGPT Plugins, Azure ML, PyTorch, fast.ai |
Identity & Access Management | Keycloak, LDAP, Active Directory, Firebase, OpenID Connect, OAuth2 |
Application Migration | Silverlight (WPF) to Angular |
Legacy Technologies | Visual Basic 6, Visual C 6, MFC, COM |
GitHub Statistics | Top Languages |
Running my own software development firm has provided an invaluable opportunity to build leadership skills, manage diverse projects, and gain an in-depth understanding of business processes. In the pursuit of delivering top-quality software, I've adopted best practices like Clean Architecture, Ports & Adapters Architecture, and Domain-Driven Design. I've had the chance to work with UI control suites like DevExpress, DevExtreme, KendoUI, and Telerik to deliver high-performance web applications.
My familiarity with DevOps has not only helped streamline software development cycles but also fostered a culture of collaboration between development and operations teams. I've contributed to this field by developing tools that facilitate daily DevOps tasks and sharing a miniDevOps Docker image with the community.
Since 2004, .NET and C# have been an integral part of my developer journey. Initially, I leveraged Windows Communication Foundation (WCF) and Windows Presentation Foundation (WPF), along with Silverlight, to build engaging service-oriented applications.
Data access became simplified with Entity Framework, while Language Integrated Query (LINQ) added a new level of efficiency to my process. As the ecosystem evolved, I transitioned from WCF to ASP.NET and MVC, embracing their clear structure and modern approach.
This ongoing journey with .NET has fostered in me an ability to adapt to technological shifts, and consistently refine my knowledge and skills.
Web and mobile development have been at the heart of my technical journey. The world of Angular, NestJS, and .NET has been my playground where I've learned to create highly efficient and scalable web and mobile applications. This not only means writing great code but also comprehending the complexities of user interface design, API integration, and database management.
An integral part of my journey has been the development of robust and user-friendly APIs. My experiences with GraphQL, gRPC, and OpenAPI have collectively shaped my ability to build versatile and performant interfaces. These technologies have enabled me to craft APIs that provide a seamless communication layer between different software components, with an emphasis on transparency, efficient performance, and comprehensive documentation. While each project has its unique challenges and learning curves, the journey through these technologies has been a gratifying part of my career growth.
In the landscape of web development, I've had a rich journey that began with JavaScript. I've greatly enjoyed exploring the capabilities of Node.js and its C API. Watching JavaScript evolve from a mere scripting language into a platform capable of building robust server-side applications has been truly intriguing.
As my projects increased in complexity and scale, however, I recognized the limitations JavaScript posed for maintaining large codebases. This led to my switch to TypeScript, a decision not influenced solely by TypeScript's strong typing and enhanced scalability, but also by a concurrent shift in my frontend development preferences.
In the past, I've worked extensively with BackboneJS, Angular 1.x (now known as AngularJS), and KnockoutJS. Each framework offered unique insights, shaping my understanding of frontend development. But with time, my preference solidified around Angular for its robustness and its harmonious synergy with TypeScript. This blend of TypeScript and Angular has equipped me to create more scalable, maintainable, and high-performing web applications.
I have also gained valuable experience in managing application deployment and infrastructures. My proficiency in Docker, Kubernetes, Helm, Terraform, and KNative is the result of countless hours spent on refining cloud infrastructures to ensure seamless application deployments.
I believe secure software is the foundation of any technology we build. Therefore, I've always prioritized mastering secure coding practices, penetration testing, and adhering to OWASP guidelines. Implementing robust authentication and access control mechanisms is something I've extensively worked on, exploring tools like Keycloak, LDAP, Active Directory, Firebase, OpenID Connect, and OAuth2.
Having always been intrigued by the potential of artificial intelligence (AI) and machine learning (ML), I've taken steps to integrate these cutting-edge technologies into my projects. My explorations in this domain have included working with OpenAI's GPT models, Hugging Face Transformers, and other open source Language Models. These experiences have provided me a solid grounding in the current state of NLP and ML frameworks, enabling me to leverage their capabilities in real-world projects.
As I look to the future, my goal is to deepen my understanding of scalable architectures and continue building resilient, efficient, and maintainable systems. It's the joy of learning new things and the thrill of overcoming challenges that drive me forward in this ever-evolving landscape of software engineering.
I believe in the power of shared knowledge and experiences. My blog serves as a platform where I delve into new concepts, share my professional journey, and explore insights gained from my experiences:
- Intro to Semantic Kernel
- Keycloak with PostgreSQL-HA
- Keycloak Extensions
- Writing HDAs with htmx and C
- Intro to Assembly with FASM
- Reactive App with Angular and ngrx
- High-Performance Computing with HPX
- π« How to reach me: [email protected]
- π Explore my recent projects
- π Learn about my developer journey
- π Visit my personal website