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