Wszystkie - Aleksandra Grosset

Transkrypt

Wszystkie - Aleksandra Grosset
Curriculum Vitae
Aleksandra Grosset
Urodzona 22 stycznia 1984 w Warszawie
Kontakt:
00-683 Warszawa, ul. Marszałkowska 87/112
[email protected]
Portfolio: a.grosset.pl/pf
Wykształcenie:
Politechnika Warszawska, przy współpracy z INFOVIDE MATRIX (2010-2011)
Studia podyplomowe - Metody i narzędzia inżynierii oprogramowania
Profil studiów: metodyka programowania obiektowego (na przykładach JAVA, .NET), projektowanie
i analiza potrzeb aplikacji - narzędzia case, bazy i hurtownie danych, projektowanie interfejsów
użytkownika, bezpieczeństwo systemów informatycznych, zarządzanie projektami
Szkoła Główna Służby Pożarniczej (2006-2010)
Wydział Inżynierii Bezpieczeństwa Cywilnego
Uzyskany tytuł: inżynier
Profil studiów: analiza ryzyka, probabilistyka, koordynacja działań, zarządzanie, prakseologia,
planistyka, logistyka, przedmioty inżynierskie
Doświadczenie:
Obecnie: Praca w eService Sp. z o.o.:
Stanowisko: Analityk (od sierpnia 2015)
Technologie: .NET, MS SQL, Oracle
Obowiązki:
analiza istniejących rozwiązań, aplikacji, jak i baz danych
analiza potrzeb biznesowych
planowanie architektury nowych rozwiązań, jak i rozszerzeń rozwiązań istniejących
koordynacja pracy i zapewnienie komunikacji w zespole w czasie trwania projektów
planowanie wykonania projektu, tak czasu, jak i podziału obowiązków
●
●
●
●
●
Praca w Travel Office Management:
Stanowisko: Programista PHP (maj 2012 - czerwiec 2015)
Technologie: PostgreSQL, Zend Framework 1.., mongo, jQuery, GIT, Flex
Obowiązki:
utrzymanie złożonej aplikacji opartej o hurtownię danych
poprawki i rozszerzenia istniejących elementów aplikacji
przebudowa Systemu Flex do wyświetlania oferty na LCD, dodanie wersji html
rozbudowa systemu do wyświetlania oferty na stronie klienta
wdrożenia u kluczowych klientów
userinterface do nowej wersji aplikacji
nowa wersja IBE ina stronę klienta
●
●
●
●
●
●
●
Praca w TrafficMedia:
Stanowisko: Programista PHP (sierpień 2011 - maj 2012)
Technologie: UML, PHP, javascript, MySQL
Obowiązki dodatkowe:
projektowanie i realizacja złożonych aplikacji webowych
poprawki i rozszerzenia istniejących aplikacji
współpraca i kontakt ze zdalnymi programistami innych języków, projektowanie api
praca nad aplikacjami komunikującymi się w sieci (planowanie i realizacja api)
budowa fabryki małych aplikacji "instant", wraz z systemem automatycznego umieszczania ich
na serwerach www
analiza i systematyzacja potrzeb aplikacji (UML - praca w Enterprise Architect)
planowanie realizacji projektów (przy pomocy wykresów Gantta w systemie redmine)
●
●
●
●
●
●
●
Stanowisko: Programistka aplikacji webowych (październik 2010 - lipiec 2011)
Technologie: PHP, javascript, MySQL
Zakres obowiązków:
samodzielna praca nad małymi serwisami
praca w zespole programistów nad większymi aplikacjami
praca nad złożonymi aplikacjami javascript, planowanie i realizacja komunikacji z serwerem
poprzez AJAX (z wykorzystaniem JSON i XML)
projektowanie baz danych
●
●
●
●
Projektowanie stron www (freelance):
dbbiuro.pl (lipiec-sierpień 2010)
kwiatynaslub.pl (czerwiec 2010)
biurodb.pl (maj 2010)
pacek-bud.pl (luty 2010)
fortwlochy.pl (listopad 2009)
zatutowej.pl (październik 2009)
+
Grafika: Ilustracje do książeczek dla dzieci z serii "owoce i warzywa" (styczeń-marzec 2009)
Kelnerka, barmanka: Place de Luxembourg, Bruksela (lipiec-sierpień 2009), Pub Brawura,
Warszawa (2004-2005)
Recepcja: Firmy AUTO-USŁUGA na Bródnie (2002)
Organizacja imprez: Warszawskie Przeglądy Piosenki Żeglarskiej (2001-2003)
Zdobyte umiejętności:
Język rosyjski: matura, studia (dobrze poruszam się w gramatyce, zdecydowanie za mało praktykuję)
Język angielski: na poziomie dobrym, płynny w mowie.
Obsługa komputera: dobra
Narzędzia CASE i zarządzania: Enterprise Architect, Visual Studio, MS Project, redmine
Edytory i środowiska programistyczne: Notepad++, NetBeans, CodeBlocks i wiele innych
Narzędzia komunikacji zdalnej i kontroli wersji: GIT, TortoiseSVN, WinSCP, FireFTP, FileZilla,
obsługa FTP z poziomu PHP i SOAP
Narzędzia graficzne: Photoshop(CS3), Flash(CS3), GIMP, Inkscape
Ponad to: Narzędzia typu CAD, office, programy dedykowane dla bezpieczeństwa
Poruszanie się w obrębie DOM: jQuery, html5, xml, (x)html, css, javascript
AJAX: XMLHttpRequest, ActiveXObject, Flex, JSONP, SOAP
Programowanie: PHP(ojczysty - OOP), C++(początkująca), JAVA(początkująca - język wykładowy
na PW), Visual Basic .NET(początkująca - przedmiot na PW), javascript(świetnie)
Frameworki: Zend Framework (certyfikat Zend'a), jQuery, Kohana, .NET, inne niekomercyjne
(firmowe i autorskie)
Bazy danych: PostgreSQL, mongo, MySQL(MyISAM, InnoDB), Hurtownie Danych, rekonesans w
Neo4j i redis
Wzorce projektowe: Dobra znajomość wzorców projektowych - kreacyjnych, czynnościowych i
strukturalnych - doświadczenie w ich implementacji, znajomość antywzorców i zasad refaktoryzacji.
Zainteresowania:
Jak każdy: dobra książka, muzyka, film, jedzenie
Nawet bardziej: jazdę na skuterku, podróże (bo kształcą), rysować (malować, wycinać,
babrać się...), poznawać, uczyć się, wizualizować, kombinować, projektować, analizować, wdrażać
i jeździć na swoim skuterku:)
Plany:
Prawo-jazdy, Studia z filozofii, Zarządzanie projektami, Wyjazd do Australi
Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji
procesu rekrutacyjnego, zgodnie z przepisami ustawy z 29.08.1997 o Ochronie Danych Osobowych
(Dz. U. z 2002 r. Nr 101, poz. 926 z późn. zm.)
Portfolio
Travel office Management:
Opis moich ostatnich trzech lat pracy znajdziecie Państwo w języku angilelskim tu.
TrafficMedia:
W tym miejscu wielkie podziękowania dla firmy TrafficMedia, Łukasza Chełchowskiego, Daniela
Sucheckiego, Moniki Juszczak, oraz mojego mentora - Mariusza Fornala.
(Przykłady rozwiązań)
Przykład diagramu bazy danych:
Projekty dużych relacyjnych baz danych, zoptymalizowane pod dużą wydajność i wielokrotne
asocjacje.
Narzędzie - Enterprise Architect - daje możliwość prowadzenia dokładnej dokumentacji, oraz
eksportu takiej bazy na serwer wraz ze wszystkimi szczegółami.
Przykład diagramu klas /model/*:
Projekty aplikacji podzielonych na przestrzenie nazw (zaimplementowane w PHP 5.3) to porządek i
jasny schemat "autoload".
Narzędzie - Enterprise Architect - umożliwia eksport aplikacji do wielu popularnych języków
programowania, oraz synchronizację diagramu z tworzonym kodem.
Przykłady kodu:
Podstawa aplikacji webowych, to system nawigacji opartej na adresie URI.
Dobre rozwiązania charakteryzują się tu elastycznością, dlatego zakładam, że kolejne poziomy
nawigacji rozdzielone mogą zostać dowolnym separatorem, zaś adres zakończony wybranym
rozszerzeniem.
Z kolei generowanie linków odbywa się za pomocą funkcji http(), która pilnuje, aby wszystkie
spełniały narzucony standard.
Prezentowany tekst jest fragmentem pliku konfiguracyjnego aplikacji.
<?php
...
HTTP_WWW ? define('BASE', 'http://www.'.APP_DOMAIN.'/'):define('BASE', 'http://'.
APP_DOMAIN.'/');
function http()
{ return func_num_args()? BASE.implode(HTTP_SEPARATOR,
func_get_args()).HTTP_EXTENTION : BASE; }
//@..........................navi...........................@\\
if(!CRON_WORKS)
{
$replace = preg_replace('#\.#','\.',HTTP_EXTENTION);
$_GET[SERVER_REWRITE_ADDR] = preg_replace('#'.$replace.'$#','',$_GET[
SERVER_REWRITE_ADDR]);
$navi = isset($_GET[SERVER_REWRITE_ADDR]) ? explode(HTTP_SEPARATOR, $_GET[
SERVER_REWRITE_ADDR]) : array();
function navi($index = 0, $case = NULL)
{
global $navi;
$n = isset($navi[$index]) ? $navi[$index] : NULL;
return $case === NULL ? $n:(strcasecmp($n, $case) == 0);
}
}
else
{
function navi($index = 0, $case = NULL)
{
$index++;
global $argv;
$n = isset($argv[$index]) ? $argv[$index] : NULL;
return $case === NULL ? $n:(strcasecmp($n, $case) == 0);
}
}
...
?>
Przykład uproszczonego schematu kontrolera aplikacji PHP.
Własność menu jest tu listą dostępnych akcji kontrolera, z których każda wywoływana jest jako jego
metoda. Daje to możliwość obsłużenia każdej akcji z osobna, lub też użycia "magicznej metody"
__call($function, $arguments) dla standardowego rendowania widoków, czy tworzenia kontrolerów
następnych poziomów.
<?php
namespace controle;
/**
* @author Ag-EA
* @version 1.0
* @created 13-lut-2012 13:30:58
*/
class schema
{
protected $level; // level of navigation
public static $ladder; // array of activated controle classes
protected $menu; // available conroller actions
protected $action; // active action
public function __construct()
{
$act = $this->check();
self::$ladder[$this->level] = $this;
$this->action = $act;
$this->$act();
}
public function check()
{
return $this->menu[(int)array_search(navi($this->level), $this->menu)];
} // chooses an active action
}
?>
Przykład ciekawego API.
Czasem zwykłe przekazywanie danych między aplikacjami nie wystarcza. Jeśli potrzebujemy trochę
więcej wolności i wziąć udział w kontroli aplikacji, można pokusić się o serializację ciał potrzebnych
funkcji.
Oczywiście dostęp do tego typu API musi być ograniczony restrykcjami, by korzystać mogły z niego
jedynie zaufane aplikacje.
To rozwiązanie jest częścią aplikacji streaming'owej, która obsługuje kilka serwisów download'owych.
<?php
class ActionObject
{
public $events = array();
public function __wakeup()
{
if(is_array($this->events))
{
foreach($this->events as $role=>$func)
$this->events[$role] = create_function('$ob', urldecode(
base64_decode($func)));
} // removing serialization protection
$this->event('__wakeup');
}
public function event($method)
{
if(isset($this->events["on$method"])) // checks if the function exist
return $this->events["on$method"]($this);
// runs the function. and gives her access to $this object
}
public function __destruct()
{
$this->event('__destruct');
}
public function __call($met, $args)
{
return $this->event($met);
// answer for every function call with a event use
}
}
?>
Przykład Front-end - prezentacja Javascript:
Te javascript'owe bąbelki powstały w wyniku współpracy z naszym projektantem graficznym Łukaszem.
Pochodzą z podwodnego świata strony Działu Kreatywnego TrafficMedia.
It is not so simple to see the javascript effect in printed document, so I refer to my
portfolio online version, or creative section of TrafficMedia homepage.
Przykład dokumentacji:
Dokumentacja ta została stworzona dla osób, które w przyszłości będą zajmować się konserwacją
serwisu, oraz ewentualnych "klonów".
Wyposażona jest w krótkie opisy metod i własności każdej z klas, oraz system linków wewnętrznych,
który umożliwia "przeskoczenie" do innej pozycji wspomnianej w takim opisie.
Freelance:
(Wszystkie strony wykonałam osobiście, od projektu graficznego po zaprogramowanie)
Strona dla Biura Księgowego db.
Aplikacja stworzona do zdalnego kontaktu z biurem księgowym.
Posiada ciekawą nawigację (w danych sesji i cookies).
Dzięki temu, oraz samodzielnym plikom, które po wykonaniu zadania przekierowują z powrotem do
katalogu głównego przez cały czas użytkowania strony widzimy tylko zgrabny adres domeny
www.dbbiuro.pl, zmienne GET zarezerwowane zostały dla błędów i komunikatów.
Wszystkie trzy tabele wyświetlane na stronie (skany faktur, płatności i zamówione przez klienta
zestawienia) posiadają niezależne dane stronicowania, oraz sortowania danych według wybranych
własności.
Zmienne dotyczące porcjowania wyników trzymane w cookies umożliwiają zachowanie ulubionego
układu strony
Zapraszam do obejrzenia przykładowego konta: 'Firma test', hasło: 'nowehaslo' (na prawach gościa)
Strona pracowni florystycznej "Flora Dekor"
Napisana została w kohanie.
Postanowiłam hołdować lżejszym i przyjemniejszym w obsłudze galeriom w javascript.
Całość prosta, oparta na relacyjnej bazie danych (ORM).
Strona firmy db - Organizacja imprez rozrywkowych.
Pobawiłam się trochę javascript i wyszła z tego całkiem zgrabna galeria.
Strona dla firmy budowlanej z pod Lublina
Strona została zrobiona dla taty mojego kolegi, jest prościutka i ma idealnie wręcz prosty panel
administracyjny, gdzie każdy wpis posiada osobny formularz z możliwością wprowadzenia zmian, czy
usunięcia.
Została wyposażona w ciekawą galerię w układzie zdjęć 3x3 z tabelarycznym układem formularzy
umożliwiającym dowolne rozmieszczenie zdjęć w galerii, oraz możliwość przypisania jej do wpisu na
innej podstronie (wyświetlone zostanie losowe zdjęcie).
Tym razem, dla próby, postanowiłam zapisywane pliki umieszczać na serwerze.
Strona Fundacji Ochrony Zabytków Techniki Wojskowej
Zrobiona na hurra, w zaledwie tydzień jest podobna w konstrukcji do pierwszej - strony hodowli.
Wprawiłam się w pisaniu z ręki php, html, css, sql, tak by nie tracić czasu na poszukiwanie w necie,
czy notatkach.
Moja pierwasza strona w php
Już po chwili nauki php zrobiłam stronę, którą jest w stanie bez problemu zarządzać moja mama.
Obrazki, co było dla mnie logicznym rozwiązaniem, umieściłam w MYSQL_BLOB i przy pomocy
zaledwie kilku linijek zapobiegłam ich odświerzaniu przez przeglądarkę.
Moja pierwsza strona w html
Skonstruowana w domu z nudów. Składa się z trzech framów i nie posiada styli css. Kolega napisał
mi javascript do menu, a moim największym osiągnięciem związanym z nią jest chyba napisanie
krótkich komentarzy tłumaczących obrazki.
Moje php
Nie znam słów "nie da się [lepiej]", choć czasami, przyznam "nie opłaca się" po prostu.
Jestem otwarta na nowinki, sama lubię eksperymentować.
Stosuję nowe metody dla zwiększenia efektywności aplikacji.
Dostosowuje do swoich potrzeb wszystkie poznane wzorce i standardy.
Piszę starannie, czytelnie i ekonomicznie.
Jeśli są dobre, stosuję gotowce, ale chętniej poznaje je i piszę od początku.
Staram się zawsze zwiększyć funkcjonalność i wygodę dostępu.
Projektuję, czytam i cały czas robię notatki.
Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji
procesu rekrutacyjnego, zgodnie z przepisami ustawy z 29.08.1997 o Ochronie Danych Osobowych
(Dz. U. z 2002 r. Nr 101, poz. 926 z późn. zm.)
A. Grosset