<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[baus.net]]></title><description><![CDATA[christopher@baus.net]]></description><link>https://baus.net/</link><image><url>https://baus.net/favicon.png</url><title>baus.net</title><link>https://baus.net/</link></image><generator>Ghost 5.38</generator><lastBuildDate>Sat, 11 Apr 2026 11:54:17 GMT</lastBuildDate><atom:link href="https://baus.net/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Rebuilding Yield.io with Cursor]]></title><description><![CDATA[<p>There&#x2019;s been a lot of discussion, both enthusiastic and skeptical, regarding &#x201C;vibe coding&#x201D; lately. Code generation has gone well beyond autocomplete. It can be prompted to build systems end-to-end. Generative coding is changing the way software is developed faster than time I&#x2019;ve seen in</p>]]></description><link>https://baus.net/rebuilding-yield-io-with-cursor/</link><guid isPermaLink="false">68934960cd31600995084002</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Wed, 06 Aug 2025 12:25:09 GMT</pubDate><content:encoded><![CDATA[<p>There&#x2019;s been a lot of discussion, both enthusiastic and skeptical, regarding &#x201C;vibe coding&#x201D; lately. Code generation has gone well beyond autocomplete. It can be prompted to build systems end-to-end. Generative coding is changing the way software is developed faster than time I&#x2019;ve seen in my career: including the early days of the internet.</p><p>I spent a weekend rebuilding <a href="http://yield.io/?ref=baus-net">Yield.io</a> dashboard. I used Cursor for code generation and Google&#x2019;s Gemini for in-app yield curve analysis.</p><h3 id="revisiting-a-familiar-project"><strong>Revisiting a Familiar Project</strong></h3><p>Earlier in my career I worked on financial analytics applications. Since then, I&#x2019;ve used Yield.io as a sandbox for trying new technology. This felt like a good time to modernize it with Cursor. </p><h3 id="coding-with-cursor"><strong>Coding with Cursor</strong></h3><p>As you probably know, Cursor is a fork of VS Code with AI integration. It supports multiple LLMs and has access to your project&#x2019;s structure, so it can make suggestions and modify code directly in context. For this project, I used it to build a data ingestion and backend layer in <a href="https://clickhouse.com/?ref=baus-net">ClickHouse</a>, a <a href="https://vuejs.org/?ref=baus-net">Vue</a> + <a href="https://echarts.apache.org/en/index.html?ref=baus-net">ECharts</a> frontend, and integrate basic AI-driven bond performance summaries from <a href="https://gemini.google.com/?ref=baus-net">Gemini</a>.</p><p>The ability to skip over details of learning a new API is, to me, one of the most meaningful wins of AI-assisted development. I&#x2019;d never used ECharts before, and normally I would&#x2019;ve had to stop and dig into documentation, and learn the nuances of yet another API. With Cursor, I could just describe the chart I wanted, and it scaffolded a working implementation instantly. Honestly I was surprised by how smoothly this went.</p><p>It is fast to generate code with Cursor, but the output didn&#x2019;t always align with my intentions. I often had to redirect it. It generated duplicated code, built overly long files, or made incorrect assumptions. For example, it repeatedly tried to sort a flat file that I had deliberately structured for easy appending. No matter how I prompted it, it would return to the idea of sorting. I eventually had to side-step the problem by structuring the data into a ClickHouse data store.</p><p>It also struggled with some of the more nuanced problems, like browser timezone handling. But, to its credit, that&#x2019;s a common source of bugs in web applications in general.</p><p>In the original version of Yield.io, users could view charts but had to interpret trends on their own. This time, I integrated <a href="https://gemini.google.com/app?ref=baus-net">Gemini</a> to analyze and explain yield curve dynamics directly in the UI. Instead of just data, users now get:</p><ul><li>Natural-language commentary on steepening and flattening</li><li>Comparisons to historical patterns</li><li>Market context based on curve shape</li></ul><p>It&#x2019;s like embedding a fixed income analyst in the product. This moved Yield.io from just being a charting tool to something more interpretive.</p><h3 id="deployment-is-still-manual"><strong>Deployment is still manual</strong></h3><p>While Cursor helped me write code quickly, it didn&#x2019;t help much with deployment. I still had to manually configure the ClickHouse environment, build Docker containers, and wire up hosting. Cursor could help scaffold scripts or suggest configs, but it wasn&#x2019;t a DevOps solution. This is becoming a problem with AI generated applications which has already resulted in some <a href="https://www.npr.org/2025/08/02/nx-s1-5483886/tea-app-breach-hacked-whisper-networks?ref=baus-net">high profile breaches</a>.</p><p>AI helped in the editor, but production remained a manual process.</p><h3 id="managing-regressions"><strong>Managing Regressions</strong></h3><p>Cursor encourages fast iteration. Unfortunately, quick changes can break existing logic or overwrite solutions from earlier in the session. I committed changes frequently to git, with frequent pushes. And it does highlight the need for testing early and often, which I did by adding <a href="https://www.cypress.io/?ref=baus-net">Cypress</a> E2E tests.</p><h3 id="why-the-skepticism"><strong>Why the Skepticism?</strong></h3><p>Overall, I&#x2019;d call the rebuild a success. So why is there so much skepticism around tools like Cursor?</p><p>Some of it, I think, is fear of change. Roles are shifting fast, and not everyone feels in control of that shift. It isn&#x2019;t clear what software roles will look like in the next few years.</p><p>There&#x2019;s also a genuine concern: code generators can be unpredictable and quickly generate a significant amount of tech debt, or code that you have little understanding of if things go wrong. Tools like Cursor require oversight. They help experienced developers move faster, but they don&#x2019;t remove the need for experience.</p><h3 id="conclusion"><strong>Conclusion</strong></h3><p>Overall I&#x2019;d consider the experiment a success, especially considering how quickly I was able to rewrite the dashboard, but overall this is a simple project. </p><p>While there is significant, and somewhat justified, skepticism among many engineers and developers, I think there is little doubt that tools like Cursor are changing the way software is built.</p>]]></content:encoded></item><item><title><![CDATA[AI tools which are changing software development]]></title><description><![CDATA[<p>Here are four AI tools which are changing the way software engineering is done. I&apos;m not sure if this class of tools has a official name, but I&apos;m going to call the &quot;agentic coding assistants.&quot;</p><p>These are state of the art tools using the</p>]]></description><link>https://baus.net/ai-tools-which-are-changing-software-development/</link><guid isPermaLink="false">67c449498c6f680524570cd0</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Sun, 02 Mar 2025 12:17:08 GMT</pubDate><media:content url="https://baus.net/content/images/2025/03/Screenshot-2025-03-02-at-6.52.01-AM.png" medium="image"/><content:encoded><![CDATA[<img src="https://baus.net/content/images/2025/03/Screenshot-2025-03-02-at-6.52.01-AM.png" alt="AI tools which are changing software development"><p>Here are four AI tools which are changing the way software engineering is done. I&apos;m not sure if this class of tools has a official name, but I&apos;m going to call the &quot;agentic coding assistants.&quot;</p><p>These are state of the art tools using the latest LLM models which are able to inspect, reason about and act on medium to large code bases.</p><p>While I&apos;m sure large companies like Meta, Google, Amazon, and Microsoft have their own internal tools optimized for their own code bases, these tools are available to mortals like you and me.</p><ul><li><a href="https://cursor.com/?ref=baus-net" rel="noopener noreferrer">Cursor</a>, Anysphere (Windows, Mac)</li><li><a href="https://trae.ai/?ref=baus-net" rel="noopener noreferrer">Trae</a>, ByteDance (Windows, Mac)</li><li><a href="https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode?ref=baus-net" rel="noopener noreferrer">Copilot Agent Mode</a>, Microsoft (Windows, Mac, Linux)</li><li><a href="https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview?ref=baus-net" rel="noopener noreferrer">Claude Code</a>, Anthropic (Windows, Mac, Linux)</li></ul><p>The first 3 are all pretty similar and use custom or preview releases of VSCode with a right hand panel which allows you to access their agent mode. As of the week of March 2, 2025, all now support Anthropic&apos;s Claude 3.7 Sonnet model, which is a start of the art LLM model which excels at code generation.</p><p>In my experience I found all 4 to excel at generating small scripts and editing larger applications. I have found they make common and repeated mistakes. Copilot seems to be the most sophisticated of them all, but it is also slower and has rate limiting which I&apos;ve hit a few times.</p><p>Trae, by TikTok creator ByteDance, is probably my favorite of these tools &#x2013; it is free and not rate limited which is hard to believe, but also keep in mind they are probably using your data to advance their own models or for other reasons. It is fast and reasonable accurate, although prone to making the same mistakes over and over.</p><p>Cursor started this market segment, and I&apos;ve spent the least amount of time with it primarily because of cost. But as the first mover they&apos;ve had more time to refine their experience.</p><p>Claude Code stands out as an unusual option, as it is command line based. It doesn&apos;t directly integrate into your IDE, which allows it to work with any IDE. It seems to be ideal for working command line utilities, and saw an example of it being able to read the output of a script it is working on. </p><p>While these tools have a magical feel to them, I can still imagine improvements. Specifically dynamic analysis of the application being worked on. Often a generator will make a mistake which either writes an exception to the log or displays in the browser for web apps. I suspect future versions will be able to inspect these problems and act accordingly.</p><p>All these tools are huge performance enhancers, especially for Sr. Engineers who can work around their quirks. While I can see a future that doesn&apos;t require a Human-in-the-loop reviewing their changes, we aren&apos;t quite there yet, but it will be interesting to see what the remainder of the year brings.</p>]]></content:encoded></item><item><title><![CDATA[Reconsidering the value in AI]]></title><description><![CDATA[<p>This is still playing out in the industry, but I think I got it wrong in two areas recently.</p><ol><li>I undervalued vertical market AI applications built on generic LLMs like OpenAI, Anthropic, etc. as wrappers.</li><li>I also didn&apos;t see the value or complexity in &quot;prompt engineering.&quot;</li></ol>]]></description><link>https://baus.net/reconsidering-the-value-in-ai/</link><guid isPermaLink="false">67a61f1a8c6f680524570ca7</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Fri, 07 Feb 2025 15:00:34 GMT</pubDate><content:encoded><![CDATA[<p>This is still playing out in the industry, but I think I got it wrong in two areas recently.</p><ol><li>I undervalued vertical market AI applications built on generic LLMs like OpenAI, Anthropic, etc. as wrappers.</li><li>I also didn&apos;t see the value or complexity in &quot;prompt engineering.&quot;</li></ol><h3 id="application-data">Application Data</h3><p>One of the biggest lessons I&#x2019;ve learned is that application data is a valuable commodity that significantly enhances AI&#x2019;s utility. While LLMs themselves are general-purpose, the data they interact with defines their value in specific use cases. Companies that build applications leveraging domain-specific data have a competitive moat: providing context, personalization, and accuracy. This is why AI-driven vertical market applications are starting to proliferate. They streamline AI&#x2019;s use in practical, industry-specific workflows while benefiting from ongoing improvements in foundation models.</p><h3 id="commoditized-apis">Commoditized APIs</h3><p>The sudden emergence of DeepSeek, which mimicked OpenAI&#x2019;s API, highlights another reality: LLM access itself is becoming a commodity. If an API-compatible model can slot into existing applications overnight, then differentiation won&#x2019;t come from who provides the mode. It will come from how applications use it. This reinforces the importance of application-layer innovation, where proprietary data, workflow integrations, and user experience will define winners.</p><h3 id="the-real-challenge-of-prompt-engineering">The Real Challenge of Prompt Engineering</h3><p>Another area where my initial assumptions were off was in underestimating the importance of sophisticated prompt engineering. Early on, the dominant view was that prompts were simple, and that improvements in models would render prompt complexity unnecessary. That hasn&#x2019;t been the case.</p><p>Fine-tuning prompts, structuring them effectively, and validating their performance through rigorous Evals processes has proven to be a significant amount of work in my current project. Subtle differences can lead to drastically different outcomes, and the best-performing applications are those that systematically test and optimize prompts to maximize reliability and accuracy. This goes beyond simple trial-and-error; it requires a structured approach to benchmarking outputs and refining context.</p><h3 id="the-shift-in-ai-value">The Shift in AI Value</h3><p>The AI industry is evolving in a direction where the real competitive advantage lies not in access to the models themselves but in:</p><ul><li>Proprietary application data that enhances AI performance.</li><li>Workflow-specific integrations that drive real utility.</li><li>Deep expertise in optimizing AI interactions through prompt engineering and Evals.</li></ul><p>I initially underestimated how quickly these shifts would occur, but it&#x2019;s now clear that the next wave of AI differentiation will come from how businesses wield these tools, not just from the tools themselves.</p>]]></content:encoded></item><item><title><![CDATA["Driving the Spike:" Integrating Software Project Teams]]></title><description><![CDATA[<p>I&apos;ve managed many projects which included multiple teams interacting through a shared API. For instance, in modern web applications it is common to have one team working on the front-end and one team working on the server back-end through common network interface. </p><p>One project I managed was a</p>]]></description><link>https://baus.net/driving-the-spike/</link><guid isPermaLink="false">64d2ceaff3ca216d57218239</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Tue, 08 Aug 2023 23:55:21 GMT</pubDate><content:encoded><![CDATA[<p>I&apos;ve managed many projects which included multiple teams interacting through a shared API. For instance, in modern web applications it is common to have one team working on the front-end and one team working on the server back-end through common network interface. </p><p>One project I managed was a resource fulfillment and allocation feature. Basically the user could purchase a resource and allocate it with one step. One team was working on the purchase flow and another was working on the physical allocation. The integration happened through a REST API. </p><p>While it would be tempting to develop both sides of the API to completion, and spend the end of the project integrating the front and back-end in my experience this risky as mis-interpretations of subtle dynamics of the API can cause the integration to fail or delay the release. It also delays true end-to-end testing development to the end of the project rather than shifting end-to-end testing to beginning of the project.</p><p>In the project above we &quot;drove the spike&quot; by ensuring by pressing a button (even though we didn&apos;t have the final designs for the button) the user could purchase and allocate storage, while ignoring error paths such as financial transactional and resource allocation failures. Also features such as resource reclaiming were not implemented until later in the project. </p><p>This allowed both teams to collaborate earlier in the development process, and baseline end-to-end tests to be established.</p><p><strong>Understanding the Spike</strong></p><p>The term &quot;driving the spike&quot; in software development refers to tackling the most complex or uncertain aspects of a project upfront. In the context of integrating software projects with multiple teams, it involves focusing on building and validating the shared API early in the development cycle. This spike serves as the backbone that connects various components, systems, and teams, ensuring a solid foundation for further development.</p><p><strong>Benefits of Driving the Spike</strong></p><ul><li><strong>Early Validation</strong> </li></ul><p>By implementing and testing the shared API early, teams can identify integration challenges and potential conflicts at an early stage. This reduces the likelihood of discovering major issues late in the development process, which can be time-consuming and costly to resolve.</p><ul><li><strong>Risk Mitigation</strong> </li></ul><p>Addressing complex integration issues early minimizes project risks. It allows teams to evaluate potential roadblocks, performance bottlenecks, and architectural mismatches, enabling them to make informed decisions and adjustments before they escalate.</p><ul><li><strong>Cross-Team Collaboration</strong> </li></ul><p>Driving the spike promotes collaboration between teams from the start. When teams work together on building the shared API, they gain a deeper understanding of each other&apos;s requirements, constraints, and coding practices. This shared experience fosters a sense of unity and shared responsibility.</p><ul><li><strong>Clear Expectations</strong></li></ul><p>Early integration provides a tangible reference point for all teams to align their work. This shared vision helps prevent misunderstandings and discrepancies in the understanding of how different components should interact.</p><p><strong>Steps to Drive the Spike</strong></p><ol><li><strong>API Design </strong>Begin by collaboratively designing the API that will serve as the integration point. Ensure that all teams&apos; requirements are considered and that the API is flexible enough to accommodate changes as the project progresses.</li><li><strong>Prototyping </strong>Develop a prototype of the API along with basic functionality. This will help to validate the integration concept and iron out potential issues early.</li><li><strong>End-to-End Testing </strong>Create a simple end-to-end scenario that involves multiple components from different teams using the API. This allows everyone to witness the integration firsthand and identify any immediate problems.</li><li><strong>Feedback Loop </strong>Encourage open communication among teams to gather feedback on the integration experience. Iterate on the API design and implementation based on the feedback received.</li><li><strong>Documentation </strong>Document the API comprehensively, including usage guidelines, examples, and best practices. This documentation will serve as a valuable resource for all teams during development.</li><li><strong>Continuous Integration </strong>Implement a continuous integration process to ensure that changes made by different teams don&apos;t break the API integration. Automated tests can catch regressions early.</li></ol><p>Integrating software projects with multiple teams using a shared API through the &quot;driving the spike&quot; approach is a proactive strategy that yields multiple benefits. It encourages early collaboration, minimizes risks, and sets clear expectations for the development process. By focusing on the most critical integration challenges upfront, teams pave the way for a smoother development journey and a successful project outcome. </p>]]></content:encoded></item><item><title><![CDATA[How to manage with urgency]]></title><description><![CDATA[<p>As mentioned in my previous article, expectations have shifted in the technology and start-up world in the past year, and there is an increased urgency to show product development results. </p><p>Urgency doesn&apos;t mean rushing, working harder, or compromising on quality; rather, it requires an approach which fosters shared</p>]]></description><link>https://baus.net/how-to-manage-with-ugency/</link><guid isPermaLink="false">64ca6748f3ca216d57218168</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Wed, 02 Aug 2023 15:01:19 GMT</pubDate><content:encoded><![CDATA[<p>As mentioned in my previous article, expectations have shifted in the technology and start-up world in the past year, and there is an increased urgency to show product development results. </p><p>Urgency doesn&apos;t mean rushing, working harder, or compromising on quality; rather, it requires an approach which fosters shared vision, continuous improvement, and customer-centricity. When faced with prospect of deliver value quickly, product teams should constantly ask themselves, &quot;what is the smallest thing we could do which adds value?&quot; Even if a small increment doesn&apos;t immediately generate financial results, it instills confidence in users and investors that product development is moving in a positive direction. </p><p>Any software which is checked into source control, but doesn&apos;t deliver value to customers represents a liability to an organization and should be treated as such. The longer it takes to deliver customer value, expectations rightfully increase. This can be avoid by consistently showing improvement with incremental results. &#xA0;</p><h3 id="fostering-a-shared-and-reasonable-vision">Fostering a Shared and Reasonable Vision</h3><p>A shared and reasonable vision is the cornerstone of a successful product development process. When all team members are aligned with the project&apos;s goals and vision, they work cohesively towards a common objective.</p><p>Encourage open communication and collaboration to foster a shared vision. Avoid unrealistic expectations and ensure that the project&apos;s goals are both aspirational and attainable. A clear and shared vision inspires urgency by motivating the team to work diligently towards a common purpose.</p><p>I believe a bit of psychology is at play here. When the team doesn&apos;t share a common vision, it splinters and motivation and productivity drops. This can be extremely dangerous to an organization which needs to show results quickly.</p><h3 id="developing-iteratively-progress-through-incremental-change">Developing Iteratively: Progress through Incremental Change</h3><p>Iterative development empowers product teams to make incremental progress with each iteration. Instead of aiming for a fully polished product from the start, break the project into manageable cycles, where each iteration builds upon the previous one.</p><p>Embracing iterative development encourages adaptability and responsiveness to user feedback and evolving market demands. It allows for continuous improvement, resulting in a more refined and relevant final product.</p><h3 id="release-early-and-often-responding-to-customer-needs">Release Early and Often: Responding to Customer Needs</h3><p>Releasing early and frequently is a key practice in agile product development, and was popularized in Eric Raymond&apos;s well known paper <a href="https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar?ref=baus-net">The Cathedral and the Bazaar</a> in 1999. Delivering a Minimum Viable Product (MVP) to customers, allows you gather valuable feedback and validate assumptions early in the process.</p><p>Early releases enable teams to better understand customer preferences and pain points. This customer-centric approach ensures that the final product meets customer needs more effectively.</p><h3 id="effective-meetings-a-catalyst-for-collaboration">Effective Meetings: A Catalyst for Collaboration</h3><p>Effective meetings play a crucial role in aligning teams and making informed decisions. To create urgency, meetings must be well-structured and goal-oriented. Meetings are a large enough topic that they could be covered in an article of their own, but I will touch upon the fundamentals here.</p><ul><li>Set clear agendas and objectives to keep discussions focused and productive.</li><li>Prepare ahead of time to make the most of the meeting. Going into a meeting cold is almost never a good use of all </li><li>Avoid designing the product during meetings; use them to review progress and align on goals.</li><li>Encourage active participation and create an environment where diverse perspectives are valued. Don&apos;t allow strong voices or asymmetrical power dynamics </li><li>Remove less important meetings. While meetings are necessary for collaboration, it&apos;s equally important to eliminate less important or redundant ones. Unnecessary meetings can consume valuable time and impede progress. Conduct a thorough review of meeting schedules and prioritize the most impactful ones. Removing less essential meetings allows team members to focus on core tasks and optimize productivity.</li></ul><h3 id="decisive-decision-making-avoiding-revisits-and-delays">Decisive Decision-Making: Avoiding Revisits and Delays</h3><p>Decisive decision-making is crucial to avoid delays and inefficiencies in the development process. Once decisions are made, trust in them and avoid revisiting them unless absolutely necessary. Often the cost of changing a decision is higher than making a slightly less optimal one. </p><p>Decisions should be documented, and project managers should prevent the team from using cycles to reconsider a decision which has already been agreed upon.</p><h3 id="focus-on-product-value-striving-for-customer-satisfaction">Focus on Product Value: Striving for Customer Satisfaction</h3><p>Perfection is an unattainable goal that can hinder progress. Prioritize delivering value to customers by focusing on essential features and functionalities.</p><p>A customer-focused approach ensures that the product addresses specific needs and resonates with the target audience. Embrace continuous improvement over the pursuit of unattainable perfection.</p><h3 id="avoid-rewriting-working-software-minimizing-disruptions">Avoid Rewriting Working Software: Minimizing Disruptions</h3><p>Software rewrites can disrupt the development process and waste valuable resources. This company ending results of such rewrites were well documented by Joel Spolsky&apos;s classic <a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/?ref=baus-net">Things You Should Never Do, Part I</a>. </p><p>When I say rewrite, I don&apos;t mean making changes in response to customer feedback or usage. I mean reimplementing existing functionality because of a perceived technical limitation. I&apos;ve been involved in 3 software rewrites in my career and all of them put significant stress on the engineering teams and ultimately put the product and/or company at jeopardy as release dates continued to slip and slip as parity was never reach with the former implementation.</p><p>Most products can be moved to a new design incrementally, and I have successfully worked on projects and UX flows which used different designs systems as we progressed incrementally toward a common paradigm. This can be uncomfortable for UX designers and product perfectionists, but ultimately significantly reduces the risk of failure in the organization.</p><h3 id="heeding-jeff-bezos-removing-one-way-doors">Heeding Jeff Bezos: Removing One-Way Doors</h3><p>Jeff Bezos&apos; principle of <a href="https://www.sec.gov/Archives/edgar/data/1018724/000119312516530910/d168744dex991.htm?ref=baus-net">removing one-way doors</a> underscores the importance of adaptability and agility. Avoiding irreversible decisions allows teams to explore alternative paths and pivot when necessary.</p><p>By eliminating one-way doors, teams can foster a culture of continuous learning and innovation. This approach encourages creative solutions and rapid progress.</p><h3 id="conclusion">Conclusion</h3><p>Creating urgency in the product development process involves embracing an agile, customer-focused, and collaborative mindset. By fostering a shared and reasonable vision, developing iteratively, releasing early and often, conducting effective meetings, removing less important meetings, making decisive decisions, prioritizing product value, avoiding unnecessary rewrites, and removing one-way doors, product development teams can drive transformative results.</p><p>The pursuit of urgency empowers teams to innovate rapidly, meet customer needs effectively, and succeed in a rapidly evolving market. Embrace urgency as a guiding principle, and witness how it transforms your product development journey, leading to impactful and customer-centric products which stand out.</p>]]></content:encoded></item><item><title><![CDATA[Motivating Your Start-up Team During a Period of Change]]></title><description><![CDATA[<p>Change is an inevitable part of the start-up experience, and this past year has been no exception. Hang-over from COVID over-investment, a rapidly changing AI landscape, and new expectations from investors and the market have forced many start-ups to re-evaluate their business and product strategies as the year has progressed.</p>]]></description><link>https://baus.net/motivating-during-change/</link><guid isPermaLink="false">64bbefe0f3ca216d572180c9</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Sat, 22 Jul 2023 15:27:46 GMT</pubDate><content:encoded><![CDATA[<p>Change is an inevitable part of the start-up experience, and this past year has been no exception. Hang-over from COVID over-investment, a rapidly changing AI landscape, and new expectations from investors and the market have forced many start-ups to re-evaluate their business and product strategies as the year has progressed. </p><p>As a start-up evolves, it will go through multiple transformations to adapt to market shifts and grow successfully. However, navigating change can be a daunting task, especially for employees who may feel uncertain or resistant to the unknown. Motivating your team during times of change is essential to ensure a smooth transition and foster a culture of resilience and innovation. </p><p>Assuming and stating that change is an expected part of the start-up experience isn&apos;t a &quot;get out of jail free&quot; card for managers who need to maximize the productivity of their teams during periods of rapid change. It can be easy for managers to forget the human and psychological aspects which ultimately allow teams to perform at their highest potential. </p><p>It is easy to underestimate the time and cost of a change to a team&apos;s short term productivity and view a team as a &quot;bag of resources&quot; to address problems in the organization, but in my experience teams perform the best when they feel like they are contributing to a shared goal and vision, and understand how their previous accomplishments at the organization contribute to the company&apos;s new objectives. </p><h3 id="transparent-communication">Transparent Communication </h3><p>Open and honest communication is the bedrock of successful change management. Be transparent about the reasons behind the change, the anticipated impact on the company, and the role of employees in the process. Address their concerns and questions with empathy, showing that their voices are heard and valued.</p><h3 id="involve-employees-in-decision-making">Involve Employees in Decision-making</h3><p>During times of change, involve employees in the decision-making process whenever possible. Seek their input, ideas, and feedback, and incorporate their perspectives into the change initiatives. This involvement gives employees a sense of ownership and purpose, increasing their commitment to the change.</p><h3 id="highlight-the-why-of-change">Highlight the &apos;Why&apos; of Change</h3><p>Clearly articulate the purpose and benefits of the change for both the company and its employees. Help them understand how the change aligns with the start-up&apos;s vision and long-term goals. When employees grasp the significance of the change, they are more likely to embrace it.</p><h3 id="provide-support-and-training">Provide Support and Training</h3><p>Change often requires employees to acquire new skills or adapt to different processes. Offer training programs and resources to help them navigate these changes successfully. Assure them that the company is invested in their growth and development.</p><h3 id="recognize-and-celebrate-progress">Recognize and Celebrate Progress </h3><p>Recognize and celebrate milestones and achievements throughout the change process. Acknowledge the hard work and dedication of your employees as they adapt to the changes. Celebrating progress reinforces positive behavior and boosts morale.</p><h3 id="promote-a-growth-mindset">Promote a Growth Mindset</h3><p>Encourage a growth mindset among employees. Emphasize that change brings opportunities for learning, innovation, and personal development. Frame change as a chance for employees to explore new possibilities and expand their skill sets.</p><h3 id="lead-by-example">Lead by Example </h3><p>As a leader, demonstrate your commitment to the change and the values you expect from your employees. Lead by example, showing resilience, adaptability, and a positive attitude during challenging times. Your behavior will influence your team&apos;s response to change.</p><h3 id="offer-supportive-feedback">Offer Supportive Feedback </h3><p>Provide regular feedback and guidance during the change process. Offer constructive feedback that helps employees improve their performance and navigate the changes more effectively. Supportive feedback fosters a culture of continuous improvement.</p><h3 id="create-supportive-peer-networks">Create Supportive Peer Networks </h3><p>Facilitate opportunities for employees to support each other during change. Encourage collaboration and create forums where team members can share experiences, challenges, and solutions. Peer support can help employees feel less isolated during the transition.</p><h3 id="acknowledge-and-manage-stress">Acknowledge and Manage Stress </h3><p>Understand that change can be stressful for employees. Be empathetic and offer resources or initiatives to help them manage stress and maintain their well-being during the change process.</p><p>Motivating employees during change in a start-up is a transformative process that requires vision, empathy, and effective communication. By engaging employees, providing support, and recognizing their efforts, you can foster a sense of purpose and commitment to the company&apos;s journey. When employees feel empowered and motivated, they become the driving force behind a start-up&apos;s success. As a leader, investing in your team&apos;s well-being during times of change will not only benefit the start-up&apos;s overall success but also cultivate a culture of resilience and adaptability that will move the company forward in the long run.</p>]]></content:encoded></item><item><title><![CDATA[What I learned as a vinyl DJ in Miami]]></title><description><![CDATA[<p>I got antsy. I was waiting out the pandemic with the rest of the world. I needed to get my mind off the potential end of civilization. I bought an old vinyl turntable off of Craigslist.<br></p><p>While I had collected vintage audio gear from the 60s and earlier for years,</p>]]></description><link>https://baus.net/miami-vinyl-dj/</link><guid isPermaLink="false">640df9f6f3ca216d57217ec9</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Fri, 20 Jan 2023 09:53:45 GMT</pubDate><media:content url="https://baus.net/content/images/2023/01/50BA09CF-F75F-4E9A-B0D3-341A535B25BC.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://baus.net/content/images/2023/01/50BA09CF-F75F-4E9A-B0D3-341A535B25BC.jpg" alt="What I learned as a vinyl DJ in Miami"><p>I got antsy. I was waiting out the pandemic with the rest of the world. I needed to get my mind off the potential end of civilization. I bought an old vinyl turntable off of Craigslist.<br></p><p>While I had collected vintage audio gear from the 60s and earlier for years, I had avoided collecting vinyl records as I saw it as the deep rabbit hole that it is. But as the pandemic wore on and eventually waned, I found myself with a new obsession. My collection quickly grew from 1 to 3000 records bolstered by buying other entire collections. One of those collections contained about 100 12&#x201D; singles typically used by DJs in the 80s.<br></p><p>In March 2021, my wife and I decided to purchase a house in Miami to be closer to her family in Venezuela. Miami has a vibrant music scene which is defined simultaneously by Latin and DJ culture. Miami is one of the few places in the US where DJs still regularly spin vinyl, and you can often hear Salsa music playing in the streets. It is common for restaurants to have DJs as entertainment.<br></p><p>Last year my wife took an extended trip to Venezuela to visit her family, and I started to get restless spending days alone in the house. I had an idea. Why didn&#x2019;t I see if a local restaurant which has vinyl DJs wanted to host a &#x201C;customer vinyl&#x201D; night. I sent them a DM on IG pitching the idea.</p><h2 id="the-try-out">The try-out</h2><p>After some prodding the owner finally relented and asked me to visit him at the restaurant. I was pretty nervous as I had never done anything like this in my life. My pitch was simple. Most other vinyl DJs are digging for unheard of obscure tracks. I will do the opposite and only play familiar 80s hits. <br></p><p>When I got to the restaurant, I assumed the owner only wanted to chat, but he asked me where my records were, and to bring some records. I quickly went home and gathered about 30 records and headed back to the restaurant.<br></p><p>I had no idea what I was doing. I had never used two turntables and a mixer before. This was escalating quickly. I decided to just wing it. I didn&#x2019;t even have headphones. After about 2 hours of poorly mixing 80s pop tracks, the owner came back and said I could have the gig, but not at the restaurant, at another outdoor venue they owned in Wynwood. It was a 7 hour set which paid $500. I did it! I got the gig!</p><h2 id="what-i-learned">What I learned</h2><h3 id="persistence-pays-off">Persistence pays off</h3><p>After I got the gig, I didn&#x2019;t hear back from them. Months later I got a panicked call from the owner. They needed a DJ that weekend, but I was in NYC. I almost cut my trip short, but they agreed to book me the next weekend. I was off!</p><h3 id="the-music-matters">The music matters</h3><p>There are two arts of vinyl DJing. 1 selecting the records. 2 mixing. Mixing (basically combining the end of one song with the beginning of the next) on vinyl is an art, but unless you are playing house music in a club, advanced mixing isn&#x2019;t as critical as other DJs would lead you to believe. <br></p><p>Yes other DJs will evaluate your poor mixing skills, just like coders will evaluate your code in a code review, the general public only cares about the music. I got a lot of positive feedback about my sets because people related with the music. &#x201C;That&#x2019;s the music I grew up with!&#x201D; &#x201C;That reminds me of trips in the car with my dad! I miss my dad!&#x201D;</p><h3 id="being-human-matters">Being human matters</h3><p>A lot of DJs are like machines. They don&#x2019;t want to be interrupted. But I&#x2019;m always willing to take requests or talk to people about the vinyl and equipment. The physical and human nature of playing vinyl is part of the experience. I get questions like: &#x201C;Is that really playing?&#x201D; &#x201C;What are those?&#x201D; &#x201C;Is that original vinyl (ed. yes it mostly is!)&#x201D; &#x201C;Why do you have two record players?&#x201D; &#x201C;Can you play Michael Jackson?&#x201D; Sometimes people just want to fist bump you and tell you they are a DJ too! Interacting with the DJ is part of the experience in my opinion.</p><h3 id="hospitality-is-a-hard-business">Hospitality is a hard business</h3><p>I&#x2019;ve worked in software exclusively for over 25 years. Working as a DJ has allowed me to look behind the curtain of the hospitality business. Things we take for granted in tech, don&#x2019;t exist in hospitality. In tech we take great pains onboarding new employees. What I found in hospitality is operations are all almost tribal knowledge. Most DJ booths basically work the same, but they are all also subtly different and have their own quirks. But there are almost never guidelines on how to operate the booth. It is basically, &#x201C;here&#x2019;s the booth, good luck.&#x201D;</p><p>Also it is a business. You have to remember why you are there. You are there to entice people to engage and consume more food and drinks. If you don&#x2019;t do that, you aren&#x2019;t doing your job. If something isn&#x2019;t working, you need to change what you are doing.</p><p>It can be difficult for me to compete for gigs in some venues because professional DJs will snag most dates. That&#x2019;s probably ok. Putting food on the table as a work-a-day DJ is not easy. I have to remember this is only a hobby for me.</p><h3 id="set-expectations">Set expectations</h3><p>I did make one mistake. I played a genre an owner didn&#x2019;t want in his restaurant. Again the type of music to play was basically tribal knowledge shared by DJs who played in the venue, but being new I wasn&#x2019;t part of the tribe yet. One idea is to reach out to other DJs who have played in that venue to see what the owner or manager expects, but another is to just use some of the basic skills I&#x2019;ve learned as a software manager. Make sure you are aligned with the management. </p><p>Now I&#x2019;m explicit about the type of music I will be playing and even make sample playlists on Spotify to make sure I&#x2019;m not going to surprise anyone. If people consider their venue to be &#x201C;family oriented&#x201D; you might want to tone down the gangster rap for instance. </p><h3 id="reputation-matters">Reputation matters</h3><p>I was fortunate to break into DJing with persistence, but honestly it takes work and marketing to build your reputation. I get frustrated when I see DJs getting booked in venues where I struggle to get an answer, but it takes time. People are trusting their business with you. Most don&#x2019;t want to take chances. But I keep sending out flyers and occasionally I&#x2019;ll get a call back, and expand the places I&#x2019;m playing. For instance I will be playing a new venue in March based solely on a cold DM.</p><h3 id="conclusion">Conclusion</h3><p>While it is pretty unusual for someone my age to start DJing (I&#x2019;m 48), it isn&#x2019;t impossible, and you have the advantage of knowing music from time younger DJs might not fully grok. You need to be realistic about who you will be playing for (I will never play tech house in a club), but in a market like Miami, there is room for different types of styles. Technique matters, but in the end it is about the music and relating with your crowd. In some ways it isn&apos;t so different than working on a tech product. &#xA0;</p><p>The last thing I will say, if you want to do something in life, now is the time to do it. The clock is ticking. I&#x2019;m pretty sure if I hadn&#x2019;t started DJing last year I would have never done it, and that is something I would have regretted.<br></p>]]></content:encoded></item><item><title><![CDATA[2021 Year in Review]]></title><description><![CDATA[<p>I turned 47 this week. The months are turning into years and evolving into decades. Like for a lot of people, the past year has been a difficult one, but also a fortunate one in many ways. </p><p>We lost our long time friend, colleague, and mentor, Thomas Becker, in September</p>]]></description><link>https://baus.net/2021-year-in-review/</link><guid isPermaLink="false">640df9f6f3ca216d57217ec6</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Tue, 23 Mar 2021 15:52:38 GMT</pubDate><media:content url="https://baus.net/content/images/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0-1.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://baus.net/content/images/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0-1.jpeg" alt="2021 Year in Review"><p>I turned 47 this week. The months are turning into years and evolving into decades. Like for a lot of people, the past year has been a difficult one, but also a fortunate one in many ways. </p><p>We lost our long time friend, colleague, and mentor, Thomas Becker, in September and soon after my Mom passed away. Both came unexpectedly. </p><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/EBC021CD-CD7E-4E62-BFE6-568F30C544AD.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="1080" height="720" srcset="https://baus.net/content/images/size/w600/2021/03/EBC021CD-CD7E-4E62-BFE6-568F30C544AD.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/EBC021CD-CD7E-4E62-BFE6-568F30C544AD.jpeg 1000w, https://baus.net/content/images/2021/03/EBC021CD-CD7E-4E62-BFE6-568F30C544AD.jpeg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Losing my mom has been particularly difficult. There are still many occasions I want to ask her for advice or let her what we are up to. You don&#x2019;t realize it when they are alive, but your parents&#x2019; approval goes a long way even as an adult. You want to feel that your parents will be proud of you. </p><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/51B782A9-EA03-4EA4-B9D7-51FB37205D3F.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="2000" height="1500" srcset="https://baus.net/content/images/size/w600/2021/03/51B782A9-EA03-4EA4-B9D7-51FB37205D3F.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/51B782A9-EA03-4EA4-B9D7-51FB37205D3F.jpeg 1000w, https://baus.net/content/images/size/w1600/2021/03/51B782A9-EA03-4EA4-B9D7-51FB37205D3F.jpeg 1600w, https://baus.net/content/images/2021/03/51B782A9-EA03-4EA4-B9D7-51FB37205D3F.jpeg 2048w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/338A2516-49EB-4C26-BF1A-9B7007BD247E-1.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="2000" height="1502" srcset="https://baus.net/content/images/size/w600/2021/03/338A2516-49EB-4C26-BF1A-9B7007BD247E-1.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/338A2516-49EB-4C26-BF1A-9B7007BD247E-1.jpeg 1000w, https://baus.net/content/images/size/w1600/2021/03/338A2516-49EB-4C26-BF1A-9B7007BD247E-1.jpeg 1600w, https://baus.net/content/images/size/w2400/2021/03/338A2516-49EB-4C26-BF1A-9B7007BD247E-1.jpeg 2400w" sizes="(min-width: 720px) 720px"></figure><p>I&#x2019;m thankful my mom was able to meet my wife, Eylin, before she passed. Eylin has been my stability point during a time of turmoil. While I have the propensity to worry and spin issues around in my head, Eylin is much more level headed and helps to keep my nerves calm. I&#x2019;m very fortunate to have her in my life.</p><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/9A03DFE3-29D6-46EE-8C57-F432802168D8.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="1536" height="2048" srcset="https://baus.net/content/images/size/w600/2021/03/9A03DFE3-29D6-46EE-8C57-F432802168D8.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/9A03DFE3-29D6-46EE-8C57-F432802168D8.jpeg 1000w, https://baus.net/content/images/2021/03/9A03DFE3-29D6-46EE-8C57-F432802168D8.jpeg 1536w" sizes="(min-width: 720px) 720px"></figure><p>On the plus side, while professionally this hasn&#x2019;t been the easiest year, business has been strong at the <a href="https://gitlab.com/?ref=baus-net">startup I work for</a>. &#xA0;I am fortunate to have had very little impact financially from the pandemic. </p><p>In fact Eylin and I decided to buy a second home in Miami! Miami is a fast moving market and didn&#x2019;t want to wait another year while prices advanced even further. We moved in last week, and I feel very content in the house and the neighborhood. </p><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="2000" height="2000" srcset="https://baus.net/content/images/size/w600/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0.jpeg 1000w, https://baus.net/content/images/size/w1600/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0.jpeg 1600w, https://baus.net/content/images/size/w2400/2021/03/17CC8142-32FD-4143-839E-1D49D41734F0.jpeg 2400w" sizes="(min-width: 720px) 720px"></figure><p>It is a nearly 100 year old Mediterranean style home which has been totally remodeled. It is in the oldest neighborhood in Miami with a variety of different architectural styles and tree lined streets. We are in the center of the city, close to many other interesting neighborhoods including Little Havana, Coconut Grove, Coral Gables and Brickell. &#xA0; </p><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/46CB7245-C768-4B3F-8366-234B82F87B9C.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="2000" height="2000" srcset="https://baus.net/content/images/size/w600/2021/03/46CB7245-C768-4B3F-8366-234B82F87B9C.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/46CB7245-C768-4B3F-8366-234B82F87B9C.jpeg 1000w, https://baus.net/content/images/size/w1600/2021/03/46CB7245-C768-4B3F-8366-234B82F87B9C.jpeg 1600w, https://baus.net/content/images/size/w2400/2021/03/46CB7245-C768-4B3F-8366-234B82F87B9C.jpeg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Tahoe will still be our primary residence for the next couple years, but I could see us relocating more or less full time to Miami in a few years. </p><figure class="kg-card kg-image-card"><img src="https://baus.net/content/images/2021/03/FF9E0CD1-E1BC-4A2B-B8C8-C4B574D7D304.jpeg" class="kg-image" alt="2021 Year in Review" loading="lazy" width="2000" height="2000" srcset="https://baus.net/content/images/size/w600/2021/03/FF9E0CD1-E1BC-4A2B-B8C8-C4B574D7D304.jpeg 600w, https://baus.net/content/images/size/w1000/2021/03/FF9E0CD1-E1BC-4A2B-B8C8-C4B574D7D304.jpeg 1000w, https://baus.net/content/images/size/w1600/2021/03/FF9E0CD1-E1BC-4A2B-B8C8-C4B574D7D304.jpeg 1600w, https://baus.net/content/images/size/w2400/2021/03/FF9E0CD1-E1BC-4A2B-B8C8-C4B574D7D304.jpeg 2400w" sizes="(min-width: 720px) 720px"></figure><p>In coming year I really need to focus on my health which has gone to downhill during the pandemic. The years are catching up with me, and I don&#x2019;t snap back like I used to. All else is a wash without your health. </p><p>But in general, I feel very content and thankful. Losing those close to you is never easy, but I&#x2019;ve had a great life, fulfilling some of my life dreams at an early age, and I continue to explore new avenues both literally and figuratively at this point in my life.</p>]]></content:encoded></item><item><title><![CDATA[Converting from React to Vue]]></title><description><![CDATA[<p>My Mom passed away a few months ago. Her death took me by surprise and knocked the wind out of me. Both my parents had a strong work ethic, and I feel like my Mom wanted me to get back on my feet as soon as possible. So with that,</p>]]></description><link>https://baus.net/converting-yieldio-from-react-to-vue/</link><guid isPermaLink="false">640df9f6f3ca216d57217ec5</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Mon, 30 Nov 2020 22:46:19 GMT</pubDate><content:encoded><![CDATA[<p>My Mom passed away a few months ago. Her death took me by surprise and knocked the wind out of me. Both my parents had a strong work ethic, and I feel like my Mom wanted me to get back on my feet as soon as possible. So with that, I decided to go back to the &quot;roots&quot; and work on a bit of coding. </p><p>I&apos;ve been wanting to re-write my <a href="https://yield.io/?ref=baus-net">YieldIO</a> application to <a href="https://vuejs.org/?ref=baus-net">Vue</a> from <a href="https://reactjs.org/?ref=baus-net">React</a> for awhile. Vue has been my primary framework for about 3 years, and I&apos;m much more familiar with it at this point. Vue feels more modern and less verbose that React, but they both work from similar concepts and I could be productive with either. </p><p>The new client is available in my personal <a href="https://gitlab.com/baus/yieldio/-/tree/master/vue-client?ref=baus-net">GitLab repo</a>. If you are looking example of using Vue for creating an analytical dashboard, I think it is a good place to start. </p><p></p>]]></content:encoded></item><item><title><![CDATA[Year one at GitLab]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>I wasn&apos;t big at marking my time as years rolled on in <a href="https://zephyrondemand.com/?ref=baus-net">previous roles</a>, and frankly I lost track of work anniversaries. This year feels a bit different. Today marks my one year anniversary as an <a href="https://about.gitlab.com/handbook/engineering/management/?ref=baus-net">Engineering Manager</a> at <a href="https://about.gitlab.com/?ref=baus-net">GitLab</a>.</p>
<p>It has been a great experience and I&</p>]]></description><link>https://baus.net/one-year-at-gitlab/</link><guid isPermaLink="false">640df9f6f3ca216d57217ec3</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Thu, 06 Aug 2020 04:56:20 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>I wasn&apos;t big at marking my time as years rolled on in <a href="https://zephyrondemand.com/?ref=baus-net">previous roles</a>, and frankly I lost track of work anniversaries. This year feels a bit different. Today marks my one year anniversary as an <a href="https://about.gitlab.com/handbook/engineering/management/?ref=baus-net">Engineering Manager</a> at <a href="https://about.gitlab.com/?ref=baus-net">GitLab</a>.</p>
<p>It has been a great experience and I&apos;m thankful for all the <a href="https://gitlab.com/amandarueda?ref=baus-net">talented people</a> I&apos;ve had the privilege to work with. Not only have have I had to opportunity to work with a <a href="https://about.gitlab.com/handbook/engineering/development/growth/fe-fulfillment/?ref=baus-net">great team</a>, I&apos;ve become a <a href="https://baus.net/working-all-remotely/">proponent</a> of the &quot;GitLab way&quot; which includes working 100% remote and global. I&apos;m becoming a steward of the <a href="https://about.gitlab.com/handbook/values/?ref=baus-net">GitLab values</a>.</p>
<p>It is hard to remain relevant in the software industry -- you have to stay ahead of or, better, create the trends. I started my career writing desktop applications in C++ for the <a href="http://www.charlespetzold.com/pw5/?ref=baus-net">Windows API</a>. Could I still make a living with those skills? Maybe. But my options would be severely limited.</p>
<p>Similarly I started working at companies on-site in the US (it is crazy to think how many times I moved for a job). Now I could be planning on going back to an office when the COVID crisis &quot;ends.&quot; But at GitLab I feel like I&apos;m ahead of important trend in the globalization of software development -- there is no office to return to. While other companies scrambled to come up with remote work plans, at GitLab it was pretty much business as usual. Throughout my career I&apos;ve believed that <a href="https://about.gitlab.com/handbook/values/?ref=baus-net#results">results are what matter</a>, and at all-remote company results are one of the only things there is to measure.</p>
<p>Not everything is perfect, but more often than not GitLab gets the fundamentals right, and I find myself nodding in agreement. I&apos;m looking forward to the opportunities and challenges the next year will bring.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Embracing asynchronous work]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>A couple months ago I wrote about <a href="https://baus.net/working-all-remotely/">my experience working all-remotely</a>. The world has changed since then, and narrative on remote work has gone from: &quot;this might be a good idea&quot; to &quot;we are implementing this NOW!&quot;</p>
<p>I&apos;d like to thank GitLab&apos;s</p>]]></description><link>https://baus.net/embrace-asynchronous-work/</link><guid isPermaLink="false">640df9f6f3ca216d57217ec1</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Fri, 12 Jun 2020 23:09:41 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>A couple months ago I wrote about <a href="https://baus.net/working-all-remotely/">my experience working all-remotely</a>. The world has changed since then, and narrative on remote work has gone from: &quot;this might be a good idea&quot; to &quot;we are implementing this NOW!&quot;</p>
<p>I&apos;d like to thank GitLab&apos;s CEO, <a href="https://about.gitlab.com/handbook/ceo/?ref=baus-net">Sid Sijbrandij</a>, for promoting not only All-Remote work, but our Family and Friends first policy with our second <a href="https://about.gitlab.com/handbook/ceo/family-friends-day/?ref=baus-net">Family and Friends day</a>. I&apos;m using some of that time to finish up this post. If you are new to remote work, you might want to look at GitLab&apos;s <a href="https://about.gitlab.com/company/culture/all-remote/guide/?ref=baus-net">Guide to All-Remote</a>.</p>
<p>I want to revisit one remote working topic, which was probably the most difficult for me to embrace as a first time all-remote manager -- but will become more critical as employees are simultaneously working from home and caring for their children -- working asynchronously.</p>
<h2 id="synchronousvsasynchronous">Synchronous vs asynchronous</h2>
<p>Simply, and I&apos;m borrowing from <a href="https://www.google.com/search?q=asynchronous&amp;ref=baus-net">Google&apos;s dictionary</a> here, asynchronous means, &quot;not happening at the same time.&quot;</p>
<p>Asynchronous is the opposite of synchronous communications which include a face-to-face discussion -- the communication between all parties is happening simultaneously. Other synchronous examples include telephone calls (hi Mom!), video conferences, and, potentially, text messaging.</p>
<p>An example of asynchronous communication would be listening to a pre-recorded podcast. The listener is consuming the information at a different time than when it was recorded. E-mail is another example.</p>
<p>Working asynchronous means preferring asynchronous communication over synchronous. Collaboration means making a request and not getting or expecting an immediate response.</p>
<h2 id="dontsetworkinghours">Don&apos;t set working hours</h2>
<p>If it is your first time managing a remote team, especially if the team is working in the same timezone, it is tempting to set core working hours -- for instance requiring the team to be online from 10AM-4PM. Unless you are working in an environment which requires hands-on monitoring (for instance production or customer services), I would recommend fighting this urge.</p>
<p>I work with people widely distributed, so it isn&apos;t feasible for us to work overlapping hours. I also personally work what I call a non-contiguous day. I rarely work full day in a solid block, so my day might not even overlap with people in my own timezone.</p>
<p>When you assume that others will not be working when you are, then asynchronous communication becomes more natural.</p>
<p><img src="https://baus.net/content/images/2020/06/F6AFA007-D7D8-4EE9-972C-7699294BF99F.jpeg" alt="F6AFA007-D7D8-4EE9-972C-7699294BF99F" loading="lazy"></p>
<h2 id="meetingsaresocial">Meetings are social</h2>
<p>When I first started managing an all-remote team my instinct was to fallback on synchronous video calls -- I will admit to being a reformed Power Point jockey. Someone from outside GitLab asked me, &quot;if all work happens asynchronously, why do you still have video conference meetings?&quot;</p>
<p>I now consider meetings as important for their social aspects -- rather than a venue for collaboration or decision making. You may need to bring awareness to a process change, or outside decision, but I overall I feel like meetings are useful for feeling I &quot;know&quot; someone better because I see their face and hear their voice.</p>
<p>Keep synchronous meetings short, have an agenda, and mostly reference tools and documents where the real decision making is happening.</p>
<h2 id="latency">Latency</h2>
<p>Asynchronous work implies latency in communication -- you might not get an answer to an inquiry right away if your counterpart is sleep or otherwise unavailable. Latency in communication takes some adjusting to, but I&apos;d argue that requiring employees to always be available to reply to any request synchronously can add to undue stress.</p>
<p>Unless you are dealing with a critical system failure, in my experience, an immediate response is almost never required. Unfortunately increased latency can mean working on multiple tasks simultaneously so not to become blocked on one thread of communication.</p>
<p>This is the most significant drawback to working asynchronously. It often requires that most employees, including engineers, have multiple projects or moving forward simultaneously. Fortunately modern tools enable quick context switches, but working on multiple projects can increase cognitive load in already demanding roles. I recommend focusing on one task and not context switching when notified by a colleague, but when it is convenient.</p>
<h2 id="useasynchronoustools">Use asynchronous tools</h2>
<p>Decisions and conversations around work items should be discussed, documented, and preserved. Document management, wiki, issue tracking, and source control systems allow teammates to collaborate without having to participate at the same time. Prefer these systems over synchronous tools like video conferencing and chat.</p>
<h2 id="overcommunicate">Over communicate</h2>
<p>I suspect one of the reasons managers are afraid to embrace asynchronous communication is loss of hidden context in office chatter -- they have a sense of what is happening based on what their team and others around them are saying. But I&apos;d argue it isn&apos;t effective to depend informal, undocumented, communication.</p>
<p>Since asynchronous companies are missing the informal communication channels and context that the office provides, I encourage my team to over communicate what they are working on, problems they are having, and status. You aren&apos;t going to be able to visible see that a team mate is frustrated, but I encourage team members to speak up when they unable to solve a problem on their own. That could happen in the messaging system or</p>
<h2 id="stayingthecourse">Staying the course</h2>
<p>I will admit the number of synchronous meetings I have are piling up. I think most are there, as I mentioned earlier, to provide social context, but I&apos;ve noticed when the pressure to deliver increases, so does the tendency to go return to synchronous management. I feel like this is a crutch, and something I&apos;m actively improve in my management style. I firmly believe individuals do their best work when they are able to work at their own conveniece rather than the convenience of management.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Working all-remotely]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>With the <a href="https://twitter.com/sytses/status/1235031599252529152?ref=baus-net">recent uptick</a> in interest in remote work, I thought it would be a good time recap my experience of working at <a href="https://about.gitlab.com/?ref=baus-net">GitLab</a>, an <a href="https://about.gitlab.com/company/culture/all-remote/?ref=baus-net">all-remote company</a>, over the past 7 months. It hasn&apos;t been without its adjustments, but overall I&apos;m a proponent of this style</p>]]></description><link>https://baus.net/working-all-remotely/</link><guid isPermaLink="false">640df9f6f3ca216d57217ec0</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Mon, 09 Mar 2020 01:59:05 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>With the <a href="https://twitter.com/sytses/status/1235031599252529152?ref=baus-net">recent uptick</a> in interest in remote work, I thought it would be a good time recap my experience of working at <a href="https://about.gitlab.com/?ref=baus-net">GitLab</a>, an <a href="https://about.gitlab.com/company/culture/all-remote/?ref=baus-net">all-remote company</a>, over the past 7 months. It hasn&apos;t been without its adjustments, but overall I&apos;m a proponent of this style of work and think it is the future of software development.</p>
<h2 id="background">Background</h2>
<p>I spent the majority of my career as an engineer and manager at a small software company in <a href="https://en.wikipedia.org/wiki/Lake_Tahoe?ref=baus-net">Lake Tahoe</a>, NV, USA. While Tahoe is a 3 1/2 hour drive from Silicon Valley, it is far from being a tech hub. Our location compounded the common problems of hiring, and we eventually needed to consider remote work.</p>
<p>My first remote management experience was working with a consulting company in the Bay Area, but we eventually moved on to placing developers in <a href="https://en.wikipedia.org/wiki/Costa_Rica?ref=baus-net">Latin America</a>. We specifically chose that location to overlap with our working hours in North America -- which was probably a prudent decision.</p>
<p>While we got some things right (we hand picked developers and treated them as part of the core team), because most of the team, including management, was colocated at the headquarters, I don&apos;t think we ever truly succeeded at integrating the teams.</p>
<h2 id="goingallremote">Going all-remote</h2>
<p>Fast-forward a few years: I joined <a href="https://pendo.io/?ref=baus-net">a start-up</a> in a fully colocated office in Raleigh, NC, and then last year, my wife and I decided to move back Tahoe, which basically meant working remotely. I was fortunate to accept a position as an Engineering Manager at GitLab, which is the <a href="https://about.gitlab.com/company/culture/all-remote/?ref=baus-net">world&apos;s largest all-remote company</a>.</p>
<p>There are two aspects which differentiate working at <a href="https://gitlab.com/?ref=baus-net">GitLab</a> from my previous remote experiences.</p>
<ul>
<li>GitLab is <em>ALL-remote</em> -- not even the <a href="https://about.gitlab.com/handbook/ceo/?ref=baus-net">CEO</a> has an office.</li>
<li>GitLab&apos;s employees are geographically dispersed worldwide.</li>
</ul>
<p>While those differences present challenges, I also believe they are fundamental to the success of the model.</p>
<h2 id="workingworldwide">Working worldwide</h2>
<p>There are trade-offs in every decision, but I believe history will be on the side of all-remote work -- specifically for software development. The benefits of a distributed team (including being able to hire around the globe and work around the clock) outweigh the drawbacks, but there are some differences.</p>
<p>For the first couple months I felt I was managing into the void. The <em>nearest</em> person on my team is an 8 hour time difference away. It wasn&apos;t until recently that this started feeling normal.</p>
<p>While I don&apos;t track my time, I suspect I work a more or less a 40 hour work week, but I don&apos;t work a contiguous 8 hour day. While we strive to work <a href="https://about.gitlab.com/company/culture/all-remote/asynchronous/?ref=baus-net">asynchronously</a>, I have some scheduled meetings over <a href="https://zoom.us/?ref=baus-net">Zoom</a>. While it is possible to work a contiguous day (and I suspect most do), considering that all of my team, excluding myself, works within a few hours of GMT, I&apos;ve decided it is easier for me to adjust my schedule.</p>
<p>In practice it means my early mornings (7-9AM PST) are usually booked to overlap with the end of day in Eastern Europe, and by my own design, I also have meetings once a week at night -- after 10PM PST. I tried taking 6AM PST meetings, but found I couldn&apos;t function effectively at that time of day.</p>
<p>Some late mornings and afternoons are set aside for Asia-Pacific meetings, but mostly they are meeting free. <a href="https://www.coachup.com/nation/articles/skiing-on-a-powder-day?ref=baus-net">Powder day</a> in Tahoe? Hit it! Nap? At times, I&apos;ll siesta (as my wife would say) after my morning meetings, or head to the gym in the early afternoon when nobody is there.</p>
<p>Does this work for everyone? Maybe not, but I think all-remote is about being flexible and finding what works for you. If you value your downtime it is rare that someone will expect you to respond right away.</p>
<h2 id="workingasynchronously">Working asynchronously</h2>
<p>The biggest adjustment for me, and an area where I can still improve is <a href="https://about.gitlab.com/company/culture/all-remote/asynchronous/?ref=baus-net">working asynchronously</a>.</p>
<p>I came from an environment which valued quick, real-time communication. When you are work in an all-remote, globally distributed environment, that doesn&apos;t work so well. During most of my working hours, my team is offline, sleeping, or otherwise unavailable.</p>
<p>This forces communication to be written and documented. At GitLab we make heavy use of our own software. At the core, <a href="https://git-scm.com/?ref=baus-net">Git</a> itself provides excellent support for distributed software development, and <a href="https://gitlab.com/?ref=baus-net">GitLab</a> adds additional tools for collaboration. While we have other communication <a href="https://slack.com/?ref=baus-net">mechanisms</a>, the content in GitLab is the single-source of truth. GitLab is only one tool, and obviously not required for all-remote work, but I do think having a location for maintaining the source of truth about work being done is critical.</p>
<h2 id="timezonepingpong">Timezone ping pong</h2>
<p>One of the side effects of working asynchronously is something I call &quot;timezone ping pong.&quot; What can happen when you are collaborating on work such as a code review, is you will leave a comment during your working hours, the other person will get back 12 hours later during their working hours, then you make another comment 10 hours later, etc. Coming to a resolution can seem like a slog.</p>
<p>I don&apos;t have solution to this, but I have a couple ideas</p>
<ul>
<li>Try to anticipate the questions of collaborators</li>
<li>Don&apos;t let one project block you</li>
</ul>
<p>Asynchronous communication can not be treated like real-time dialogue, and that has some benefits. It forces conversations to be premeditated, and, again, documented. For code reviews for example, this can mean understanding coding guidelines to prevent back-and-forths of agreed upon standards. Thorough and premeditated conversation is an area of constant improvement, but I believe the overall result is a more thoughtful resolution.</p>
<p>Working asynchronously often requires keeping multiple threads of work moving forward simultaneously. For instance as an engineer if you are waiting for feedback from a counterpart team such as Design or Product Management, you should be prepared to move onto another task. This type of context switching becomes more natural over time as your conversation pipelines grow, but it takes some time to adjust to.</p>
<h2 id="physicalenvironment">Physical environment</h2>
<p>Remote work can have the cost saving benefit of not needing to manage physical office space [1], but is also isn&apos;t a get-out-jail-free card for employers, as they should be prepared to handle the costs of setting up remote work spaces for their employees.</p>
<p>Fortunately I had a dedicated home office setup before I started working remotely -- a couple tweaks and I was ready to roll. Not everyone has that luxury though and others obtain office space outside of their homes. I don&apos;t think I could pull off my non-contiguous schedule without a home office, but that schedule also isn&apos;t a requirement for working remotely.</p>
<p>Having worked in open office space environments, working in my home office is a <em>huge</em> benefit for me. Not only can I work from Tahoe, I can have undisturbed time for work and can take breaks in my own house. I&apos;m an audio enthusiast, and setup a stereo system just for my office. It is fantastic!</p>
<p><img src="https://baus.net/content/images/2020/03/592EF647-5953-4D47-8902-7B8B21DF0539-1.jpeg" alt="592EF647-5953-4D47-8902-7B8B21DF0539-1" loading="lazy"></p>
<p>My office gear includes a 15&quot; MacBook Pro, two <a href="https://www.lg.com/us/monitors/lg-27UD58-B-4k-uhd-led-monitor?ref=baus-net">27&quot; 4k monitors</a>, a good <a href="https://www.logitech.com/en-us/product/hd-pro-webcam-c920s?ref=baus-net">USB camera</a> for meetings, a mechanical keyboard, and an <a href="https://humanscale.com/products/seating/freedom-task-office-chair?ref=baus-net">office chair</a> of my choice (which I previously owned).</p>
<p>I also wasted no time in investing in a good <a href="https://technivorm.com/products/thermal/kbt-polished-silver/?ref=baus-net">coffee solution</a>.</p>
<h2 id="mindset">Mindset</h2>
<p>It is a convention to have the camera on during Zoom <a href="https://about.gitlab.com/company/culture/all-remote/meetings/?ref=baus-net">meetings</a>. This is a good thing as it forces me out of bed and to actually get dressed. This might seem strange, but it is a formalism which signals that the day has started, or I might be tempted to spend the day in my robe.</p>
<p>Also, a common concern of remote workers is motivation. I will admit I&apos;ve struggled with this from time-to-time, but I found a few things help.</p>
<p>In an all-remote company, especially as a manager, you are pinged with updates from your collaboration tools around the clock which can feel like an endless deludge. I force myself to clean out my status updates everyday, otherwise they pile up into an unpenetrable mess.</p>
<p>Secondly, and this can help in general, I try to do the smallest thing that will move a task forward. Usually one task leads to another and the problem goes away, but I don&apos;t want to trivialize this. There can be a lot of distractions working remotely, especially at home, and it isn&apos;t unusual to lose motivation.</p>
<h2 id="social">Social</h2>
<p>I haven&apos;t met any of my colleagues face-to-face, and that might be the case for <a href="https://about.gitlab.com/events/gitlab-contribute/?ref=baus-net">awhile</a>. In the past, my professional and social lives have often intersected. In retrospect, I&apos;m not sure if this is a great idea, and I could improve at fostering a social life away from work.</p>
<p>All-remote doesn&apos;t eliminate politics, but it changes them. For one, you don&apos;t have to worry about missing out on opportunities or discussions because you didn&apos;t meet socially. I believe GitLab is more results focused as a result of being all-remote.</p>
<p>We do have water-cooler type chats and I enjoy the cultural diversity of working with people from around the world, but if you are looking for a socially driven work culture, or thrive on the close comraderie with your colleagues, then working remotely might not be your best option. At this point my life, that isn&apos;t something I feel like I&apos;m missing out on, but I could see how someone in a different situation might miss the social aspects of colocated work.</p>
<h2 id="conclusion">Conclusion</h2>
<p>I still have much to learn on when it comes to working all-remotely, specifically regarding asynchronous communication, but it is difficult for me to imagine going back to an open office. The ineffeciency of working colocated becomes more obvious when you start working all-remotely, and with the recent health concerns of working colocated in a traditional office, I think we are at the beginning of a long term trend toward remote work.</p>
<p>[1] In retrospect it blows my mind thinking about how many resources a typical growing startup spends on physical office space. I also remember working as a consultant and causing a stir because I sat in the wrong office.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[An alternative for testing Vuex Actions]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>I&apos;m currently working on an <a href="https://blog.pendo.io/2018/10/25/beta-launch-new-visual-design-studio/?ref=baus-net">application</a> using <a href="https://vuejs.org/?ref=baus-net">Vue</a> and <a href="https://vuex.vuejs.org/?ref=baus-net">Vuex</a>. Vue is an application framework like React and Angular, and Vuex is a state management library like Redux.</p>
<p>Much of the heavy lifting in Vuex modules happens in Actions. Actions are asynchronous functions and which typically synchronously &apos;</p>]]></description><link>https://baus.net/an-alternative-to-testing-vuex-actions/</link><guid isPermaLink="false">640df9f6f3ca216d57217ebe</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Sun, 30 Dec 2018 19:06:49 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>I&apos;m currently working on an <a href="https://blog.pendo.io/2018/10/25/beta-launch-new-visual-design-studio/?ref=baus-net">application</a> using <a href="https://vuejs.org/?ref=baus-net">Vue</a> and <a href="https://vuex.vuejs.org/?ref=baus-net">Vuex</a>. Vue is an application framework like React and Angular, and Vuex is a state management library like Redux.</p>
<p>Much of the heavy lifting in Vuex modules happens in Actions. Actions are asynchronous functions and which typically synchronously &apos;commit&apos; &apos;mutations&apos; to update the state of Vuex&apos;s data store.</p>
<p>When testing Actions, the Vuex <a href="https://vuex.vuejs.org/guide/testing.html?ref=baus-net">documentation</a> recommends mocking Vuex&apos;s &apos;commit&apos; function. Mocking &apos;commit&apos; can be tedious for complex actions which call multiple mutations. Also it makes refactoring more time consuming, because when mutations are refactored, the Actions which call them must be refactored, along with the both the Actions and mutations tests. This is necessary even if the final result in the store is the same.</p>
<p>A slight alternative is to not mock the commit function, and instead &apos;dispatch&apos; the action and test the final values on the store itself. This is more of a <a href="https://en.wikipedia.org/wiki/Functional_testing?ref=baus-net">functional test</a> than a unit test in that it tests the result of the Actions rather than verifying intermediate &apos;commit&apos; calls.</p>
<p>I implemented a simple <a href="https://github.com/baus/test-actions?ref=baus-net">example application</a> using <a href="https://cli.vuejs.org/?ref=baus-net">Vue-cli</a> which fetchs an array of values using an endpoint from another one of my <a href="https://yield.io/?ref=baus-net">applications</a>, and displays a count of the values. The values are fetched using an <a href="https://github.com/baus/test-actions/blob/master/src/modules/yields.module.js?ref=baus-net#L11">Vuex action</a>:</p>
<pre><code class="language-javascript">async getYieldCount({ commit }) {
  const response = await fetch(&apos;https://yield.io/api/allYields.json&apos;, { mode: &apos;cors&apos; });
  const json = await response.json();
  commit(&apos;setYieldCount&apos;, { yieldCount: json.length });
}
</code></pre>
<p>And here is the <a href="https://github.com/baus/test-actions/blob/master/tests/unit/yield.spec.js?ref=baus-net#L19">canonical test example</a>:</p>
<pre><code class="language-javascript">it(&apos;unit tests `getYieldCount` by mocking commit and testing args set on commit&apos;, async () =&gt; {
  const commit = sinon.spy();
  await yields.actions.getYieldCount({ commit });
  expect(commit.firstCall.args[0]).to.equal(&apos;setYieldCount&apos;);
  expect(commit.firstCall.args[1]).to.deep.equal({ yieldCount: 5 });
});
</code></pre>
<p>This test doesn&apos;t update the state of the store. The &apos;commit&apos; function is mocked and the parameters to the mocked function are tested to ensure the correct values are passed.</p>
<p>The following is an <a href="https://github.com/baus/test-actions/blob/master/tests/unit/yield.spec.js?ref=baus-net#L25">example test</a> which calls dispatch and tests the values on the store:</p>
<pre><code class="language-javascript">it(&apos;tests `getYieldCount` by calling dispatch and testing results directly on the store&apos;, async () =&gt; {
  await Store.dispatch(&apos;getYieldCount&apos;);
  expect(Store.state.yields.yieldCount).to.equal(5);
});
</code></pre>
<p>In this case, the &apos;setYieldCount&apos; mutation is called implicitly by the &apos;getYieldCount&apos; action.</p>
<h2 id="tldr">TL;DR</h2>
<p>While the Vuex docs recommend unit testing Actions by mocking the &apos;commit&apos; function, for complex Actions it can be beneficial to ensure that the final store is in the expected state. To implement a functional test for Actions, call &apos;dispatch&apos; on the store, and test the final state of the store.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[The perpetual interview]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>I had a weird dream last night.</p>
<p>I dreamt I met someone socially who worked for a big tech company. Working in software myself, I casually asked the person what he did. He mentioned his department was responsible for the lemon flavor in their product (hey, it <em>was</em> a dream)</p>]]></description><link>https://baus.net/the-perpetual-interview/</link><guid isPermaLink="false">640df9f6f3ca216d57217ebd</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Sat, 17 Nov 2018 15:01:10 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>I had a weird dream last night.</p>
<p>I dreamt I met someone socially who worked for a big tech company. Working in software myself, I casually asked the person what he did. He mentioned his department was responsible for the lemon flavor in their product (hey, it <em>was</em> a dream). He then asked if I wanted to try some different lemon flavored sorbets.</p>
<p>I agreed. He questioned which flavor I thought scored better in A/B tests when the tester knew they were being tested. I answered the one with a more subtle lemon flavor. Then he asked which one I thought tested better when the user didn&apos;t realize they were being tested. I said the sweeter one.</p>
<p>He said  while testers claimed to prefer the subtle lemon flavor, the sweeter lemon flavor performed much better. He typed something into his phone.</p>
<p>He then started describing how they came up with the flavors they would test. At this point some other people had joined the conversation. He asked, &quot;how many different lemon flavors did we develop?&quot; I was being drawn into some sort of combinatorial <a href="https://en.wikipedia.org/wiki/Fermi_problem?ref=baus-net">Fermi estimation</a> problem.</p>
<p>&quot;Hey is this an interview?&quot; He said his company was, indeed, hiring. I called him out and walked away.</p>
<p>Granted this was all a dream -- probably the result of some sort of interview PTSD -- but I couldn&apos;t help but think that anything I do online is part of a perpetual interview. I&apos;m sure someone reading this is judging me right now. Maybe I will be in a position to work with that person in the future. Maybe we work together now.</p>
<p>Career development has always had this aspect (we simply called it reputation), but resumes are no longer something you work on when you are preparing for a job. They are now constantly available and groomed on Linkedin.</p>
<p>Companies like Facebook, Google, and Amazon have a significant amount of personal information. As they continue to grow in power as employers, do we know how that profile data will be used during interviews?</p>
<p>I suspect in the future employment will become more algorithmically based. Companies will suck in your personal data in an advanced background check, and spit out a number ranking your potential as an employee. Algorithmic scoring systems are already used to judge the effectiveness of employees, so why not candidates?</p>
<p>Of course, none of this is new, but the thought of being interviewed socially, changed my perspective on the issue. I realized the perpetual interview is already here.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[You can't impress developers (but sometimes you can)]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Last week, after a long Halloween day, I scrolled through my Reddit subscriptions and read a familiar headline: <a href="https://baus.net/you-cant-impress-developers/">You can&apos;t impress developers. So don&apos;t try</a>. My post from 5 years ago hit the front page of <a href="https://news.ycombinator.com/item?id=18348327&amp;ref=baus-net">HN</a> and was cross-posted to <a href="https://www.reddit.com/r/programming/comments/9t26k6/you_cant_impress_developers_so_dont_try_2013/?ref=baus-net">/r/programming</a>.</p>
<p>I didn&apos;</p>]]></description><link>https://baus.net/sometimes-you-can/</link><guid isPermaLink="false">640df9f6f3ca216d57217ebb</guid><dc:creator><![CDATA[Christopher Baus]]></dc:creator><pubDate>Sat, 10 Nov 2018 01:23:11 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Last week, after a long Halloween day, I scrolled through my Reddit subscriptions and read a familiar headline: <a href="https://baus.net/you-cant-impress-developers/">You can&apos;t impress developers. So don&apos;t try</a>. My post from 5 years ago hit the front page of <a href="https://news.ycombinator.com/item?id=18348327&amp;ref=baus-net">HN</a> and was cross-posted to <a href="https://www.reddit.com/r/programming/comments/9t26k6/you_cant_impress_developers_so_dont_try_2013/?ref=baus-net">/r/programming</a>.</p>
<p>I didn&apos;t read all the comments or respond, but I understand why many people disagreed. The title was purposefully a bit click-baitish, but I still agree with my core viewpoint: Don&apos;t focus on impressing other developers. Focus on your users.</p>
<p>At the time, I was at the tail end of an extended tenure as a manager. I was obsessed with the end product. After a hiatus, I&apos;m a back to working as full-time JavaScript programmer. While JavaScript has its idiosyncrasies and plenty of room for abuse, I find modern JavaScript to be fairly pragmatic. My <a href="https://pendo.io/?ref=baus-net">team</a>, in particular, is results focused. What impresses other developers is quickly adding features which will directly impact our product and users.</p>
<p>We have a hackathon this week, where we will all have the chance to impress each other, and I&apos;m certain we will. The trickest code won&apos;t win, but the trickest feature might.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>