Pythonを活かせる仕事

Python
の案件月額単価相場

[案件数]

平均単価:
824,324

最高単価:
1,200,000

最低単価:
550,000

  • 700,000 900,000 /月額
  • リモート / 基本、リモートでの勤務になります。
  • 作業内容
    現在運用中の既存Webプロダクトについて、引継ぎを受けたうえで、今後の改修・保守・改善をご担当いただけるエンジニアを募集します。 主な目的は、デザイナーから上がってくるUIデザインに合わせた画面改修、既存機能の安全な修正、将来的なスケールを見据えたコードの整理・改善です。 新規で難易度の高いコアロジックをゼロから実装いただくというより、既存構成を把握し、安定して保守・改善していく役割を想定しています。 現状の構成は以下のようになっています。 ・フロントエンド:Next.js / Vercel ・バックエンド:Python / FastAPI / Render ・DB等:Supabase ・DBマイグレーション:Alembic ・AI呼び出し:OpenRouter 経由 お願いしたい内容は以下です。 ・既存コードの読解、構成把握 ・デザイナー提供UIに基づくフロントエンド改修 ・必要に応じたバックエンド/API側の修正 ・既存機能の保守、不具合対応 ・コードの整理、責務分離、保守性向上のための改善 ・開発環境、デプロイ、DBまわりの理解と必要な整備 既存システムの引継ぎや保守改善の経験があり、場当たり的な修正ではなく、今後の拡張を見据えて丁寧に整備できる方を歓迎します。
  • 必須スキル
    JavaScript / TypeScript を用いたWebアプリ開発経験 React または Next.js を用いたフロントエンド開発経験 Python を用いたバックエンド開発経験 FastAPI / Flask / Django 等のPython系Webフレームワーク利用経験 既存コードを読解し、安全に改修できること API実装およびフロントエンドとの接続調整経験 RDBを用いた開発経験 Git / GitHub を用いた開発経験 開発環境構築、デバッグ、障害切り分けの経験
  • 尚可スキル
    Next.js の実務経験 FastAPI の実務経験 Vercel / Render / Supabase の利用経験 PostgreSQL の利用経験 SQLAlchemy / Alembic の利用経験 既存サービスの引継ぎ、保守、リファクタリング経験 デザイナーとの連携によるUI反映経験 SaaSプロダクトの保守改善経験 OpenRouter / OpenAI / Anthropic 等のAPI連携経験
  • 募集人数
    1人
  • 募集背景
    交代要員
  • 面談回数
    3回

Pythonとは?

Pythonの案件・業界分布について

近年のAI(人工知能)ブームなど、データサイエンス分野で注目を集めるプログラミング言語・

Python。シンプルで習得が容易なことを目指し、言語機能は最小限、不足分は拡張ライブラリで補う方針で開発されました。


人工知能に加え、拡張ライブラリの中でも統計や解析分野が充実し、ビッグデータの中から価値のある情報を見つけ出すデータ解析や分析ツール、車の自動運転や家屋内のエネルギー消費の最適化などIoT(アイオーティー)分野での利用が盛んに行われています。

Webアプリ開発にも力を入れており、YouTubeやインスタグラム、Dropboxなどの開発言語としても知られています。


Pythonは、「Python2」と「Python3」の2つのバージョンがありますが、「Python3」のほうが新バージョンで、新しい開発は「Python3」で行われていることが多いようです。


数式、統計処理の拡張ライブラリが充実しているPythonは、機械学習、ディープラーニング、科学技術計算などデータサイエンス業界で必要とされています。自動車や住宅、建築、服飾などの設計や製図を支援するシステムであるCAD、3Dでデータを作成する3Dモデリング、WEBアプリケーション開発にも使われ、幅広い分野での活躍が期待できるでしょう。


Pythonのサンプルコード

⚫️PDFページへ画像を挿入する


import fitz                         # <-- PyMuPDF

doc = fitz.open("some.pdf")         # open the PDF

rect = fitz.Rect(0, 0, 100, 100)    # where to put image: use upper left corner


for page in doc:

   page.insertImage(rect, filename = "some.image")


doc.saveIncr()                      # do an incremental save



⚫️PDFページにテキストボックスを挿入する


import fitz                          # import PyMuPDF

doc = fitz.open("some.pdf")          # or new: fitz.open(), followed by insertPage()

page = doc[n]                        # choose some page

rect = fitz.Rect(50, 100, 300, 400)  # rectangle (left, top, right, bottom) in pixels


text = """This text will only appear in the rectangle. Depending on width, new lines are generated as required.\n<- This forced line break will also appear.\tNow a very long word: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.\nIt will be broken into pieces."""


rc = page.insertTextbox(rect, text, fontsize = 12, # choose fontsize (float)

                  fontname = "Times-Roman",      # a PDF standard font

                  fontfile = None,               # could be a file on your system

                  align = 0)                     # 0 = left, 1 = center, 2 = right


print("unused rectangle height: %g" % rc)         # just demo (should display "44.2")


doc.saveIncr()  # update file. Save to new instead by doc.save("new.pdf",...)



⚫️数行でPDFにカレンダーを作成する


mport fitz

import calendar

import sys

assert len(sys.argv) == 2, "need start year as the one and only parameter"


startyear = sys.argv[1]

assert startyear.isdigit(), "year must be positive numeric"

startyear = int(startyear)

assert startyear > 0, "year must be positive numeric"

   

doc = fitz.open()

cal = calendar.LocaleTextCalendar(locale = "de")  # choose your locale

w, h = fitz.PaperSize("a4-l")                     # get sizes for A4 landscape paper


txt = cal.formatyear(startyear, m = 4)

doc.insertPage(-1, txt, fontsize = 12, fontname = "Courier", width = w, height = h)


txt = cal.formatyear(startyear + 1, m = 4)

doc.insertPage(-1, txt, fontsize = 12, fontname = "Courier", width = w, height = h)


txt = cal.formatyear(startyear + 2, m = 4)

doc.insertPage(-1, txt, fontsize = 12, fontname = "Courier", width = w, height = h)


doc.save("Kalender.pdf", garbage = 4, deflate = True)


Pythonのフレームワーク

Python は、Webアプリケーション開発のためのフレームワークがあります。Pythonの代表的な

フレームワークとして知られているのは、大規模向けの「Django」。「Django」は、迅速な開発で実用的なデザインを促進するフレームワークです。データベースやセキュリティ、ユーザーインターフェースの機能をひとつのアプリケーションでまかなうフルスタックで、高い柔軟性とパフォーマンスが特徴。


小規模から中規模向けのフレームワークとしては、「Bottle」、「Flask」が良く知られています。

「Bottle」は、マイクロWEBフレームワーク。学習量が少なくすみ、「今すぐ何かを作りたい」という開発者にとっては格好のフレームワークといえます。


「Flask」は、マイクロWEBフレームワークの中でも軽量のフレームワークです。コミュニティが提供する多くの拡張機能があり、新しい機能をシンプルに追加できるのが特長です。


Pythonについて

Pythonは、スクリプト言語、すなわちアプリケーションソフトウェアが動作する内容を、台本のように記述し制御するための、比較的簡単なプログラミング言語の一つです。 3次元コンピュータグラフィックスソフトウェアの一つであるBlenderの機能の拡張や、自動処理するのに使われ、他にもPythonスクリプトを組み込んだ3DCGソフトやPythonで作成されたアプリケーションなどがあります。 WebプログラミングやCAD、3Dモデリング、さらにGUIベースのアプリケーション、数式処理など幅広い分野に適応することから、マイクロソフトやアップルなど欧米の企業でよく使われ、Yahoo!、YouTube などの企業も利用しています。 とてもパワフルな動的かつ高速なプログラミング言語であり、言語も、様々な問題ドメインを実用的に扱えるくらい柔軟なのが特徴となっています。 しかも初心者にも優しいシンプルさで、可読性に優れ、コンパイルを必要とせず、対話型シェルでテストが可能という特徴もあり、今後的に日本でもさらに広まるものと見られています。 PythonのライセンスはPythonソフトウェア財団が管理し、オープンソースライセンスとして提供されているので実相は自由に使用、配布ができます。

続きを見る