Last year, I was granted a Working Holiday Visa for Australia. After sitting on the idea for close to a year, I finally committed to the plan and bought a ticket.
I know what you are thinking, “Is she planning to go backpacking for a year in Australia? Good for her, but why is she telling us? I didn’t know this was a travel blog”.
Well, while this visa is normally used for jobs in the hospitality and tourism industry, I want to try something different which is relevant to my professional development.
You see, Australia boasts numerous tech hubs and abundant job openings, with developers ranking among the most sought-after professionals. So, I want to explore opportunities in the tech sector.
I’ve heard firsthand that Australians value hard work and strong work ethics, which is encouraging.
This is a bit of a gamble, of sorts. It might not turn out exactly how I’m hoping – I could end up doing farm work instead of coding. Maybe there are opportunities, but they might not be suitable for my profile. If that’s the case, it could be a spectacular failure . But if you don’t try, you won’t know (can you tell I am nervous ).
This post is waaay overdue, and the reason for that is simple: the start of the year has been a bit hectic for me. So, let’s dive into it!
What I Accomplished
Confirmed Projects in the Pipeline
I successfully completed all three confirmed projects, but not without some challenges. Two of them were particularly tough, both emotionally and professionally. While I recognize that I could have handled certain aspects better, these projects also reinforced important lessons. I learned the value of thinking two to three steps ahead, avoiding assumptions, and improving my communication skills. These experiences pushed me to become a better professional, and I’m eager to implement these lessons moving forward.
Freelancing and Networking in Sydney
This went extremely well. I was incredibly lucky that WordCamp Sydney happened in November—the first one since before COVID. The three-day event was amazing, and I made fantastic connections, including agency owners and, notably, my now boss. I also attended other meetups and tech events, but nothing compared to WordCamp. It reinforced how powerful networking can be when you put yourself out there.
Personal Challenge: 3-Month Alcohol Break
This challenge was a big success. I went two and a half months without drinking, which is the longest I’ve ever gone without alcohol. Although I relaxed a little toward the end, I’m still really proud. The experience gave me a fresh perspective on social situations and proved to myself that I can do it. It was a great experiment, and I loved how it challenged me.
Quarterly Review: The Ups and Downs
This past quarter was a rollercoaster. On one hand, I loved experiencing Sydney and confirming that I genuinely enjoy living here. But it wasn’t without its challenges.
I had several potential clients fall through, which was frustrating. Financially, things got tough—I even had to do Uber deliveries on my bike to make ends meet. On top of that, I had to move houses, and just when I was settling into a great place with amazing people, we got the devastating news that the house had been sold. Losing such an affordable place was a huge blow, and it made me seriously question whether I could afford to stay in Sydney with my current income.
Right before Christmas, I was at my lowest point—broke and struggling to find work. I even tried applying for bar and catering jobs, but nothing worked out. It felt like I kept getting close, only for things to fall through at the last moment.
Then, everything changed. A connection I made at WordCamp messaged me, offering me a full-time role. At the start of the year, I officially joined The Code Company to work as a front-end developer. That moment completely turned my life around. It’s been one of the best things that has happened to me in a long time, and I’m beyond grateful for the opportunity.
What’s Coming Up This Quarter
🛠️ Mastering Dev Skills
- ACF Block Development: Dive deep into Advanced Custom Fields (ACF) block development to integrate more customizable solutions.
- Version Control & CI/CD: Familiarize myself with Git (or other version control systems) and CI/CD workflows to streamline collaboration and deployment.
- Tailwind: Master Tailwind CSS for efficient, utility-first styling and improved productivity.
- Elementor to Native Blocks: Work on converting Elementor blocks to our native WordPress blocks for consistency across the platform.
- Native Gutenberg Block Development: Focus on developing and customizing native Gutenberg blocks for a more seamless experience.
- WPML: Learn and implement WPML for multilingual websites, enhancing global reach.
- Debugging & Testing: Improve debugging skills and ensure thorough testing for all projects to maintain high-quality standards.
- CSS Mastery: Improve CSS skills, focusing on advanced techniques like Flexbox, Grid, animations, and responsive design to create more dynamic and scalable layouts.
🗣️ Work Communication
- Negotiation & Communication: Enhance my ability to negotiate and communicate effectively with clients, colleagues, and stakeholders.
- Detail-Oriented Work: Prioritize quality by being more detail-oriented and consistently reviewing work before submission.
- Task Organization & Deadlines: Improve task organization to ensure efficient work processes, meeting deadlines while handling all project details.
- Feedback & Continuous Improvement: Embrace feedback as a tool for growth and continuously refine my approach to both technical and communication challenges.
As WordPress continues to evolve, the platform is embracing more advanced tools to enhance user experience and website performance. One such innovation is the WordPress Interactivity API, a feature designed to provide smooth, real-time interactions on your site. But how does this new API compare to traditional plugins? In this post, we’ll break down the advantages of the Interactivity API and why it may be the better choice for building dynamic, interactive websites.
What is the WordPress Interactivity API?
The WordPress Interactivity API is a built-in feature that allows developers to create dynamic, real-time interactions on the front-end of a site. Whether you’re building a live poll, interactive quiz, real-time chat feature, or instant content updates, this API provides a seamless, efficient way to bring dynamic content to life on your WordPress site without needing page reloads.
Unlike traditional plugins, which often rely on server-side processing and can slow down your site, the Interactivity API uses client-side technologies like AJAX and JavaScript to handle interactions. This results in faster, smoother user experiences and lighter site performance.
Why the Admin Side is Important
While the Interactivity API focuses on front-end interactivity, the admin side (or backend) of WordPress plays a crucial role in setting up and managing the content and rules that power these dynamic features. For instance, if you’re building a live poll, the admin side allows you to create the poll questions, configure response tracking, and control when the poll appears or expires. Similarly, for features like live commenting or real-time auctions, the backend manages the content, user permissions, and other necessary configurations.
This distinction between frontend interactivity and backend management ensures that developers can customize their site’s functionality while also maintaining full control over the content and logic that power it.
How Is the Interactivity API Better Than Traditional Plugins?
1. Performance and Efficiency
Traditional plugins often introduce heavy processing or rely on additional server-side requests, which can slow down the site. The Interactivity API, however, uses client-side technologies like AJAX to handle interactions without page reloads. This results in faster, more responsive experiences for users.
2. Seamless Integration with WordPress Core
Plugins are external solutions that add extra functionality to your site, which can sometimes lead to compatibility issues, especially with core WordPress updates. Since the Interactivity API is a native feature of WordPress, it integrates seamlessly with the rest of the platform. There’s no need to worry about third-party dependencies or conflicts.
3. Customizability and Flexibility
Traditional plugins come with pre-built features, often limiting your ability to fully customize them for your needs. The Interactivity API allows for complete flexibility, enabling you to create unique, dynamic interactions that fit the exact requirements of your site. You’re not constrained by a plugin’s predefined functionality.
4. Reduced Bloat and Simplified Maintenance
Plugins can introduce unnecessary bloat or code you don’t need, which can negatively affect site performance. The Interactivity API, on the other hand, allows for more minimalist development. You only add the features you need, leading to cleaner, more efficient code that’s easier to maintain.
5. Real-Time Interactivity Without Page Reloads
With traditional plugins, many dynamic features require page reloads or additional server-side requests to update content. The Interactivity API allows you to build real-time updates and interactions, such as live comments, voting, or notifications, without interrupting the user experience with page reloads.
6. Better Long-Term Support
As WordPress evolves, there’s a risk that third-party plugins may become outdated or unsupported. Since the Interactivity API is part of WordPress core, it’s continuously maintained and updated, ensuring future-proof compatibility with new WordPress features and updates.
7. Security Benefits
Plugins can sometimes introduce security vulnerabilities, especially if they’re not kept up to date or if they rely on third-party services. The Interactivity API, being a native WordPress feature, benefits from the same security protocols as other core WordPress functionality, minimizing the risks to your site.
Use Cases for the WordPress Interactivity API
Here are a few scenarios where the Interactivity API can help you create engaging, real-time experiences on your WordPress site:
- Live Polls and Surveys: Create dynamic polls that update in real-time without refreshing the page.
- Live Commenting or Chat Features: Implement instant messaging or live commenting systems for more interactive user engagement.
- Dynamic Content Filters: Allow users to filter content (like products or posts) in real-time, updating the page without reloads.
- Real-Time Notifications: Notify users of new content or activity updates instantly on the front-end.
- Interactive Quizzes or Games: Build engaging quizzes that provide instant feedback or progress tracking.
Conclusion
While traditional plugins have served WordPress users well, the Interactivity API offers a more streamlined, customizable, and efficient way to build interactive features on your website. By enabling real-time interactions without page reloads and integrating directly with WordPress’s core, this API offers significant performance benefits and smoother user experiences. For developers looking for more flexibility and long-term scalability, the Interactivity API presents a powerful toolset for building dynamic, interactive websites that are fully integrated with WordPress’s native features.
Whether you’re building a live poll, an interactive quiz, or a real-time auction, the WordPress Interactivity API provides a native, performance-optimized solution that can take your WordPress site to the next level.

During our bootcamp, we developed xSolarx, a full-stack platform connecting users with renewable energy companies. The platform includes features like a forum, a news section, and personalized dashboards where users can save content and interact with posts. While building xSolarx, we faced critical decisions about how to render our application’s pages—balancing speed, user experience, and functionality
For xSolarx, Client-Side Rendering (CSR) was the better choice because of the platform’s dynamic nature. Users required real-time updates to their dashboards, seamless interactions when saving posts or comments, and a responsive experience when navigating through the forum. By leveraging CSR, we could fetch data from the server dynamically using our Node.js API and render the content efficiently with React components. This approach enabled interactive navigation without the need to reload the page, making the app feel fast and responsive.
However, if SEO had been a priority—such as making public forums or news articles easily discoverable by search engines—we might have opted for Server-Side Rendering (SSR) for those specific pages. SSR would allow us to serve pre-rendered HTML content from the server, which search engine crawlers can index more effectively. This would have been essential for a platform focused on attracting traffic through public-facing content.
This project taught us the importance of choosing the right rendering approach based on the specific use case. While CSR was ideal for xSolarx’s logged-in, interactive experience, SSR could have complemented it for SEO and fast-loading public pages. Ultimately, a hybrid approach—combining SSR for initial loads with CSR for dynamic features—can often provide the best balance of performance, user experience, and discoverability.
Comparison of SSR vs. CSR:
Aspect | Server-Side Rendering (SSR) | Client-Side Rendering (CSR) |
---|---|---|
Definition | HTML is rendered on the server and sent to the client. | HTML is rendered in the browser using JavaScript. |
Rendering Process | The server generates a fully-rendered HTML page for each request. | The server sends a minimal HTML file with JavaScript to render the page in the browser. |
Initial Load Time | Slower, as the server processes the request and sends rendered HTML. | Faster, as the browser initially gets static assets. |
Subsequent Navigation | Often requires a new server request for each page. | Faster, as JavaScript dynamically updates the page without reloading. |
SEO | Better, as search engines can crawl fully-rendered HTML. | Worse unless optimized with pre-rendering or SSR for specific pages. |
Performance | Can be slower for users due to full page reloads on navigation. | Faster for dynamic interactions once the app is loaded. |
Complexity | Requires server-side logic to generate pages. | Requires client-side JavaScript frameworks and libraries. |
Example Frameworks | Next.js (React), Nuxt.js (Vue), Ruby on Rails. | React, Angular, Vue.js (when used for SPAs). |
Browser Dependency | Works well on browsers with JavaScript disabled. | Heavily depends on JavaScript being enabled. |
Best Use Cases | Content-heavy websites, SEO-focused applications. | Highly interactive web apps, dashboards. |
Caching | Easy to cache rendered HTML for faster delivery. | Requires caching API responses or static assets for optimization. |
User Experience | Content is visible immediately on page load. | Content might take time to display as JavaScript executes. |
Final Thoughts
The decision between SSR and CSR is not one-size-fits-all. Platforms like xSolarx, which prioritize real-time interactions and user-specific content, are well-suited for CSR. On the other hand, SSR shines for public-facing or SEO-critical pages, where speed and visibility matter most. Understanding these trade-offs is crucial for building modern web applications.
When I first completed my bootcamp, I was introduced to a range of web development tools that became part of my daily workflow. Tools like Babel, Webpack, ESLint, Prettier, Sass, and code minification were all essential, but at the time, I didn’t fully understand what each of them did or why they were so important. I was focused on getting the code to work, without diving into the “why” behind these tools.
Now that I have more time to explore, I’m researching each of these tools and understanding how they improve my workflow. And I’m realizing that understanding these tools is crucial, not just for development, but for deployment and debugging as well.
In this article, I’ll break down the most important tools in modern web development. I’ll explain their purpose and how they benefit both the development process and the final product. Whether you’re just starting out or trying to fill in gaps in your knowledge, this guide will help you understand the role these tools play and why they’re indispensable.
1. Compilation with Babel: Ensuring Browser Compatibility
When I first heard about Babel, I didn’t realize its significance. Babel is a tool that compiles modern JavaScript (ESNext, JSX, etc.) into a version that can run on most browsers. While modern JavaScript offers amazing features (like arrow functions, classes, async/await), older browsers don’t support all of these features.
Why does this matter? Without Babel, you’d have to write more complex, less readable code just to ensure that it worked across all browsers. Babel makes it easier to use the latest JavaScript features while ensuring that your code remains compatible across different browsers, improving both performance and maintainability.
In deployment, Babel ensures that your site or app works seamlessly across browsers, giving users a smooth experience regardless of which browser they use. In other words, it prevents compatibility issues that could otherwise arise during deployment.
2. Bundling with Webpack: Optimizing Performance for Production
Next, I encountered Webpack, a tool that I used without fully understanding its impact. Webpack is a bundler, meaning it combines multiple files (JavaScript, CSS, images, etc.) into a single, optimized bundle. Instead of a browser having to load a dozen separate JavaScript files, Webpack bundles them together, reducing the number of requests made during page load.
This bundling process also ensures that your files are minified (compressed) for faster loading. The smaller your files, the quicker your website loads, which is critical for user experience, especially for users on slower internet connections.
In deployment, Webpack helps ensure that your app or website performs at its best. By bundling and minifying your code, Webpack reduces load times and ensures a smoother, faster experience for users. It also generates source maps, which are super helpful for debugging production issues, as they allow you to map minified code back to the original code.
3. Code Linting with ESLint: Maintaining Code Quality
ESLint is another tool that I didn’t appreciate fully until I started spending more time on projects. ESLint is a static code analysis tool that checks your code for potential errors and enforces coding standards. It helps catch common mistakes like undefined variables, unused code, or incorrect syntax.
By using ESLint, I catch issues early in the development process, rather than letting them slip into production, where they could cause bugs or slow down the development cycle. This proactive approach to error checking is a huge time-saver, especially for debugging.
Having clean, error-free code also improves maintainability, making it easier to debug and refactor down the road. In deployment, this reduces the chances of introducing bugs into the final product, helping ensure that your site runs smoothly once it’s live.
4. Code Formatting with Prettier: Consistency for Easier Debugging
I learned about Prettier while working on my projects, and I now see how essential it is for keeping code clean and readable. Prettier is an automatic code formatter that ensures consistent style throughout your codebase. Whether it’s indentation, line breaks, or spacing, Prettier formats your code the same way every time.
Why does this matter for debugging? When you’re troubleshooting, well-formatted code is much easier to read. If your code is consistently formatted, you can spot issues like misplaced parentheses or typos faster. Plus, if you’re working in a team, using Prettier ensures that everyone’s code looks the same, which reduces confusion when collaborating.
In deployment, maintaining a consistent code style isn’t just about aesthetics; it helps streamline the debugging process and makes your code easier to maintain and scale.
5. Sass Compilation: Writing Cleaner, More Manageable CSS
Before I started using Sass, my CSS files quickly became long and difficult to manage. Sass is a CSS preprocessor that extends the capabilities of traditional CSS by adding features like variables, nesting, and mixins. This makes writing and maintaining CSS much more efficient, especially for large projects.
However, browsers can’t read Sass directly. This is where Sass compilation comes in—Sass files need to be converted into standard CSS. This step is important for deployment because it ensures that your styles are applied properly in the final production build.
Using Sass means you can organize your styles better, making it easier to debug and maintain in the long run. In deployment, it ensures that your CSS is optimized for performance, reducing the file size while still offering all the features that Sass provides.
6. Code Minification: Optimizing Files for Faster Load Times
Finally, code minification is a key step in the deployment process. Minification is the process of removing unnecessary characters (like spaces, line breaks, and comments) from your code to make it smaller and more efficient.
Why does this matter? The smaller your JavaScript and CSS files are, the faster they load, which directly impacts the performance of your website. A faster website means a better user experience and better SEO rankings.
During deployment, minification ensures that your site runs efficiently, even on slower connections. This is especially crucial for mobile users or users in regions with limited bandwidth.
Why These Tools Matter for Deployment and Debugging
These tools are crucial not just during development but also when deploying your code and debugging issues in production. Here’s how they contribute:
- Babel ensures compatibility across browsers, making sure your site works for everyone.
- Webpack optimizes performance by bundling and minifying your code, ensuring a smooth user experience.
- ESLint and Prettier improve code quality and consistency, helping you catch errors early and making debugging easier.
- Sass keeps your stylesheets clean and maintainable, which is crucial for larger projects.
- Minification reduces the size of your files, improving load times and performance during deployment.
Together, these tools help ensure that your code is not only functional but also optimized, maintainable, and scalable.
Conclusion
At first, these tools might seem overwhelming, but as I’ve learned, they are indispensable for building high-performance, scalable, and maintainable websites and applications. Understanding how each tool fits into the overall development, deployment, and debugging process has made me a better developer.
I hope this post helps beginners like me who want to understand why these tools matter and how they contribute to building better websites. If you’re just starting out, I encourage you to dive deeper into each of these tools—they’ll help you write cleaner, faster, and more reliable code in the long run.
WordPress page builders have revolutionised web design, making it accessible for developers and non-developers alike. Over the years, I’ve worked extensively with Bricks Builder and Elementor, and I’ve dabbled in Divi. Each tool has its strengths and weaknesses, but as my career evolves, I’m finding myself shifting away from builders entirely. Before I explain why, let’s break down the pros and cons of these popular builders.
Bricks Builder
- Performance: Bricks is a performance-focused tool, optimized to create lightweight websites that load quickly. For users who value speed and clean code, Bricks is hard to beat.
- Customization: It’s incredibly flexible, offering granular control over designs, which appeals to developers looking for a balance between visual tools and custom coding.
- User Experience: While intuitive, Bricks leans slightly more technical compared to other builders, which may make the learning curve steeper for beginners.
Elementor Pro
- Features: Elementor Pro is arguably the most popular builder, packed with advanced features like theme building, forms, and countless third-party integrations.
- Ease of Use: Its drag-and-drop interface is beginner-friendly and polished, making it easy to build websites quickly without touching code.
- Drawbacks: This ease of use comes at a cost. Websites built with Elementor often suffer from bloated code and slower load times, which can hurt SEO and user experience.
Divi
- Visual Design: Divi’s real-time visual editing is one of its standout features, making the design process interactive and enjoyable.
- Content Library: Its extensive module library and pre-designed layouts make it a great choice for users who need quick, visually appealing designs.
- Flexibility: Divi works seamlessly with its native theme but also functions as a plugin for any WordPress theme. However, like Elementor, it tends to generate heavier code.
Comparing Bricks, Elementor, and Divi
Feature | Bricks Builder | Elementor Pro | Divi |
---|---|---|---|
Ease of Use | Moderate | Very easy | Easy |
Performance | Excellent | Moderate | Moderate |
Customization | High | Moderate | Moderate |
Community/Extensions | Growing | Extensive | Large |
Pricing | Competitive | Higher | Flexible |
Why I’m Moving Away from Builders
While builders are incredibly convenient, they come with trade-offs that have become harder for me to ignore:
- Code Bloat: Builders like Elementor and Divi generate heavy code, which can slow down websites. This impacts page speed, SEO rankings, and overall user experience—things that matter deeply to me as a developer.
- Subscription Dependency: Builders often tie you into recurring subscriptions. If the builder’s updates stop or it’s discontinued, your site could face long-term maintenance challenges.
- Lack of Scalability: As my projects shift toward creating complex, high-performance solutions for businesses, I’ve found builders limiting. Their convenience doesn’t outweigh the strategic and technical compromises they demand.
Bricks vs. Elementor for Developers and End Users
If I had to summarize my experience:
- Bricks Builder is better for the end user. It creates faster, more optimized websites, which is critical for user satisfaction and business success.
- Elementor Pro is better for the developer experience. Its ease of use and robust ecosystem make it a joy to work with during the build phase—but the end result often feels sluggish and bloated.
The Future of WordPress Development
I’m transitioning to block-based development using WordPress’s Gutenberg editor. This approach allows me to create reusable, lightweight components without relying on external builders. It’s a step toward more sustainable and scalable web development that aligns with modern standards.
For those just starting or working on simpler projects, builders like Bricks, Elementor, or Divi are excellent tools. But if you’re ready to prioritize performance, maintainability, and custom solutions, moving away from builders might be the next logical step.
What do you think? Are builders still your go-to, or are you considering a similar shift? Let me know in the comments!
I recently attended a networking event that left me feeling energized and optimistic. It wasn’t the usual tech-focused event I tend to go to, but instead a business-focused event hosted by BNI, a group that’s all about doing networking right.
What made this event stand out wasn’t just the structure or the people—it was the attitude of the group. They were genuinely interested in helping each other. And that’s the key to networking done right. It’s not about asking, “What can I get from this person?” It’s about starting with, “How can I help you?”
I go to a lot of meetups. Sometimes I’m there to find potential collaborations, other times to connect with end clients, and sometimes just to enjoy the learning experience. But one thing has become clear: the best networking happens when you focus on building real relationships, not just looking for quick wins.
This brings me to an important distinction I learned at the event—hard networking versus soft networking. Soft networking is what most of us are used to—casual conversations, maybe a follow-up, maybe not. Hard networking, however, is much more intentional. It’s about regular, structured interactions where trust builds over time. You focus on helping others first, knowing that over time, the benefits will come back to you.
A key takeaway from the BNI event is that effective networking often begins with giving. In the past, I’ve attended events where people were clearly just looking to sell or take something from me, without offering much in return. That’s not the right way to do it.
Networking done right means offering value to the group and building a foundation of trust. When you start with “How can I help you?” you open the door to real connections. It’s not just a strategy—it’s the right approach for long-term success.
If you’re in a group where everyone is willing to give as much as they receive, networking becomes a powerful experience. You stop feeling drained and start seeing real benefits. It all begins with the simple question: “How can I help you?”
If you’ve been hearing about the 8-point grid system in design and wondering what it’s all about, you’re not alone! It’s a popular approach that helps bring consistency to your designs by using multiples of 8 for spacing, sizing, and layout. Let’s break it down and see how you can apply it in your CSS.
What is the 8-Point Grid System?
The 8-point grid system is simple: everything in your design (like margins, padding, element sizes, etc.) is based on multiples of 8 pixels. This approach helps create a balanced, clean layout that’s visually pleasing and easy to work with.
Why Use the 8-Point Grid System?
- Consistency: Your design feels uniform and polished.
- Alignment: Everything lines up neatly, which makes your layouts easier to understand and interact with.
- Efficiency: Using a grid system speeds up the process for both designers and developers, reducing guesswork.
How to Use the 8-Point Grid System in CSS
You can easily apply the 8-point system to your CSS by following some simple guidelines.
- Spacing and Padding Make sure your margins and paddings are multiples of 8. This keeps the spacing between elements consistent and aligned.
.element { margin: 16px; /* Multiple of 8 */ padding: 8px; /* Multiple of 8 */ }
- Sizing Try to keep the sizes of your elements in multiples of 8 as well. This helps everything fit together smoothly.
.element { width: 128px; /* Multiple of 8 */ height: 64px; /* Multiple of 8 */ }
- Grid Layouts If you’re using a CSS grid, set the gaps (the spaces between rows and columns) in multiples of 8.
.grid-container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; /* Multiple of 8 */ }
- Typography Text sizes don’t always need to be multiples of 8, but you can use this rule for line height, margins, or padding around text elements.
.text-element { font-size: 16px; line-height: 24px; /* Multiple of 8 */ margin-bottom: 8px; }
- Responsive Design When designing for different screen sizes, you can scale up or down the spacing while sticking to multiples of 8. This helps keep your design consistent across devices.
@media (min-width: 768px) { .element { margin: 32px; /* Larger multiple of 8 for larger screens */ } }
Scaling the System
If you feel like 8px is too big for certain details, you can also work with 4px increments. Just halve the values to keep the same logic but get more granular control over your layout.
Final Thoughts
Using the 8-point grid system in your CSS design is a great way to keep things simple, consistent, and efficient. Once you get the hang of it, you’ll notice your designs look cleaner and are easier to manage. Give it a try on your next project, and see how it improves the flow of your layouts!
Moving from one city to another offers immense opportunities for growth but also presents a unique set of challenges. Right now, I find myself in Sydney, a vibrant yet expensive city, navigating its unfamiliar culture, managing my limited savings, and confronting the uncertainty that often looms over my lifestyle. This phase of my life resonates deeply with the philosophy of Stoicism, particularly the teachings that emphasize taking personal responsibility and avoiding a victim mindset.
The Choice: Hero or Victim?
One of the central teachings of Stoicism, emphasized by content creators like Marcos Vázquez, is the importance of personal responsibility. The Stoics believe that life’s obstacles are not excuses for defeat but opportunities to rise and grow. It’s a mindset I’ve tried to cultivate—especially here in Sydney, where the high cost of living and the uncertainties of freelance work have tested my patience and resolve.
Instead of allowing these challenges to overwhelm me, I’m learning to take responsibility for my situation and act with purpose. Like in life, I’ve realized that the challenges we face as digital nomads aren’t meant to crush us, but to sharpen our ability to navigate through the uncertainty with courage.
Lead Climbing and the Power of Mindset
One thing that’s helped me tremendously in adopting this mindset is my experience with lead climbing. Lead climbing isn’t just a physical challenge—it’s a mental game. You’re constantly confronting fear, pushing through discomfort, and knowing that the consequences of a fall could be serious. Yet, to succeed, you have to keep your focus, remain committed, and push forward despite the risks.
When you’re several meters above your last anchor, the temptation to freak out is real. But panicking isn’t just unhelpful—it can be dangerous. Much like life’s challenges, freaking out or adopting a victim mentality while lead climbing is counterproductive and puts you at greater risk. Over time, I’ve learned to calm my mind, focus on what’s within my control, and take deliberate steps forward, trusting my abilities and my preparation. This approach has helped me realize that freaking out never serves us—in climbing or in life.
Focus on What You Can Control
Much like in climbing, Stoicism emphasizes the importance of focusing on what’s within your control. I can’t control Sydney’s high costs or the uncertainty that comes with freelancing, but I can control how I respond to these challenges. I can manage my budget, explore new freelance opportunities, and immerse myself in the local culture to make the most of my experience here. By shifting my mindset from worrying about what I can’t control to taking action on what I can, I reclaim my sense of agency and focus on moving forward.
In climbing, when you’re facing a tough route, you don’t waste time worrying about the fall or the distance to the top. You focus on the next move—the hold you can reach, the step you can take. Life, I’ve learned, works the same way.
Thriving Through Action
Another powerful Stoic principle is the call to action. Stoics encourage us to respond to challenges with purposeful action, rather than being paralyzed by fear or uncertainty. Lead climbing taught me the importance of acting decisively when faced with difficult situations. You can’t afford to hesitate for too long when you’re hanging by a thread—literally. In freelancing and digital nomad life, the same applies.
When work slows down or I’m feeling uncertain about my next steps, instead of dwelling on the uncertainty, I take action. Whether that’s networking, finding new clients, or exploring affordable ways to live in a new city, I’ve learned to act rather than overthink. Taking action puts me back in the driver’s seat and shifts my mindset from feeling powerless to feeling capable.
Embracing Discomfort as Growth
Being out of your comfort zone, whether on a climbing wall or in a foreign city, is never easy. Yet, both climbing and Stoicism have taught me that discomfort is where growth happens. Each time I step into an unfamiliar environment or face a tough situation, I’m expanding my resilience and mental strength.
As a digital nomad, I’ve come to accept that discomfort is part of the deal. New cultures, new cities, and the uncertainty of freelance work all come with a fair share of challenges. But instead of viewing discomfort as something to avoid, I now see it as an opportunity for growth—just like the fear I face when lead climbing. Every time I push through fear and uncertainty, I become stronger, more capable, and more confident in my ability to navigate the next challenge.
Conclusion: Be the Hero of Your Journey
At the end of the day, life constantly presents us with a choice: be the hero of our own story or fall into victimhood. Whether you’re tackling a tough climbing route, managing your freelance business, or adapting to life in a new city, Stoicism teaches us to embrace challenges and take responsibility for how we respond.
As a digital nomad, there will always be uncertainty and discomfort. But rather than letting those challenges dictate how I feel, I choose to take action, focus on what I can control, and embrace the discomfort as a necessary part of growth. Life, like lead climbing, is full of risks, but it’s in how we face those risks that we find our strength.
The question is: Are you a hero or a victim?
As we step into another season, it’s time for a quarterly check-in to reflect on the past few months and share some exciting developments, both professionally and personally.
Highlights from the Last Quarter
- Embarking on the 100 Days of Code Challenge This quarter, I decided to take on the #100DaysOfCode challenge, a popular initiative designed to encourage daily coding practice. For about a month and a half, I consistently worked on various coding projects. However, life, travel, and holidays eventually caught up with me, and I had to pause the challenge. Despite not completing the full 100 days, I gained invaluable knowledge and skills during this time. I’m looking forward to restarting the challenge soon with fresh energy and determination.
- Deep Dive into WordPress Development One of the most exciting learning experiences this quarter was my deep dive into WordPress development. I had the opportunity to work on several technical aspects, including:
- SFTP connections
- Creating and managing backups
- Website migration
- Advanced Custom Fields (ACF)
- Modern CSS techniques This hands-on experience was part of a technical task for a digital agency, which allowed me to solidify my understanding of WordPress on a deeper level. The learning curve was steep, but the knowledge I gained was incredibly rewarding.
- New Freelance Partnership Opportunity As a result of my work with the aforementioned agency, I’m now in discussions about a potential freelance partnership. This is a development I’m truly excited about! Being able to collaborate with an agency that aligns with my professional goals is a great opportunity, and I’m looking forward to seeing where this partnership leads.
- Travel Adventures On a personal note, I managed to squeeze in some travel over the past few months. From Berlin, I made trips to both Madrid and Asturias. It was a wonderful way to balance work with quality time spent with family and friends. These trips were a perfect way to recharge before embarking on my next adventure: relocating to Sydney!
What’s Coming Up This Quarter
- Confirmed Projects in the Pipeline With the new quarter upon us, I’m pleased to share that I have three confirmed projects lined up. Two of these are based in Madrid, and one is from Berlin. I also have a couple of potential projects in the pipeline that I’m excited to dive into. The upcoming months are set to be busy and productive!
- Wrapping Up Kit Digital Projects In addition to my new projects, I will be wrapping up some ongoing work related to the Kit Digital initiative. These tasks are nearing completion, and I’m eager to deliver the final results to my clients.
- Focus on Freelancing and Networking in Sydney Having just landed in Sydney, my primary focus for the next few months will be on establishing new freelance connections. I plan to devote significant time to client outreach and forming relationships with agencies. By November, I aim to have a solid network in place to expand my freelance business in Australia.
- Personal Challenge: 3-Month Alcohol Break On a personal level, I’m trying something new—a three-month break from alcohol. This challenge is an experiment to see how it impacts my focus, productivity, and overall health. Not to mention, I’m curious to observe the financial savings from cutting out social drinking. It’s a personal experiment I’m excited to pursue, especially during such a work-focused period.
Looking Ahead: 100% Commitment
With plenty of exciting professional developments and a personal challenge on the horizon, it’s going to be a work-heavy few months. But I’m ready to give it my all and see what I can achieve by the end of this year. The balance between work and personal growth feels more important than ever, and I’m fully committed to making the most of the opportunities ahead.
Creating a website that not only meets but exceeds expectations requires a well-structured and refined process. Over time, I have developed a comprehensive web design and development workflow that ensures every project is handled with the utmost professionalism and attention to detail.
From the initial proposal to the final handoff, each stage is carefully crafted to deliver a website that aligns perfectly with your business goals and provides long-term value. Here’s an overview of the process I follow to bring your digital vision to life.
1. Speculative Stage: Web Design Proposal
This is the first part of my well-rehearsed web design and web development process.
After the agreement is reached, we invoice for 30% of the project cost. I adhere to a strict policy that we will not proceed to the design stage until payment has been made.
2. Concept Design
Concept design is handled by trusted partners, Tars.Studio or Rafa Mora. They use Figma to create wireframes that provide a clear visual representation of the website’s structure and design. This stage is essential for ensuring that the final product aligns with the client’s vision and business goals.
3. Development
Documenting the development process in detail is challenging because it varies depending on the setup, requirements, integrations, APIs, and other factors.
However, the process typically revolves around using Bricks Builder or crafting a custom theme from the ground up.
The development process is highly adaptable, ensuring that we can meet the unique needs of each project while maintaining the highest standards of quality.
4. Dev Version and Population
Once the development phase is completed, we create a dev version of the website for client review.
This version is populated with content, allowing the client to see the website in a near-final state. During this stage, we work closely with you to refine the content, make any necessary adjustments, and ensure that the website is fully aligned with their expectations.
5. Launch
After launch, the Support Package kicks in. I monitor your site for updates, patches, issues, downtime, scheduled backups, scans, and more.
This proactive approach ensures that your website remains secure, up-to-date, and fully functional, providing peace of mind and freeing you to focus on your business.
6. Feedback and Iteration
Post-launch, client feedback is invaluable. I actively seek your input on the website’s performance, usability, and overall satisfaction. This feedback allows us to make necessary tweaks and improvements, ensuring the website continues to meet your needs and expectations.
7. Knowledge Transfer and Training
To empower you in managing your new website’s content, I provide thorough knowledge transfer and training. Whether it’s through detailed documentation, video tutorials, or one-on-one training sessions, we ensure that you or your team have the skills needed to handle updates, content management, and basic troubleshooting.
The success of any web development project hinges on a clear and efficient process, and I am committed to delivering nothing less. By following this structured approach—from the speculative design stage through to launch, feedback, and knowledge transfer—I ensure that every aspect of your website is tailored to your needs and optimized for success. My goal is to build a website that not only looks great but also performs exceptionally well, empowering you to manage and grow your online presence with confidence. Your satisfaction is my top priority, and I’m here to support you every step of the way.