<?xml version="1.0"?>
<ownershipDocument>

    <schemaVersion>X0306</schemaVersion>

    <documentType>4</documentType>

    <periodOfReport>2022-05-23</periodOfReport>

    <issuer>
        <issuerCik>0001001385</issuerCik>
        <issuerName>NORTHWEST PIPE CO</issuerName>
        <issuerTradingSymbol>NWPX</issuerTradingSymbol>
    </issuer>

    <reportingOwner>
        <reportingOwnerId>
            <rptOwnerCik>0001234059</rptOwnerCik>
            <rptOwnerName>ROMAN RICHARD A</rptOwnerName>
        </reportingOwnerId>
        <reportingOwnerAddress>
            <rptOwnerStreet1>201 NE PARK PLAZA DRIVE</rptOwnerStreet1>
            <rptOwnerStreet2>SUITE 100</rptOwnerStreet2>
            <rptOwnerCity>VANCOUVER</rptOwnerCity>
            <rptOwnerState>WA</rptOwnerState>
            <rptOwnerZipCode>98684</rptOwnerZipCode>
            <rptOwnerStateDescription></rptOwnerStateDescription>
        </reportingOwnerAddress>
        <reportingOwnerRelationship>
            <isDirector>1</isDirector>
        </reportingOwnerRelationship>
    </reportingOwner>

    <nonDerivativeTable>
        <nonDerivativeTransaction>
            <securityTitle>
                <value>Common Stock</value>
            </securityTitle>
            <transactionDate>
                <value>2022-05-23</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>S</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>3574</value>
                    <footnoteId id="F1"/>
                </transactionShares>
                <transactionPricePerShare>
                    <value>32.0036</value>
                    <footnoteId id="F2"/>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>D</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>31558</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
            </ownershipNature>
        </nonDerivativeTransaction>
    </nonDerivativeTable>

    <footnotes>
        <footnote id="F1">Sale of stock pursuant to a 10b5-1 trading plan previously adopted by the Reporting Person.</footnote>
        <footnote id="F2">This transaction was executed in multiple trades at prices ranging from $32.00 to $32.07 per share. The price reported reflects the weighted average sale price. The Reporting Person undertakes to provide to the Issuer, any security holder of the Issuer, or to the staff of the SEC, upon request, full information regarding the number of shares sold at each separate price within the range set forth in this footnote.</footnote>
    </footnotes>

    <ownerSignature>
        <signatureName>/s/ Megan Kendrick</signatureName>
        <signatureDate>2022-05-24</signatureDate>
    </ownerSignature>
</ownershipDocument>
