<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Fog City Code Works</title>
  <link>https://fogcitycodeworks.com/</link>
  <atom:link href="https://fogcitycodeworks.com/feed.xml" rel="self" type="application/rss+xml" />
  <description>Custom Business Software</description>
  <language>en-US</language>
  <lastBuildDate>Fri, 13 Mar 2026 20:15:21 GMT</lastBuildDate>
  <item>
    <title>I Stopped Writing Code and Started Delivering 5X More Value</title>
    <link>https://fogcitycodeworks.com/2026/03/07/i-stopped-writing-code-and-increased-my-value-5x/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2026/03/07/i-stopped-writing-code-and-increased-my-value-5x/</guid>
    <pubDate>Sat, 07 Mar 2026 23:49:15 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>software</category>
    <description>I’ve been a software developer for nearly three decades. In that time, I’ve wired up thousands of API calls, debugged countless integration points, and spent more hours than I care to admit wrestling with boilerplate code that had nothing to do with the actual problem I was hired to solve. That era is over. Over…</description>
    <content:encoded><![CDATA[<p>I’ve been a software developer for nearly three decades. In that time, I’ve wired up thousands of API calls, debugged countless integration points, and spent more hours than I care to admit wrestling with boilerplate code that had nothing to do with the actual problem I was hired to solve. That era is over.</p>
<p>Over the past year, AI coding assistants have fundamentally changed the way I work. And I don’t mean they help me autocomplete a line here and there. I mean the entire workflow — the way Fog City Code Works delivers software to clients — has shifted. The result is roughly five times the productivity I had before. That’s not marketing. That’s my real experience, project after project, client after client.</p>
<p><strong>The Old Way</strong></p>
<p>Here’s the dirty secret of software development: a huge portion of the work has always been plumbing. Connecting this service to that database. Translating data from one format to another. Writing the same authentication and error-handling code for the hundredth time. Configuring deployment pipelines. Chasing down a missing semicolon in a config file at 11pm.</p>
<p>It’s necessary work. But it’s not <em>high-value</em> work. None of my clients ever called me and said, &quot;Dave, I really need someone to wire up an HTTP client with proper retry logic.&quot; They called because they had a business problem — a manual process that was killing productivity, a data bottleneck, an opportunity to scale — and they needed software to solve it.</p>
<p>The gap between what I was hired to do and how I actually spent my time was always frustrating. I’d estimate that in the old world, 60-70% of my time was spent on implementation, plumbing and only 30-40% on the part that actually mattered — designing the solution, understanding the business problem, and making strategic technical decisions.</p>
<p><strong>The Shift</strong></p>
<p>AI coding assistants flipped that ratio. Today, I spend the vast majority of my time on architecture, system design, and solving the actual business problem. The repetitive implementation work — the API wiring, the data mapping, the boilerplate — gets handled by AI, with me directing and reviewing.</p>
<p>This isn’t about cutting corners. I’m still deeply involved in every line of code that ships. But instead of typing it all out keystroke by keystroke, I’m operating at a higher level. I describe what needs to happen, the AI generates the implementation, I review it, refine it, and move on to the next decision. The quality is the same or better. The speed is transformational.</p>
<p><strong>The result is that I spend my time where it matters most — on the problems my clients actually hired me to solve.</strong></p>
<p><strong>A New Kind of Superpower</strong></p>
<p>The productivity gain is real, and it compounds. When implementation takes a fraction of the time, I can explore more options. I can prototype three approaches and compare them instead of committing to one and hoping for the best. I can experiment with a new technology in hours rather than days. I can refactor fearlessly because the cost of making changes has dropped dramatically.</p>
<p><img src="https://fogcitycodeworks.com/media/2026/03/SuperHero.webp" alt=""></p>
<p>This changes the economics of every project. More iterations. More polish. Better solutions. Delivered faster.</p>
<p><strong>Think of It This Way</strong></p>
<p>Imagine an architect who spent years designing beautiful buildings but had to lay every brick himself. One day, he gains a skilled crew that can execute his designs with precision. He doesn’t stop being an architect — he becomes a <em>better</em> architect because he can finally see his vision come to life without being buried in bricklaying.</p>
<p>That’s what happened to software development.</p>
<p>Or think of a master woodworker who spent decades with hand tools. When power tools came along, the craftsmanship didn’t go away. The artistry, the eye for detail, the understanding of wood grain — all of that still mattered. But the ability to execute went through the roof. Projects that took weeks now take days. The craftsman didn’t become less skilled. He became more capable.</p>
<p>It’s like a pilot with autopilot handling the routine portions of a flight. The pilot isn’t less important — the pilot is <em>more</em> important because they can focus on navigation, weather, fuel management, and the big decisions that determine whether everyone arrives safely. The routine work gets handled so the expert can focus on expertise.</p>
<p><strong>What This Means for Clients</strong></p>
<p>This is where it gets exciting. For Fog City clients, the benefits are immediate and tangible.</p>
<p><strong>Faster delivery.</strong> Projects that used to take months can now be delivered in weeks. The implementation phase compresses dramatically while the quality of the design work actually improves because I have more time to think about it.</p>
<p><strong>Broader capability.</strong> I can now confidently take on projects that span a wider range of technologies. Need a custom desktop application backed by a cloud database with a real-time dashboard? That’s not three separate specialists anymore. AI assistants give me the depth to move across technology boundaries with confidence.</p>
<p><strong>More experimentation.</strong> When prototyping is fast, we can try more ideas before committing. Clients get to see working prototypes early and provide feedback before we’ve invested weeks of effort. This leads to better outcomes and fewer surprises.</p>
<p><strong>Better solutions.</strong> More time on architecture and design means the end product is more thoughtful, more scalable, and more aligned with the actual business need. Less time fighting with plumbing means more time making sure the solution is right.</p>
<p><strong>The Bigger Toolbox</strong></p>
<p>At Fog City Code Works, I’ve fully embraced agentic AI coding workflows. This isn’t a novelty or an experiment — it’s how I work every day. AI is integrated into my development process from design through delivery. It’s the biggest expansion of capability since the cloud revolution, and I was an early adopter of that, too.</p>
<p>The toolbox is bigger than it’s ever been. Cloud technologies brought enterprise-grade infrastructure to small businesses. Serverless eliminated the overhead of managing servers. And now AI coding assistants have eliminated the overhead of repetitive implementation. Each wave has allowed me to deliver more value to clients at lower cost and higher speed.</p>
<p><strong>I’ve never been more capable of solving complex business problems than I am right now.</strong></p>
<p><strong>Looking Ahead</strong></p>
<p>We’re still in the early innings of this shift. AI coding tools are getting better every month. The workflows are becoming more sophisticated. The range of tasks that AI can handle effectively keeps expanding.</p>
<p>For Fog City Code Works, this means one thing: more innovation and more business value on every project. I’m spending my time where it counts — understanding your business, designing the right solution, and making sure the technology serves your goals. The plumbing takes care of itself.</p>
<p>If you’ve been thinking about a software project but worried about cost or timeline, now is the time to have that conversation. The economics have changed. What was once a six-month project might be a six-week project. What was once out of reach might be well within it.</p>
<p><a href="https://fogcitycodeworks.com/contact/">Contact Fog City Code Works</a> today, and let’s talk about what’s possible.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Why You Need Custom Software Right Now</title>
    <link>https://fogcitycodeworks.com/2023/01/18/why-you-need-custom-software-right-now/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2023/01/18/why-you-need-custom-software-right-now/</guid>
    <pubDate>Wed, 18 Jan 2023 08:08:00 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>cloud</category>
    <category>software</category>
    <description>The Time is Now Technology options have never been better for small business. The cloud has brought high-value computing technology to the masses. Innovation in cloud technologies has leveled the playing field for small companies. We can now access state-of-the-art artificial intelligence technology for a small monthly fee, which was previously only available to mega-cap…</description>
    <content:encoded><![CDATA[<h3>The Time is Now</h3>
<p>Technology options have never been better for small business. <a href="https://www.gartner.com/en/topics/cloud">The cloud has brought high-value computing technology to the masses</a>. Innovation in cloud technologies has leveled the playing field for small companies. We can now access state-of-the-art artificial intelligence technology for a small monthly fee, which was previously only available to mega-cap corporations just a few years ago.</p>
<p>Choose to ignore this trend at your own peril.</p>
<blockquote>
<h4>Digital is the main reason just over half of the companies on the Fortune 500 have disappeared since the year 2000.</h4>
<h4>– Pierre Nanterme, CEO Accenture</h4>
</blockquote>
<p>Data storage technology has advanced 10-fold over the last several years while prices continue to drop. The proliferation of <a href="https://aws.amazon.com/lambda/serverless-architectures-learn-more/">serverless technologies</a> means that your costs of maintenance and deployment are zero, and you only pay for compute time that is consumed. Systems that previously required multiple servers at $1200 per month each, can now be built using serverless technologies for <a href="https://fogcitycodeworks.com/2020/07/21/the-true-value-of-serverless/">$20 per month</a>. The tools for <a href="https://dotnet.microsoft.com/en-us/">developing custom software</a> for small business have never been better.</p>
<p><strong>Many Companies Try to Get by on Spreadsheets and Email</strong></p>
<p><img src="https://fogcitycodeworks.com/media/2023/04/Excel.webp" alt="">Manual processes are slow, cumbersome, and prone to error. They mostly rely on individual employees with tribal knowledge. Today’s average employee tenure is <a href="https://www.caprelo.com/insights-resources/industry-trends/the-great-resignation-an-analysis-of-job-tenure-over-the-years/">less than 4 years</a>. When they leave, so goes your process. <a href="https://fogcitycodeworks.com/services/#case-studies">Growth-minded companies invest in automation</a>, and in doing so, they get best practices, scalability, and <a href="https://fogcitycodeworks.com/services/#case-studies-viz">deep insight into business metrics</a> as a bonus!</p>
<blockquote>
<h4>&quot;Software is the language of automation.”</h4>
<h4>–Jensen Huang, CEO, Nvidia</h4>
</blockquote>
<p>I recently flew into a regional airport on a small airline that did the entire flight check-in process manually. They had a flight register that was kept with pen and paper. This register kept a log of each passenger and the weight of their luggage. A hand-held calculator was used to tally up the luggage weight for the flight. There were 3 people working the check-in counter, furiously scribbling, cutting (with scissors) and pasting (with scotch tape) into this register.</p>
<p>They were working very hard at being cordial as each customer approached, but they were completely frazzled by the burden of this manual process. It took over an hour to check in 30 passengers. There was not a single happy person on either side of that check-in counter.</p>
<p>Contrast this with my connecting flight on Southwest Airlines which serves 100’s passengers per hour at any given airport with a fully automated, self-serve kiosk and a staff of four.</p>
<p><img src="https://fogcitycodeworks.com/media/2023/04/Typewriter.webp" alt="">Manual processes don’t enforce best practices. Best practices are left up to individual team members to make the right call. At one Fog City client, there was an issue with shipping and receiving where the staff was not properly documenting received items in their warehouse. This led to delayed deliveries to their clients. Building an internal custom software tool that was intuitive and easy to use while also enforcing warehouse best practices and flagging exceptions in real-time, improved their receiving process and led to a 90% reduction in inventory errors.</p>
<h3>What About Scalability</h3>
<p>Manual processes are not scalable. You simply cannot grow a business that is riddled with manual processes. A recent Fog City client in the service sector, grew from 3 projects per month to 20 projects per month after automating their project workflow <a href="https://fogcitycodeworks.com/services/#case-studies">using custom desktop software and cloud-based data management</a>. A 7x increase in top line revenues with only a 2x increase in staffing. New staff members came up to speed on the business process quickly because the software was designed to be intuitive, fun to use, and appropriate for their level of technical knowledge. The busy work of managing data in local files and spreadsheets was eliminated. Errors resulting from tedious manual data entry and formatting vanished overnight. Automating manual tasks will give your business instant scalability.</p>
<h3>Employee Productivity and Overall Job Satisfaction</h3>
<p><img src="https://fogcitycodeworks.com/media/2023/04/EmployeeSat.webp" alt="">Your employees deserve better. <strong>No employee ever said that they love cutting and pasting data from one document to another.</strong> No one signs up for manual data entry. Employee morale is improved when they have high quality tools that handle all the “busy work.”</p>
<p>The investment that you make in your tools will reap productivity dividends for years. Think of a carpenter using a hammer to nail down a subfloor and then think of the same carpenter with a pneumatic nail gun. Which carpenter is more fulfilled in their job? Which carpenter is more productive? Which company does the carpenter want to work for? Which carpenter feels more empowered? <a href="https://fogcitycodeworks.com/services/#case-studies-ux">Invest in your people and they will respond accordingly</a>. Don’t invest in your people and they will look for a company that will.</p>
<h3>Deep and Meaningful Business Insights</h3>
<p><img src="https://fogcitycodeworks.com/media/2023/04/HappyEmp.webp" alt="">You might not see it now, but <a href="https://www.linkedin.com/pulse/benefits-having-right-kpis-key-performance-indicators-stephen-lynch/">the insights and efficiencies that are created by collecting and aggregating data will drive your business to new heights</a>. Only when your company’s data is in a central location does it become possible to analyze it and create meaningful business metrics. <a href="https://fogcitycodeworks.com/services/#case-studies-bigdata">The treasure trove of information is invaluable</a>.</p>
<p>One Fog City client doing research in a niche vertical was able to transform their business by aggregating data. They interview individuals in their industry, analyze the data and generate reports for their clients. In the process of aggregating their interview data they realized that they were contacting the same people multiple times in a short period of time on different projects. This would lead to fatigue and some angry study participants.</p>
<p>A side effect of automating their research workflow was that we had data on every person they contacted and we could track and avoid situations where individuals had been recently contacted. This improved response rates and improved the willingness of all participants to contribute. The good will that was generated by this effort raised the reputation of the research firm in the industry. Interviewers were happier and more productive since they didn’t have to deal with angry participants. This type of insight would never have been possible without collecting and aggregating business data.</p>
<h3>Why You Need to Build Your Own</h3>
<p>Off-the-shelf solutions or SaaS products are not enough. Your business is unique. Your goals and your team is like no other. Trying to apply a SaaS business tool to your processes and data needs is like trying to wear a one-size-fits-all pair of jeans. It will most likely meet your bare minimum requirements, but it will require customization to meet your specific needs. Giving your team the right tools, instead of just any tool, will unleash creative freedom, empower data seekers, and allow your business to thrive. <a href="https://fogcitycodeworks.com/2020/02/12/small-business-finds-operational-efficiency-in-the-cloud/">Custom software done properly will drive operational excellence</a>.</p>
<h3>You Need a Partner Who Can Support Your Bold Vision</h3>
<p><a href="https://fogcitycodeworks.com/2020/02/02/finding-clarity-in-the-fog/">Having a relationship with a great software development company</a> is in your best interest. If your company is growing, you will need custom software along the way. It’s like having a good landscaper. Every now and then you’re going to have a big project, but there will be maintenance tasks and small projects that will arise frequently. Having a trusted partner will allow you move quickly and confidently when the need arises.</p>
<p>One recent Fog City client was able to make a timely business acquisition knowing that they had a trusted partner who could handle the complex technology integration. We provided operational guidance and were able to identify bottlenecks, leverage cloud services, and work out scalability issues within the first few months of the acquisition, dazzling customers and significantly improving deliverables.</p>
<p><a href="https://fogcitycodeworks.com/contact/">Contact Fog City Code Works</a> today for a free consultation on how to get your growing business to the next level.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Improve your Remote Software Development</title>
    <link>https://fogcitycodeworks.com/2022/12/13/improve-your-remote-software-development/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2022/12/13/improve-your-remote-software-development/</guid>
    <pubDate>Tue, 13 Dec 2022 23:19:00 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>communication</category>
    <category>leadership</category>
    <category>software</category>
    <category>team</category>
    <description>If you’re a developer, you’re undoubtedly doing some remote work right now. Fog City’s clients are all over the county, so I’ve been engaged in remote work for more than a decade. Working remotely as a developer has huge positives; fewer distractions, more focus time, no commuting, and higher productivity. But there are dangers lurking…</description>
    <content:encoded><![CDATA[<p>If you’re a developer, you’re undoubtedly doing some remote work right now. Fog City’s clients are all over the county, so I’ve been engaged in remote work for more than a decade. Working remotely as a developer has huge positives; fewer distractions, more focus time, no commuting, and higher productivity. But there are dangers lurking in the tradeoffs; less communication, monotony, and keyboard fatigue. In order to build great software, we need to make sure we keep the communication channels open and stay motivated. Here are some tips for developers and managers to make the most of remote software development.</p>
<p><strong>Silos Are Bad for Business</strong></p>
<p>Working in a silo is bad for developers. Interacting with other developers, and knowing how your piece fits into the bigger puzzle, and overall company goals is a big part of writing great code. As a developer, it’s easy to go down a rabbit hole solving a problem that doesn’t need solving or optimizing code that already meets performance specs. And it’s much easier to do that when you’re disconnected from your team. In today’s rapidly changing macro environment, business needs are evolving more quickly than ever before. Priorities change on a dime. It’s easy for your task to go from critical path to obsolete in a matter of days.</p>
<p>To keep developers from feeling siloed, managers need to engage with them regularly. Keep them abreast of company developments and changes in priority. Weekly communication or a quick video chat is a great way to stay connected. And developers need to reach out to other team members, schedule integration points, engage in collaboration on design and implementation details, and schedule code reviews to stay connected and working toward shared goals.</p>
<p>At Fog City Code Works, we keep the chat channels open and ping each other regularly. We schedule meetings to review code and stay connected on tasks. When priorities shift, we discuss the impact and review current tasks to make sure we’re aligned and on the right track. We also acknowledge that everyone has a different working style. Some people work straight through the day, while others are absent from their desk while they take care of personal tasks. Some prefer video chat and some don’t like the distraction. Some use text messaging on their phone and others use Zoom, Slack, or Teams. All of that is OK. We don’t make excuses and we embrace the personal freedoms that come from working from home while staying committed to great communication and exceptional deliverables for our clients.</p>
<p><strong>Collaboration Is Still Critical</strong></p>
<p>When we’re in an office environment, conversations happen organically. We go to lunch or grab a coffee, we chat in the hallway or we stop by someone’s desk. When we have a question, it can get answered in 100 different ways. When we work remotely, we don’t have access to those conversations and we have to work harder to get our questions answered.</p>
<p>If you’re a developer, recognize that your questions that got previously answered by proximity to your team, are still valid questions. Seek to get answers. Don’t assume that you will figure it out or someone will tell you. Managers, don’t assume that everyone understands what you’re talking about when you give direction. People learn at different rates with different styles. Some people are text learners, some are vocal and some are visual. Create an environment where people feel comfortable asking questions that they might otherwise have not asked.</p>
<p><strong>Empathy Always Matters</strong></p>
<p>There is a phenomenon in social psychology known as the fundamental attribution error. It is the tendency for people to attribute behavior to someone’s character or personality and not their situation. When we interact less with each other, this bias becomes more pronounced. With less context, we can easily draw the wrong conclusions. Now more than ever, we must have empathy for our teammates and direct reports. We must strive to understand their situation and issues that might be impacting their work or performance. We must inspire and lead with generosity and compassion.</p>
<h3>Intermittent Breaks are Required and Healthy</h3>
<p>At the office, we get drive-bys all day. People stop by to share stories or collaborate. Conversations started at the coffee machine can make their way to a meeting room or a whiteboard for further discussion and elaboration. We typically leave our desks for lunch or an afternoon snack. But when working at home, I can go 8 hours without ever leaving my desk, completely focused on debugging a latency issue or a performance bottleneck, having meeting after meeting from the comfort of my desk chair. Productivity experts agree that several small breaks followed by a larger break every couple of hours can increase focus and motivation. Taking breaks to let the brain process issues and circumstances while not under direct performance pressure can result in better ideas and more creative problem-solving.</p>
<h3>Bottom Line</h3>
<p>While working from home, keep yourself and your team sane and working productively by engaging regularly, communicating effectively, and collaborating regularly. Work harder to stay aligned by communicating the evolving company or project goals and identifying how team members are contributing. Encourage a culture of collaboration by responding positively to questions and quickly addressing concerns. Remember to have empathy for everybody’s individual situation. The work-from-home paradigm requires a new set of skills and a different type of leadership. Get on board and get your team thriving remotely.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Being Right, It’s Not All That</title>
    <link>https://fogcitycodeworks.com/2022/08/31/being-right-its-not-all-that/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2022/08/31/being-right-its-not-all-that/</guid>
    <pubDate>Wed, 31 Aug 2022 23:32:00 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>leadership</category>
    <category>team</category>
    <description>We Need to be Right Being right all the time makes you smart and successful. After all, people look up to leaders who are right. No one wants to follow the guy who is wrong. As young students, if we get a wrong answer on an exam, we’re marked down. Our success suffers. In sports,…</description>
    <content:encoded><![CDATA[<h3>We Need to be Right</h3>
<p>Being right all the time makes you smart and successful. After all, people look up to leaders who are right. No one wants to follow the guy who is wrong. As young students, if we get a wrong answer on an exam, we’re marked down. Our success suffers. In sports, being wrong can lead to a loss for your team. In social groups, being wrong can cause humiliation. So, we’ve got a lot invested in being right.</p>
<p>Dr. Russ Harris from <a href="https://thehappinesstrap.com/being-right/">The Happiness Trap</a> states:</p>
<blockquote>
<h4>&quot;When we believe we are ‘in the wrong’, we may feel guilty, sorry, ashamed, anxious, regretful, dumb, stupid, inadequate, incompetent… And how does it feel to be right? We feel powerful, strong, righteous, correct. We feel totally justified, infallible, superior. Much better than being wrong.&quot;</h4>
</blockquote>
<p>Clearly, being right is the path to success. I thought so too, but on a decade-long, thousand-mile journey, I reflected on what it truly takes to be successful. The answer was unexpected. I had to give up being right.</p>
<h3>My 1000 Mile Journey</h3>
<p><img src="https://fogcitycodeworks.com/media/2022/02/marin-century-e1643930150953.webp" alt="">Just north of the Golden Gate Bridge lies Marin County, a suburban community with rich countryside and long meandering roads that provide amazing views of the San Francisco Bay and the Pacific Ocean. <a href="https://www.marincyclists.com/">The Marin County Bicycling Coalition</a> organizes an event every year called the Marin Century; 100 miles of cycling across rolling hills, through farmland, and open space. Several thousand cyclists descend on Marin County every year for the privilege of riding its hallowed ground.</p>
<p><a href="http://daveweisberg.com/">I’m an avid cyclist</a>, and ten years ago, I set a personal goal to ride this event every year until I can’t. This month, I completed my 10th consecutive Marin Century. As I rode this year’s event, I thought back on the years of effort, the challenges I faced, and how I overcame them. It turns out, my biggest challenges weren’t physical. There is more to becoming a strong cyclist than just pedaling.</p>
<h3>When You Just Know You’re Right</h3>
<p>My first year riding the century, I had it all figured out. Training was the key, and I trained hard. I felt great at the starting line, and I hit the course strong with an every-second-counts attitude. But by the 50-mile mark, I was completely gassed. I didn’t carry enough water, so I was dehydrated, and my legs were cramping. Somehow, I suffered through the second half and crossed the finish line barely able to stand. I was depleted mentally and physically, but I was a century finisher!</p>
<p>With some experience under my belt, the next year I vowed to train harder and finish stronger. I put more effort into my training, and I felt great. So for my second century, I rode harder. Not wanting to repeat my previous year’s mistakes, I drank more water. But somehow the cramps came back, and I still hit a wall around 60 miles. I put my head down and pedaled to the finish line, but it wasn’t pretty. It was obvious that in order to get a better result, I needed to ride faster, which means <strong>I just needed to train harder.</strong> This was obvious.</p>
<h3>Holding on to Tight to Being Right</h3>
<p><img src="https://fogcitycodeworks.com/media/2022/02/iStock-498375904.webp" alt="">For better training tips, I started listening to <a href="https://www.trainerroad.com/podcast/">podcasts</a> and <a href="https://www.audible.com/pd/Primal-Endurance-Audiobook/B01990LOEC?action_code=ASSGB149080119000H&amp;share_location=pdp&amp;shareTest=TestShare">audiobooks</a> by triathletes and endurance athletes. I spoke with friends who had run marathons and endurance events. A message became clear, but I struggled to accept it – my pacing was wrong. Many endurance athletes go slow in the first half of the event so that they can save some gas for the second half, a technique called <a href="https://www.outsideonline.com/health/running/racing/race-strategy/how-and-why-to-hit-negative-splits-in-your-next-race/">negative splits</a>. This seemed completely counterintuitive to me. How could I ride faster by riding slower? Nuts, trash, hogwash.</p>
<p>The next year, I reluctantly gave it a shot. I started off slow and quickly noticed that everyone was passing me. How could I finish strong if I was being passed by so many people? Clearly, these other riders weren’t engaging in this crazy idea of riding slower. So, in order to keep up with the herd, and not feel totally inadequate, I rode faster. Guess what? I fell apart at the mile 60 mark <strong>again</strong> and fell to the back of the pack.</p>
<h3>Wait, I’m Wrong?</h3>
<p>I’m pretty hard-headed, but it was becoming obvious that something was wrong. At my next event, I slowed my pace for the first half. I was passed by people much older and much less fit than I am. This was painful for my cycling ego, but I kept my pace slow and comfortable. At mile 50, I felt great. At mile 60, I started ramping up. At mile 80, I started seeing all those people who had been passing me at the start. They were suffering as I rode right past them. Ha! A brilliant idea. I finished stronger than ever and nailed my negative splits. A huge breakthrough! Maybe this crazy idea of riding slower wasn’t so crazy. I was starting to understand that my stubbornness was holding me back, and in order to grow, I needed to open my mind.</p>
<h3>Opening the Mind</h3>
<p>On one of my training rides with a close friend, I completely fell apart in the last 20 miles, while he continued riding strong. He asked me what was in my water bottle. What a dumb question, it’s my legs that matter, not my water bottle. But he asked again, this time implying that I wasn’t fueling properly. I was incensed. Did he mistake me for a rookie rider who doesn’t know how to handle hydration? Insulting! Doesn’t he know that I’m a century finisher? Oops, so much for being open-minded.</p>
<p><img src="https://fogcitycodeworks.com/media/2022/02/iStock-1252813726-e1643930175178.webp" alt="">At the time, I had actually been using a very expensive brand of powders and gels, so I let him know that I appreciated his concern, but I had all my hydration and nutrition bases covered by buying the &quot;best&quot; products. I knew for sure that my products were better than his products. But then he went and asked again, &quot;what exactly is in your water bottle?&quot;  I must admit, I actually had no idea. I never looked at the label; I just figured that I would use the &quot;best&quot; products, and thus, I would get the best results. Rule #1 of cycling: throw money at the problem. I brushed him off, but his question sat with me as he rode off ahead. Open the mind.</p>
<p>I did a little research and discovered that the body needs about 200 calories per hour during exercise, and the powder that I was using had a fancy plant-based (read expensive) sugar substitute with zero calories! Oops. Through further research, I also learned that since sweat contains a high content of salt (sodium), it is common to become sodium-depleted, at which point the body has trouble absorbing water. A condition called <a href="https://www.webmd.com/a-to-z-guides/what-is-hyponatremia">hyponatremia</a>. When you are hyponatremic, no matter how much water you consume, the body doesn’t absorb it. It pretty much just sloshes around in your stomach, leading to a bloated, sluggish, and surprisingly dehydrated ride. More water doesn’t always mean more hydration! The $50 &quot;power&quot; tabs that I was using for cramps had 200 mg of sodium and a handful of other fancy ingredients that I couldn’t pronounce. I found a high-calorie, all-natural powder that I added to my water bottle and I replaced my $50 power tablets with a $5 brand of salt tabs that had 1000 mg of sodium each.</p>
<h3>Embracing New Ideas</h3>
<p>My next ride was my strongest ride ever, and I’ve ridden in many endurance events since, finishing in the top third in each one. The cramps, bloating, and bonking are all behind me. As I grow older, I finish stronger.  Experience on the bike helped me become a better rider, but <strong>the biggest breakthroughs came from what I gave up, not what I took on</strong>. Giving up my entrenched thinking and being open to new ideas not only made me a better, more successful rider, but it made my journey more rewarding and more enjoyable. Allowing myself to be wrong was a big, unexpected step to growth. The biggest lessons are learned when you are humble enough to hear them.</p>
<p><img src="https://fogcitycodeworks.com/media/2022/01/iStock-1081869318.webp" alt=""></p>
<p>In software development, there are typically 1000 ways to attack any problem. There is a software framework for every letter of the alphabet and entrenched thinking on patterns and best practices. Emphatically defending your implementation while criticizing others might make you feel knowledgeable, good about yourself, and better than other developers, but in my experience, it won’t lead to growth and usually won’t lead to a better outcome. My experience has taught me that <strong>going slower, questioning your implementation, and listening to the ideas of others can actually get you to the finish line faster and happier.</strong> These days I spend much less time dismissing others and more time asking questions. What’s in your water bottle?</p>
]]></content:encoded>
  </item>
  <item>
    <title>How to Handle a Bad Client (Hint: There Are No Bad Clients)</title>
    <link>https://fogcitycodeworks.com/2021/12/29/how-to-handle-a-bad-client-hint-there-are-no-bad-clients/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2021/12/29/how-to-handle-a-bad-client-hint-there-are-no-bad-clients/</guid>
    <pubDate>Wed, 29 Dec 2021 03:07:37 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>uncategorized</category>
    <description>I see many articles about how freelancers and consultants should handle “bad” clients. The advice ranges from “Don’t let them push you around,” to “Fire them.” I’ve always been a little surprised by freelancers who call their clients “bad” and wonder how they got themselves into this situation in the first place.</description>
    <content:encoded><![CDATA[<p>I see many articles about how freelancers and consultants should handle &quot;bad&quot; clients. The advice ranges from &quot;Don’t let them push you around,&quot; to &quot;Fire them.&quot; I’ve always been a little surprised by freelancers who call their clients &quot;bad&quot; and wonder how they got themselves into this situation in the first place.</p>
<p>Eroding confidence is a precursor to bad client relationships. When your client can’t trust you or doesn’t believe that you can get the job done, you’re in the trouble zone. Here are some tips that I’ve used over the years to keep my clients fully confident in my ability to deliver and relationships on solid footing.</p>
<h3>Cherish your clients.</h3>
<p>A friend told me once, &quot;If you don’t like your clients, try going 90 days without one.&quot; If you’re a consultant or freelancer, that should put things into perspective. The point here is that clients are gold. Your business needs clients to thrive. Also, every client today is a word of mouth referral tomorrow. <strong>If you frequently have animosity in your relationships with your clients, maybe the service business isn’t for you.</strong> Keep in mind that acquiring new clients is five times more expensive than keeping existing clients. You never want to lose a client. Learn to love your clients and all their quirks.</p>
<h3>Be organized!</h3>
<p>Take notes at every meeting. Write down action items and due dates. Prioritize your work. Missing a milestone because you forgot about it or didn’t take the time to write it down is a consulting crime. Clients don’t like to repeat themselves. Provide information before they ask for it. Be on time to meetings and be prepared. Do your homework. Not being organized, prepared or fully present will erode confidence quickly.</p>
<h3>Be a relationship builder.</h3>
<p><strong>If you’re going to be in the service business, you’ve got to serve</strong>. Make connections wherever possible – with users, with the finance team who processes your invoices, with senior management, and with each of your main contacts. These relationships will pay dividends in the event things go sideways.</p>
<p>For instance, I like to reach out to users whenever possible to make sure that there are no friction points or issues after major releases. You have to have compassion for your end-users. I look to get ahead of problems before they fester. I’ve even sent a box of chocolates to my best beta testers. Stay connected. Send a holiday card. The more connected you are with your client, the more you can understand their problems and help to solve them, and the less likely they are to put you in the crosshairs when issues crop up. Build a collaborative environment. Don’t wait for them to do it.</p>
<h3>Manage expectations.</h3>
<p>Understand your client and their pain points before you sign the contract. If a customer needs a certain delivery date that you are not going to be able to meet or a certain set of features that you are going to struggle to deliver, make a note of that up front and set realistic expectations. <strong>Making accurate promises is as big a part of our job as delivering on them</strong>.</p>
<p>Most of the tense relationships I’ve seen between freelancers and clients is due to poor expectation management. Recognize that you are setting expectations in every interaction, sometimes explicit (i.e., &quot;I can complete this work in three months&quot;) and sometimes implicit (i.e., not speaking up when there are uncertainties). The customer is making assumptions based on what you say AND what you don’t say. It’s your responsibility to give them the right expectation.</p>
<h3>Communicate, communicate, communicate.</h3>
<p>In line with managing expectations is frequent and relevant communication. I like to do weekly check-ins with all of my clients, even if it is just 5 minutes. During weekly check-ins, I make sure we are still on track with our original requirements, I check for any potential priority changes, and I give a summary of things that I’ve completed for the week.</p>
<p>If I’m running behind schedule, my client knows it months before it impacts any deadline. We have plenty of time to course-correct. If I’m struggling with a set of features, I raise the red flag as soon as I’m certain that it will impact deliverables and we can adjust priorities, add resources, or just work harder. If I’m way ahead of schedule and we can add new functionality or pull in release dates, I make sure that is known. <strong>I’m a big fan of NO SURPRISES</strong>. Sometimes there is limited time in the client’s workday for check-ins, in which case I write a well-formatted email with an executive summary at the top and details so the client can digest it at their leisure. Skip this step at your own peril!</p>
<h3>Don’t blame the technology / Don’t blame teammates.</h3>
<p>I see this one all the time. A developer is late with a deliverable or the quality is subpar and they blame the technology. The client hired you to be their technology expert! There is no faster way to erode confidence than blaming the technology you were hired to work with. No excuses here. <strong>Problems are easy to find, solutions are why they hired you.</strong> Workaround issues. Try alternate approaches. Be resourceful. Get past the bottlenecks. Overcome the technology hurdles. Propose an alternate path. But never blame the technology.</p>
<p>Also, blaming a teammate is not going to move the project forward. If a teammate is late on getting information or integrating their work, offer assistance. Help them get back on track. Blowing out someone else’s candle doesn’t make your candle burn any brighter. It erodes relationships and destroys project momentum. Be the one that drives the team forward. Blaming teammates is a sure way to create an unproductive environment.</p>
<h3>When you communicate a problem, also offer a solution.</h3>
<p>This is what separates the good consultants from the great ones. When you find a problem, you want to make sure you communicate it in a timely fashion. But the best consultants also find a solution and offer it up in conjunction with the reporting of the problem. Most clients hire consultants to reduce their problem load. Take responsibility for fixing problems, not just reporting them.</p>
<h3>Bite the bullet when needed.</h3>
<p>If all of this groundwork doesn’t lead to better client relations and you still end up in conflict with your client, bite the bullet and get it done. I’ve had my fair share of clients where we didn’t see eye to eye. I’ve had clients that pushed me to deliver functionality well outside of the original scope. <strong>Instead of burning my time in conflict, disagreement or ass-covering, I do my best to bite the bullet and get things done, and typically I find common ground</strong>. Client’s just want someone that can deliver results. If you burn your time (and your client’s time) delivering reasons why you can’t deliver results or why the results requested are not your problem, you will probably end up spending a lot of your time looking for new clients.</p>
<p>You work hard to get new clients. Don’t let that hard work go to waste by mismanaging the relationship or falling into one of these traps. Communicate and understand your client’s pain points and what problems they need you to solve, and then solve them. Avoid drama and upset and put your nose down when you need to. You’ll get more repeat business and referrals and you’ll avoid wasting your time in conflict.</p>
]]></content:encoded>
  </item>
  <item>
    <title>The True Value of Serverless</title>
    <link>https://fogcitycodeworks.com/2020/07/21/the-true-value-of-serverless/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2020/07/21/the-true-value-of-serverless/</guid>
    <pubDate>Tue, 21 Jul 2020 08:35:20 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>cloud</category>
    <category>software</category>
    <description>How to Reduce Cloud Spend From $600/mo. to $1.30/mo. We keep a close eye on the cloud services budget for our clients. Keeping recurring costs down is part of our value-add. Leveraging serverless technologies on a recent project allowed me to save my client hundreds of dollars per month on their AWS bill and get…</description>
    <content:encoded><![CDATA[<h3>How to Reduce Cloud Spend From $600/mo. to $1.30/mo.</h3>
<p>We keep a close eye on the cloud services budget for our clients. Keeping recurring costs down is part of our value-add.</p>
<p>Leveraging serverless technologies on a recent project allowed me to save my client hundreds of dollars per month on their AWS bill and get a critical feature up and running in hours instead of weeks.</p>
<h3>What is Serverless?</h3>
<p>In recent history, if you wanted to deploy code to the web, you needed to provision a server (or a set of servers). These servers would run in a data center 24/7, prepared to respond to internet requests at any time of day. Even if your server was receiving no requests, it would still be running, waiting, ready to respond.</p>
<p>For a provisioned server, you pay for every minute of run time, whether it’s idle time or working time (serving requests). This can cost anywhere from $40 to $1200 per month for a single provisioned server. You need to configure these servers, secure them, monitor them, and maintain them which adds human time and cumbersome overhead.</p>
<p>Serverless technology came to fruition in the last few years and allows you to deploy code to the web where it will sit in a quiescent state and wait for a request. When the request occurs, the code is launched and run, and then it returns to its quiescent state. You only pay for the time that your code was executing. And you don’t have to configure a server or maintain a set of servers. You simply write your code and deploy it.</p>
<p>For serverless, the cost for execution time is fractions of a penny per minute. Security, scalability, and monitoring are all built-in. This is the new paradigm and it’s game-changing for small businesses with reasonable loads. It can lead to dramatic cost savings. Cloud providers like AWS have many serverless offerings, from simple code execution to gateways and databases, where you only pay for what you use.</p>
<h3>My Serverless Experience</h3>
<p>We were three days away from launch when my client realized we needed the ability to store state for a web application running on a third-party service. We needed a high availability, secure solution that could scale and we needed low latency storage and retrieval times. I had about 24 hours to come up with an implementation, configure it and get it launched and tested.</p>
<p>The cost and effort of setting up a high availability database server with a web front end, load balancer, and appropriate scalability was not in the cards for this project and would have taken days or weeks to configure and easily cost over $600/month when all was said and done.</p>
<h3>Enter the Serverless Solution</h3>
<p>Utilizing three simple serverless offerings from AWS:</p>
<ul>
<li>API Gateway</li>
<li>DynamoDB</li>
<li>AWS Lambda</li>
</ul>
<p>Within four hours I set up my DynamoDB, created several secure RESTful endpoints using API Gateway, and added some Lambda code to handle data translation and packaging. My project launched two days later and my newly configured backend started receiving a few thousand requests per hour. My response time averaged 184ms. My database started processing 10,000 records per day and it’s been running for the past month with high loads, lightning-fast response times, and zero failures.</p>
<p><strong>But here’s the best part, my total cost for the month – $1.30.</strong>  That’s right. Less than $2. My Lambda service didn’t even break the generous free tier of 1M requests. I had 523k requests during the month, so my Lambda cost for the month is $0.00 and would cost only $0.20 for each additional 1M requests. That’s $0.20 for an additional 23 requests every minute! So even if my traffic quadrupled, I would still be paying less than $10 for these services. In addition, I’d get all the additional benefits of zero maintenance, high availability, and no hassling with server and tool configuration. </p>
<p>This is my AWS bill for the first month:</p>
<p><img src="https://fogcitycodeworks.com/media/2021/12/AWS-Bill.webp" alt=""></p>
<p>Also, I can monitor all of my backend services using AWS CloudWatch for a few extra pennies per month.  The dashboard below was configured in minutes and gives me an ongoing summary of my backend performance.</p>
<p><img src="https://fogcitycodeworks.com/media/2021/12/ServerlessBackend.webp" alt=""></p>
<p>This is the benefit of serverless and the value to small business. Instead of having to set up and properly configure a high availability server and pay for idle time, while wrestling with things like SSL configuration, load balancer setup, security patching and maintenance, I simply configure a few services and pay a fraction of a penny for each request. <strong>For a small business with reasonable usage patterns it is insanely cost effective</strong>.</p>
<h3>It’s Time to Think Serverless</h3>
<p> <br>The cloud is making it too easy for small business to adopt modern, scalable, performant and secure technology at incredibly low cost. The serverless revolution is here. Get on board, dazzle your customers and inspire your employees.</p>
<p>Now is the time to leverage the serverless technologies in the cloud, save money and increase your business agility.</p>
]]></content:encoded>
  </item>
  <item>
    <title>7 Mistakes to Avoid When Hiring a Freelance Software Developer</title>
    <link>https://fogcitycodeworks.com/2020/02/19/7-mistakes-to-avoid-when-hiring-a-freelance-software-developer/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2020/02/19/7-mistakes-to-avoid-when-hiring-a-freelance-software-developer/</guid>
    <pubDate>Wed, 19 Feb 2020 19:26:05 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>software</category>
    <category>team</category>
    <description>I’ve hired many freelance developers throughout my career. Avoid these mistakes to a find a productive developer and get yourself on the path to software happiness.</description>
    <content:encoded><![CDATA[<p>During the course of my career, I’ve hired many freelance developers and I’ve been hired by many clients.  I’ve learned quite a few lessons on both sides that can be helpful when staffing your next project. Avoid these mistakes to find a productive developer and get yourself on the path to software happiness.</p>
<p> <br><strong>1. Beware of tunnel vision.  Seek individuals that can see the big picture.</strong> <br>Writing code is great fun and <strong>developers can write endless lines of code without ever understanding the strategic goals of a project</strong>. They can optimize relentlessly to get better, cleaner, faster code, but often time spent optimizing adds little to no business value. They might spend significant time on features that are not relevant to the success of the project. If your project is new or not well defined, you will get much more value from a developer who has seen several project cycles. There are many critical decisions during the course of a project that can have a lasting impact on your investment. You want someone who can see to the horizon and can make the right decisions and trade-offs for your project.</p>
<p>In addition, there are <strong>some developers that just can’t see things from the</strong> <strong>end user’s perspective</strong>. It’s important to have compassion for end-users and understand their struggles so you can develop software and features that add value to their workflow. Not having an appreciation or an ability to see the view from another perspective can lead to bad decisions and software that misses the mark.</p>
<h3>2. Avoid favoring hard skills over soft skills.</h3>
<p> </p>
<p><img src="https://fogcitycodeworks.com/media/2021/12/SoftSkills.webp" alt=""></p>
<p>I’ve made this mistake so many times. It’s hard to avoid. You need a specific skill and you need it fast, so you go narrowly looking for a developer that can hit the ground running and be productive with that skill on day one. You ignore all candidates except for the ones that specifically highlight that skill and you make concessions because you feel that deadline approaching and know that there is limited time to get the right candidate up to speed. So you take the candidate with the hard skill that will get you to the finish line. Or maybe not.</p>
<p>My best hires, hands down, have not necessarily been the Entity Framework expert or the dev that has the most experience with Redis or WPF. <strong>My best hires have been the ones that have great soft skills</strong> like commitment, integrity, communication, and collaboration. You can teach someone XAML, but <strong>you can’t teach someone drive, dedication, or professionalism</strong>. Those skills are inherent. You either have them or you don’t. And it’s those skills that make the difference between project success and project delays.</p>
<p>So these days, I look for developers that have great foundations, unparalleled professionalism and an aptitude for learning. And then <strong>I set them loose on learning the hard skills required to get the project done</strong>. Great developers learn new skills quickly. We’ve been doing it for years because technology evolves at lightspeed (see mistake #7). If you can find both hard skills and soft skills, then you’ve found the holy grail, but if you have to favor one, take the soft skills every time.</p>
<h3>3. Run (don’t walk) from bad communicators.</h3>
<p>Ask any technology veteran what makes a project, team, or a company successful and they will tell you <strong>it comes down to communication</strong>. <a href="https://thriveglobal.com/stories/why-communication-skills-are-important-in-the-it-industry/">It’s imperative to find developers that embrace good communication practices</a>. Understanding project requirements is a key to success, and understanding requirements means asking the right questions and listening attentively.</p>
<p>I’ve seen many developers deliver results that miss the mark because they moved forward, head down, and never asked for clarification, or never talked to a teammate about integration details. <strong>Vague communication, inaccurate communication, or no communication is a project killer</strong>. Run away.</p>
<p>Look for a developer that provides weekly updates, gives accurate and clear responses to questions, and knows when to admit they don’t know the answer right now (but will provide one by COB tomorrow). Look for a history of collaboration with tech and non-tech colleagues. Avoid anyone who doesn’t ask smart questions or doesn’t communicate clearly during the hiring process.</p>
<blockquote>
<p> &quot;One bad programmer can easily create two new jobs a year.&quot;  -Dave Parnas, Early Pioneer of Software Engineering</p>
</blockquote>
<h3>4. Avoid transients.</h3>
<p>I’ve worked with freelance developers that hang a shingle in between jobs or as a side hustle to their full-time job when money gets tight. There is definitely a time and place for these developers and short projects that match their availability can work out. But all too often you’ll get someone up to speed and feel good about the progress you’re making only to have their situation change, <strong>leaving you scrambling to find a new developer halfway through your project</strong>. Beware of those freelancers that might not be fully committed to seeing your project through to completion. Spinning up a new resource is costly and time-consuming.</p>
<p>Keep in mind that your two-month project, if done correctly, will probably lead to new opportunities, changes, iterations, and upgrades. If that is the case, then you might consider looking for someone who will be available long-term.</p>
<h3>5. Overestimating your own bandwidth.</h3>
<p><img src="https://fogcitycodeworks.com/media/2021/12/Busy.webp" alt=""></p>
<p>Be honest with yourself about how much time to you have to devote to your project and how experienced you are running technical projects. <strong>You can get by with a less experienced resource if you have ample bandwidth to direct and manage their efforts</strong>. Less experience typically means lower costs but more effort in generating productivity, understanding requirements, and generally staying on track.</p>
<p>If you’ve managed technical projects in the past, then you probably have a good understanding of how to structure an engagement. But if you’re strapped for time and your calendar is filled with meetings and other commitments, then you would be best served by hiring an experienced developer that can manage the project and keep it on track, providing you with updates and targeted questions along the way.</p>
<h3>6. Don’t sacrifice experience for lower cost.</h3>
<p>Experience leads. No question. A developer that has been through many project cycles can anticipate issues before they become project killers. If your project is critical to your business, look for a dev with a long resume of successful projects that can help guide you through a proper software development process. Keep in mind that applying technology to a business problem requires more than just writing some code. Having a developer that understands the value of planning and communication and has successfully managed projects from start to finish can lead to a more successful outcome.</p>
<p>Typically a developer with less experience will work hard to deliver features, taking shortcuts along the way to deliver results fast. They will miss or overlook other important aspects of a project like security, maintainability, or how it will scale with business needs. You might get results that look promising today, but when you scale up or try to build on it, everything falls apart. An experienced developer understands these tradeoffs and can help you navigate a project with full disclosure of the costs, benefits, and pitfalls.</p>
<blockquote>
<p>&quot;The difference between an experienced developer and an inexperienced developer is the experienced developer knows when they’re taking shortcuts.&quot;  -Lance Haag, VP Engineering, Cal-Bay Systems</p>
</blockquote>
<h3>7. Don’t overlook resourcefulness.</h3>
<p>We all need resources to be successful. Developers can find resources all over the web (webinars, podcasts, blogs, eBooks, white papers ). <strong>Don’t forgive a dev that’s not willing to go the extra mile</strong> to get a deeper understanding of the problem domain or the technical options. With toolsets changing monthly and new tools being introduced at every quarterly event, it is the job of every software developer to stay up-to-date on the latest innovations and developments in their area of expertise.</p>
<p>Any developer that doesn’t do the hard work to stay current, or research options to successfully complete projects, won’t fully be able to assess the trade-offs necessary to successfully deliver results.</p>
<h3>Conclusion</h3>
<p>For your next project, take a good hard look at your candidates. Be honest with yourself about your own bandwidth and how much time you have to guide and oversee this project. Be sure to evaluate your candidate’s experience against your needs. <a href="https://enterprisersproject.com/article/2019/11/developer-job-interview-questions">Look for committed and resourceful candidates</a> with proven track records of successful projects. Remember that partnering with the wrong freelancer could mean you end up doing your project twice, or you get stuck looking for a new resource in the critical ninth inning.</p>
<p>If you avoid these 7 mistakes, I promise that you will get a lot more productivity and a lot fewer missed deadlines and failed projects. You might even achieve software happiness.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Small Business Finds Operational Excellence in the Cloud</title>
    <link>https://fogcitycodeworks.com/2020/02/12/small-business-finds-operational-efficiency-in-the-cloud/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2020/02/12/small-business-finds-operational-efficiency-in-the-cloud/</guid>
    <pubDate>Wed, 12 Feb 2020 18:32:06 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>cloud</category>
    <category>software</category>
    <description>You don’t have to have Fortune 500 budgets to be successful in the cloud. This small, data driven business found huge efficiencies that enabled rapid growth and increased their business agility.</description>
    <content:encoded><![CDATA[<blockquote>
<h4>“Our cloud technology infrastructure not only improves our operational efficiency but increases our business velocity.” – Brian Rivel, CEO</h4>
</blockquote>
<p><a href="http://www.rivel.com">Rivel Research</a> has been conducting research in the investment community since 1991, when Art Rivel first pioneered the insight-rich IR Perception Study. Enlightened public companies today rely on studies performed by Rivel <a href="https://www.wsj.com/articles/companies-adjust-financial-communications-to-resonate-with-humans-and-robots-11574193390">to understand how their corporate messaging is landing with investors</a>.</p>
<p>In 2010, facing increased customer demand and a stockpile of research data, Rivel decided to address their ever-growing data needs. Fog City Code Works was hired to build out their data infrastructure and write custom software to automate their data management, report generation, and data collection process.</p>
<h3>Build More in the Cloud for Less</h3>
<p>The cost of purchasing and managing their own backend servers and software licenses, and providing appropriate bandwidth for their remote employees and contractors would have been in the 10’s of thousands of dollars and would have completely buried their small IT team in support, maintenance and security headaches. So, the first thing Fog City did was to set them up in the cloud. We spun up a <a href="https://aws.amazon.com/vpc/">virtual private cloud network</a> and provisioned a server and a relational database on AWS for less than $100 per month and got Rivel up and running instantly with 99.95% guaranteed uptime.</p>
<blockquote>
<h4>“We constantly engaged end-users throughout the rollout to ensure adoption and confirm that we were consistently hitting the mark.”</h4>
</blockquote>
<h3>Custom Software to Drive Operational Excellence</h3>
<p><img src="https://fogcitycodeworks.com/media/2021/12/Cloud.webp" alt=""></p>
<p>Using custom software developed by Fog City, Rivel automated many manual steps of their research process. They streamlined their operation to improve efficiency, reduce errors, improve research results and generate client deliverables faster. Fog City developed smart algorithms to analyze study sample and highlight optimal candidates. Business intelligence tools were developed to uncover bottlenecks and track productivity. Dave Weisberg, Founder of Fog City Code Works noted, &quot;After examining Rivel’s workflow and how they interact with data we introduced a custom set of applications that streamlined each business process. We did a phased rollout to minimize disruption and set up performance monitoring and metrics for continuous improvement.”</p>
<p>End users immediately embraced the new software as it automated previously tedious tasks and provided valuable business insight. “We constantly engaged end users throughout the rollout to ensure adoption and confirm that we were consistently hitting the mark,” says Weisberg.</p>
<h3>Scale Up for Rapid Growth</h3>
<p>As Rivel’s business grew and their data needs became more rigorous, they were able to quickly scale up their cloud services, upgrading servers with a few keystrokes. Fog City was able to stay ahead of their data needs by leveraging new AWS services like <a href="https://aws.amazon.com/lambda/">AWS Lambda</a> and <a href="https://aws.amazon.com/api-gateway/">API Gateway</a> to connect with external data sources. When Rivel’s studies were scaled by several orders of magnitude, Fog City integrated <a href="https://aws.amazon.com/elasticache/">AWS Elasticache</a> to improve data retrieval times from minutes to milliseconds. The flexibility of the cloud allowed quick experimentation and proof of concept development by temporarily provisioning services to evaluate different data architectures.</p>
<h3>A Technology Base to Facilitate Growth</h3>
<p>Brian Rivel, CEO of Rivel Research remarked &quot;Thanks to Fog City Code Works, our business has been able to scale fivefold. Our cloud technology infrastructure not only improves our operational efficiency but increases our business velocity. With this platform in place, we’ve uncovered new and meaningful ways to improve business processes that we never could have imagined at the outset. Our tech investment is paying huge dividends.&quot;</p>
<p>Today, Rivel’s AWS footprint includes over a dozen AWS services. And even with 50 employees using the platform daily, <strong>their spend is still less than $15 per employee per month</strong>. For this small business, adopting cloud services allowed unimpeded IT growth at extremely low infrastructure costs. Their research process has been fully automated by Fog City and their data repository is full of rich and valuable information that they use to enhance their client deliverables. <strong>Thanks to their partnership with Fog City and AWS, Rivel has achieved business agility</strong>. As their business grows, they can easily and inexpensively add new cloud services, develop new products and services and better serve their clients.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Finding Clarity in the Fog</title>
    <link>https://fogcitycodeworks.com/2020/02/02/finding-clarity-in-the-fog/</link>
    <guid isPermaLink="true">https://fogcitycodeworks.com/2020/02/02/finding-clarity-in-the-fog/</guid>
    <pubDate>Sun, 02 Feb 2020 14:30:00 GMT</pubDate>
    <dc:creator>David Weisberg</dc:creator>
    <category>software</category>
    <description>I’ve been a software developer for 25 years and I’ve seen the good and bad of Silicon Valley. I’ve worked with the best and brightest developers. I’ve also seen the darker of side of software development – communication breakdowns, disorganization, poor project management. It doesn’t need to be this way.</description>
    <content:encoded><![CDATA[<h3>The State of Software Development</h3>
<p><strong>I’ve been a software developer for 25 years</strong> and I’ve seen the good and bad of Silicon Valley software projects.</p>
<p>I’ve worked with the best and brightest developers and I’ve witnessed well-managed and successful projects. They go smoothly. Stakeholders are happy. Deadlines are met. The resulting software has a big impact on business productivity and profits.</p>
<p>I’ve also seen the darker of side of software development. Things like communication breakdowns, disorganization, poor project management, and a lack of understanding of the requirements and how they relate to business goals. These projects tend to be delivered late or they miss the mark completely. Stakeholders are frustrated. The business languishes.</p>
<p><strong>I’ve seen software frustration firsthand. I’ve seen gross disappointment. I’ve seen end users that are made to suffer. It doesn’t have to be this way.</strong></p>
<h3>Software Development Done Right</h3>
<p><img src="https://fogcitycodeworks.com/media/2021/12/SoftwareDevelopment.webp" alt="">Creating great software is more than writing code. It starts with a good understanding of the problem domain, the pain points, and the business objectives. It requires great listening skills, compassion for the end user, and a solid understanding of the software development process.</p>
<p><strong>Once a project is underway, it requires a leader to coordinate resources and drive it forward</strong>, keep it on track, and effectively communicate status to stakeholders. Upon deployment, great software requires careful monitoring, quickly addressing defects, and attention to detail for a smooth and well-coordinated rollout.</p>
<p>As it matures and gains traction, software needs responsive and mindful support, the solicitation and prioritization of end-user feedback, and appropriate security and performance monitoring to ensure original business objectives are being met and data is protected.</p>
<p><strong>Every step of this process is crucial to overall success.</strong></p>
<h3>Why This Matters</h3>
<p>Today more than ever, software is critical to business operations. End-users need a responsive and an intuitive user interface to promote adoption and stay engaged with business processes. Managers and decision-makers need appropriate data visualization and real-time information to make data-driven business decisions. Stakeholders deserve accurate project costs, clear milestones and firm delivery dates.</p>
<p>Today’s business software is integrated with other business services. It’s open and flexible. It evolves with developing business needs. It’s distributed and performant. <strong>Fail to invest in proper business software at your own peril.</strong></p>
<p>Software done poorly (i.e. late, non-performant, clunky, overly cumbersome, poorly designed, glitchy, inability to scale) will lead to lost opportunities and frustrated, disengaged end users. <strong>Businesses that don’t prioritize software or take shortcuts with software development will falter and fail in today’s digital world.</strong></p>
<h3>Why Fog City Code Works</h3>
<p><img src="https://fogcitycodeworks.com/media/2021/12/Logo-medium.webp" alt="">Fog City is different from the average software shop. We care deeply about the success of our clients and we provide unparalleled service and engagement throughout the project lifecycle.</p>
<p>Fog City brings over 25 years of software development experience working with large and small businesses to deliver software that makes a difference time and time again. When you hire Fog City Code Works, your problems become our problems. We only take on projects where we know we can deliver outstanding results, on time and within your budget.</p>
<p><strong>Software development projects are critical to business success.</strong> It takes a great partner with sound experience, solid technical skills, and a passion for delivering results that consistently exceed expectations. Fog City Code Works is that partner. This is a software development company that you want in your critical path.</p>
]]></content:encoded>
  </item>
</channel>
</rss>
